Architecture des systèmes d'informations

Concepts clés

Historique de la présentation

Version précédente : ENSG, 2017

  • ENSG, février 2018
  • ENSG, novembre 2018
  • ENSG, octobre 2019

Moi

Thibault Coupin

  • §fragment Ingé Sys DevOps à l’IRD
  • §fragment Anciennement Chef division WebServices & DevOps au Géoportail
  • §fragment thibault.coupingmail.com
  • §fragment tcoupin
  • §fragment @thibbojunior

Ce cours est :

  • super intéressant
  • open-source sous licence GNU GPL
  • disponible sur
  • propulsé fièrement par reveal.js via Gh-reveal

Sources :

Sommaire

§id:sommaire§;

Ch.1 : Définitions

§id:definitions§;

architecture§fragment:3§; des systèmes§fragment:2§; d’informations§fragment:1§;

Information

Élément de connaissance susceptible d’être représenté à l’aide de conventions pour être conservé, traité ou communiqué.

D’après le Larousse.

Système

Un système est un ensemble d’éléments interagissant entre eux selon certains principes ou règles.

D’après Wikipédia.

Système

Un système est déterminé par :

  • la nature de ses éléments constitutifs ;§fragment
  • les interactions entre ces derniers ;§fragment
  • sa frontière ;§fragment
  • ses interactions avec son environnement. §fragment

Système

Le système peut-être découpé en sous-systèmes autonomes mais pas indépendants : ils communiquent.

§icon:arrow-right§; Notion de perception du contexte.

Système d’information

Ensemble des flux d’information circulant dans l’organisation associé aux moyens mis en œuvre pour les gérer.

  • Flux : collecter, stocker, traiter et distribuer de l’information
  • Moyens : humains, matériel (réseau, serveurs, postes) et logiciel (sgbd, logiciel métier…)

Architecture

L’architecture est l’art majeur de concevoir des espaces et de bâtir des édifices, en respectant des règles de construction empiriques ou scientifiques, ainsi que des concepts esthétiques, classiques ou nouveaux, de forme et d’agencement d’espace, en y incluant les aspects sociaux et environnementaux.

D’après Wikipédia.

Architecture des systèmes d’informations

Conception et structure du SI selon plusieurs axes :

  • l’organisation : procédure (humaine et informatique), politique… §fragment
  • la structuration de l’information : quel modèle de données ?§fragment
  • les logiciels : découpage en couches et modules§fragment
  • le matériel et la technique : quel serveur, quel réseau, quelle baie…§fragment

§icon:arrow-left§; Retour sommaire

Ch.2 : Concepts de base

§id:concepts§;

§icon:arrow-left§; Retour sommaire

UML

§id:uml§;

L’UML pour aider à architecturer un système d’information ?

Rappel : Architecture des systèmes d’informations

Conception et structure du SI selon plusieurs axes :

  • l’organisation : procédure (humaine et informatique), politique… §fragment
  • la structuration de l’information : quel modèle de données ?§fragment
  • les logiciels : découpage en couches et modules§fragment
  • le matériel et la technique : quel serveur, quel réseau, quelle baie…§fragment

UML : les 5 vues

§slide:data-transition=fade§; Les 5 vues UML

Source : wikipédia

UML : les 5 vues

§slide:data-transition=fade§;

Les 5 vues UML

  • l’organisation : procédure (humaine et informatique), politique…

Vue des procedure et des cas d’utilisation : acteurs, séquences…§fragment

UML : les 5 vues

§slide:data-transition=fade§;

Les 5 vues UML

  • la structuration de l’information : quel modèle de données ?

Vue logique : modèle de données§fragment

UML : les 5 vues

§slide:data-transition=fade§;

Les 5 vues UML

  • les logiciels : découpage en couches et modules

Vue d’implémentation§fragment

UML : les 5 vues

§slide:data-transition=fade§;

Les 5 vues UML

  • le matériel et la technique : quel serveur, quel réseau, quelle baie…

Vue du déploiement§fragment

§icon:arrow-left§; Retour Ch.2

Conception par tiers

§id:tiers§; La brique de base est appelée tiers.

Un acteur, un élément du déploiement, un applicatif qui a une fonction particulière.§fragment

2 tiers : client-serveur

Modèle client-serveur

  1. Le serveur est en attente§fragment:1§;
  2. Le client initie la connection§fragment:1§;
  3. Le serveur répond à la requête du client§fragment:1§;

2 tiers : client-serveur

  • relation maître-esclave
  • même protocole de communication (HTTP ?)
  • le serveur a l’information

2 tiers : répartition des rôles

§element: style=background-color:white§; Répartition dans le modèle 2 tiers §pelement:style=max-height:45vh;§;

Source : Damien Duportal

2 tiers : couplage fort

Pas bien.§fragment

3 tiers

Modèle 3 tiers

  • Présentation§fragment
  • Traitement métier§fragment
  • Accès aux données§fragment

3 tiers : répartition des rôles

§element: style=background-color:white§; Répartition en 3 tiers

Généralisation : N tiers

Diviser la couche métier pour simplifier.

§icon:arrow-left§; Retour Ch.2

Ch.3 : Architecture distribuée

§id:loadbalancing§;

§icon:arrow-left§; Retour sommaire

Architecture distribuée

  • Plusieurs référentiels de données
  • Plusieurs traitements métiers
  • Plusieurs présentations

Architecture distribuée

§element: style=background-color:white§; Archi distribuée §pelement:style=max-height:45vh;§;

Source : Damien Duportal

Architecture distribuée

  • Rationalisation et rentabilisation des composants
  • Distribution des données et des traitements
  • Découpage par unité métier

Problèmes inhérents à la distribution

  • Cohérence de l’information
  • Concurrence des actions
  • Complexité de l’architecture

Pourquoi distribuer ?

Distribution = scalabilité horizontale

VS

Scalabilité verticale = grossir les machines

Notions de répartition des ressources, dans un instant…§fragment:1§;

Pourquoi distribuer ?

Mise en place de la Haute Disponibilité (HA)

Notions de haute disponibilité, dans un instant aussi…§fragment:1§;

Exemple de système distribué

Le Géoportail

  • des serveurs web exposés sur Internet §fragment
  • selon la requête, on transfert vers : §fragment
    • des serveurs WMS Raster
    • des serveurs WMS Vecteur
    • des serveurs de géocodage
  • les données sont stockées selon leur nature dans : §fragment
    • une base de données Postgis
    • baie de stockage de données raster

Exemple de système distribué

Stockage distribué

  • Le stockage objet (Amazon S3, OS Swift, Ceph…)
  • Le stockage bloc (OS Cinder, Ceph RBD, Infinit…)

Les capacités de stockage d’un pool de machine sont mises en commun pour assurer la disponibilité de la donnée (disponibilité, cohérence).

Exemple de système distribué

Calcul distribué

Le principe du map-reduce.

  • Be4 : création de pyramide de donnée raster pour diffusion WMTS
  • Boinc : utiliser les ressources de particuliers pour la recherche

§icon:arrow-left§; Retour Ch.3

Notions de répartition des ressources

§id:scale§;

CPU, RAM, stockage et réseau, nécessaires pour le fonctionnement des OS et applications.

Besoin de plus de puissance ?

2 solutions : §fragment:1§;

  • utiliser des équipements plus puissants§fragment:2§;
    • §icon:check§; puissance§fragment:3§;
    • §icon:times§; coût : besoin de rentabiliser/optimiser l’usage§fragment:3§;
    • §icon:times§; effet de bord entre les différents usages§fragment:3§;
  • multiplier les équipements§fragment:2§;
    • §icon:check§; indépendance des usages (isolation)§fragment:4§;
    • §icon:check§; sécurisation (mise en place de HA)§fragment:4§;
    • §icon:times§; coût hébergement : énergie, surface…§fragment:4§;

Besoin de plus de puissance ?

Mix des 2 solutions :

utiliser des équipements puissants

ET

multiplier les équipements virtuels§fragment

Virtualisation

Simuler un système “invité” sur un système “hôte”.

On simule le disque dur, la carte mère, les processeurs, le réseau…

Virtualisation

Un même matériel physique est utilisé pour simuler plusieurs matériels, qui n’ont aucune conscience de cette relation…

Virtualisation des serveurs

Machine virtuelle : VMWare, VirtualBox,…

§pelement:style=max-height:40vh;§;

Damien Duportal

Virtualisation des serveurs

Para-virtualisation

Limiter la simulation logiciel du matériel, en simulant un matériel similaire au matériel réel et passer directement les instructions au matériel.

Virtualisation des serveurs

Containeurs : LXC, Docker, Jails §pelement:style=max-height:45vh;§;

Damien Duportal

Virtualisation du stockage

§pelement:style=max-height:45vh;§;

Damien Duportal

Virtualisation du réseau

§pelement:height=60%§;

Damien Duportal

La vie sur du matériel physique

  • Avantages
    • Accès à 100 % des capacités des composants
    • Pas de complexité d’une couche d’abstraction
  • Limites
    • Coût
    • Ressources perdues
    • Déploiement long : installation, rackage, câblage
    • Migragration complexe

La vie sur des VMs

  • Avantages
    • Un serveur physique héberge plusieurs VMs
    • Disponibilité des VMs
    • Possible modèle cloud : paiement à la consommation sans actions humaines
  • Limites
    • Plusieurs OS sur une machine physique (conso de RAM, CPU…)
    • Performances inférieures par rapport à du physique

Indépendance d’un matériel physique

Nouvelles possibilités :

  • élément déplaçable en un clic
  • configuration facilitée (ajout de RAM, CPU, routeur…)
  • sauvegarde possible
  • clonage, partage…

Et surtout, répartition des éléments virtualisés sur les éléments physiques pour utiliser au mieux les ressources et distribuer la charge.§fragment

§icon:arrow-left§; Retour Ch.3

Notions de disponibilité

§id:ha§;

Capacité d’un système à rendre le service pour lequel il est conçu.

Quel degrés de confiance justifiée accorder au système ? §fragment

Rendre le service

  • fonctionnement nominal
  • performance normale

Critères à définir lors de la création du système (tolérance ?)

Les mesures de la disponibilité

  • MTTF : Mean Time To Failure
  • MTTD : Mean Time To Detect
  • MTTD : Mean Time To Diagnose
  • MTTR : Mean Time To Repair
  • MTBF : Mean Time Between Failure

Les mesures de la disponibilité

Mesure de la disponibilité

Dispo = OK/(OK+KO) = MTTF/MTBF §fragment

La règle des 9

Classe Dispo. Type Indispo (/an)
1 90 % Non géré 36,5 jours
2 99 % Géré 3,65 jours
3 99,9 % Bien géré 8,76 heures
4 99,99 % Tolérant aux fautes 52,56 minutes
5 99,999 % Haute disponibilité 5,26 minutes
6 99,9999 % Très haute disponibilité 31,5 secondes
7 99,99999 % Ultra haute disponibilité 3,15 secondes

§pelement:style=font-size:80%;§;

Comment choisir ?

  • coût d’une indisponibilité
  • coût de la disponibilité

Il faut faire un choix raisonnable et justifiée. §fragment

Comment faire ?

  • design adapté §fragment
    • Benchmark §fragment
    • identification des SPOFs §fragment
    • tests automatiques §fragment
    • infrastructure adaptée §fragment
  • méthodes d’exploitation adaptées §fragment
    • surveillance, fonctionnement & performance : état du système §fragment
    • organisation des équipes : astreinte, mobilisation des équipes, escalade des incidents §fragment

Etats du système

Etats du système §pelement:style=max-height:45vh;§;

Source : Damien Duportal

Infrastructure adaptée

  • Redondance
  • Clustering
  • Loadbalancing
  • CGU de l’offre cloud

Infrastructure adaptée

Redondance

Disque, CPU, RAM…

Infrastructure adaptée

Clustering

Ensemble de noeuds qui peuvent se remplacer l’un l’autre à la demande.

Infrastructure adaptée

Loadbalancing

Lisser la charge sur l’ensemble du cluster

Détecter les noeuds défaillants pour ne pas les inclure dans l’algorithme de répartition.

Infrastructure adaptée

Offre cloud

  • Classe du datacenter (alim, réseau, sécurité)
  • Garantie de rétablissement
  • Garantie de capacité
  • Capacité à l’instanciation, au déplacement…

En pratique

Datacenter

  • Alimentation : combien ? capacité ?
  • Réseau : combien d’attachement ? redondance du coeur de réseau ?
  • Matériel de secours

§pelement:style=max-height:10vh;§;

En pratique

Stockage RAID

RAID 0 : agrégation par bande, pas HA

§pelement:style=max-height:40vh;§;

Source : wikipédia

En pratique

Stockage RAID

RAID 1 : disque miroir

§pelement:style=max-height:40vh;§;

Source : wikipédia

En pratique

Stockage RAID

RAID 5 : agrégation par bande à parité répartie

§pelement:style=max-height:40vh;§;

Source : wikipédia

En pratique

Stockage RAID

RAID 6 : agrégation par bande à double parité répartie

§pelement:style=max-height:40vh;§;

Source : wikipédia

En pratique

Stockage RAID

RAID combiné :

0+1, 1+0, 0+5, 1+5, 5+0, 5+1

En pratique

Stockage distribué logiciel

GlusterFS, Ceph, Swift…

§icon:arrow-left§; Retour Ch.3

Ch.4 : Architecture service et cloud

§id:cloud§;

SOA : concepts

L’application globale est découpée en sous-éléments communiquant entre eux.

  • couplage faible pour réduire les dépendances (matérielles et d’environnement)
  • rationalisation des services
  • découverte des services

SOA : variante WOA

  • chaque service est une application web
  • le web joue le rôle de bus (DNS+TCP/IP)
  • interopérable
  • SPOFs limités, couplage faible

SOA : variante WOA

REST :

  • URL : Uniform Resource Locator
  • HTTP : GET, POST, PUT, DELETE… + fonctionnalité d’en-tête
  • Stateless

Les apports des offres cloud

  • virtualisation généralisée et accessible
  • aaS : self-service, API
  • facturation à l’utilisation
  • outils de déploiement automatisé

Nouveau but

Rendre les infrastructures les plus modulaires possibles pour optimiser le dimensionnement des briques les plus fines possible.

Architecture micro-services

Du WOA avec un découpage beaucoup plus fin :

  • une seule fonction par service
  • le projet doit être proprement mené : automatisation, déploiement et tests
  • service “élastique”

Architecture micro-services

Avantages :

  • scalabilité facilitée§fragment:1§;
  • isolation des développements§fragment:1§;
  • rapidité des cycles de release§fragment:1§;

Inconvénients :

  • complexes§fragment:2§;
  • explosion du nombre de composants§fragment:2§;

Architecture serverless

Serverless §pelement:style=max-height:45vh§;

CommitStrip

Architecture serverless

Nouvelles offres :

  • abstraction totale de la fonction de serveur
  • on ne déploie plus une application, mais le code d’une fonction

Exemple

Serverless §pelement:style=max-height:45vh§;

Architecture serverless

Avantages :

  • plus de gestion de la scalabitlité§fragment:1§;
  • facturation à l’appel/temps d’exécution et non à la VM/container§fragment:1§;

Inconvénients :

  • jeunesse de la technologie§fragment:2§;
  • peu d’acteur proposant cette fonctionnalité§fragment:2§;
  • l’efficacité du code influe sur le coût§fragment:2§;

C’est déjà fini

§icon:arrow-left§; Retour sommaire