Dans cet article, explorons ensemble les particularités de chaque couche d’une infrastructure informatique et les caractéristiques à étudier dans le cadre d’un projet de construction ou d’évolution d’une infrastructure informatique...
Cet article (et cette 2de vidéo) fait suite au précédent, dans lequel j’ai décrit avec la notation Archimate : quels sont les critères généraux à retenir lors de la phase de conception.
Ici, nous entrons dans le détail, en commençant par nous demander : pourquoi avons-nous besoin de toujours plus d’infrastructure et de ressources informatiques ?
Au commencement ( ou presque)
Les années 2000 marquent le début d’une croissance exponentielle des services numériques. Et cela est principalement dû à la démocratisation d’Internet et à celle des terminaux (les ordinateurs et plus tard les smartphones).
Mais quand on évoque des services numériques de quoi parle-t-on et surtout pour répondre à quels besoins ? Pour se rendre compte de la différence, il suffit d’imaginer les usages d'une personne lambda à la fin des années 90 ou au début des années 2000.
À l’époque, internet était facturé à la minute et pouvait couter des centaines d’euros par mois. La musique s’écoutait sur des CD. Quand on s’interrogeait pour sa culture ou pour ses études pas de "Ok Google", mais d’interminables recherches dans quelques collections de livres, de dictionnaire et d’encyclopédie.
Pour se déplacer, on utilisait des cartes routières, on déclarait ces impôts par courrier, et les premiers téléphones ne servaient qu’à téléphoner...
Mais petit à petit, les services se sont numérisés et les applications se sont multipliées avec plusieurs vocations :
- Gagner du temps et se faciliter vie
- Proposer toujours plus de choix,
- Multiplier les sources d’information et l’accès a des plus en plus produit
- Personnaliser et adapter les expériences
Pour les entreprises et les organisations, la numérisation répond à des motivations qui ne sont pas vraiment nouvelles :
- Chercher toujours plus de productivités
- La possibilité de proposer de nouveaux services pour pouvoir s'imposer sur son marché ou bien en trouver d’autres.
- Et au fur et à mesure que les standards ont bougé. Cela a petit à petit contraint, la plupart des entreprises et des organisations à se numériser, pour rester en phase avec leur client.
Aujourd’hui, que cela soit pour les personnes ou les organisations. Se passer totalement des services numériques serait très contraignant (voir impossible).
Ces services numériques sont délivrés par des applications. Mais comment fonctionnent ces applications ?
Dans notre exploration des infrastructures informatiques et du processus de conception, commençons par explorer la couche logicielle et identifions ce qu’est un logiciel.
La couche Logiciel
Il existe une grande variété de logiciel : Suite bureautique, applications d’entreprises, sites internet et applications web, applications mobiles, ou même de jeux vidéo ne sont qu’une infime partie des types d’application.
Il n’y a pas de définition précise pour un logiciel ou une application et je vous propose la suivante :
Un logiciel est un programme informatique ou plusieurs programmes travaillant de concert dans un but défini par son créateur, utilisable en étant interprété ou exécuté sur un ou plusieurs ordinateurs.
Dans un système d’information, l’infrastructure informatique doit donc pouvoir répondre aux besoins de tous les applications de celui-ci.
Pour déterminer ces besoins, il faut tenir compte des critères suivants pour chaque application :
- Les prérequis techniques : la quantité de mémoire, la puissance et le stockage
- La gestion des ressources : il s’agit d’anticiper la croissance des besoins, notamment si une application est de plus en plus utilisée.
- Les applications de supports. Nous avons évoqué implicitement les applications utiles aux utilisateurs, mais il existe aussi tout une série d’application nécessaire au bon fonctionnement du SI qu’il faut également intégrer (par exemple les annuaires, logiciel de sécurité, etc...
- L’usine logiciel : Si le métier de votre entreprise est l’édition d’application cela va de paire. Mais il n’est pas rare non plus que des entreprises fasse le choix d’éditer une ou plusieurs applications en interne pour répondre au plus prêt des besoins des clients. Dans ces cas de figures, il faut intégrer les environnement nécessaire à l’usine dédié à la fabrication de ces logiciels (recette, tests, dev).
- L’architecture des logiciels est un point important que je ne détaille pas aujourd’hui. Mais pour simplifier retenez ceci : On retrouve en général 3 services dans les applications : L’interface avec l’utilisateur, l’intelligence métiers, et le stockage des données. Et l’architecture d’un logiciel détermine comment sont structurés et réparties ces 3 services
Vous l’avez compris le nombre d’application d’un système d’information peut être important, et pour exécuter ces applications dans des ordinateurs il est nécessaire d’avoir un système.
La couche système
La couche système va permettre d’exécuter les applications et les logiciels en utilisant les ressources informatiques des ordinateurs.
La déclinaison la plus simple de la couche système est un système d’exploitation installer sur un ordinateur et sur lequel on exécute une application. Jusqu’en 2005 environ, c’était ce qu’il se faisait la plupart du temps ou un serveur et son OS était dédié en général à une application.
Mais parce que cela coutait cher et présentais pas mal d’inconvénients, la virtualisation de machines c’est imposé.
Elle permet de découpler le matériel grâce à un système particulier que l’on nomme hyperviseur de virtualisation. Et de partager les ressources d’un serveurs physiques (hôtes) pour exécuter en même temps plusieurs machines virtuelles.
Chaque machine virtuelle dispose de matériel virtuel, d’un système d’exploitation et va pouvoir exécuter des applications.
Et enfin quelques mots sur les technologies de conteneurisation, qui permet de cloisonner et de partager les ressources d’un système unique.
Les caractéristiques de ces technologies sont d’une part de permettre une meilleure exploitation des ressources informatiques, en supprimant la couche de virtualisation et les systèmes virtualisés.
Et d’autre part, la configuration programmatique des serveurs sous-jacents. C’est-à-dire un fichier source qui va permettre de décrire la configuration des conteneurs et leurs relations
Par contre, les conteneurs déployés hériteront du système de l’hôte. Vous ne pourrez pas déployer une application Windows dans un conteneur Linux.
Chaque système dispose de ses services et de ses fonctions, et sera utile en fonction du contexte de vos applications. Le message que je voudrais vous faire passer et qu’il ne faut pas opposer les solutions systèmes.
Chacune peut répondre à des besoins spécifiques qu’il pourra parfois être utile de mixer. Par exemple, des serveurs de bases de données ayant besoin de ressources importantes sont parfois hébergés directement sur des systèmes qui ne sont pas virtualisés.
Lors de la conception d’une infrastructure système, nous partons des besoins des logiciels hébergés et du niveau fonctionnel des solutions. Ces fonctions vont déterminer :
- Les conditions d’évolutivité verticales (upgrade matériel) ou horizontales des systèmes (l’ajout d’hôte)
- la résilience, et les briques de sécurité.
- Les fonctions d’un système vont aussi impacter les conditions d’exploitation. L’intelligence artificielle permet dans des systèmes modernes une simplification de l’analyse.
Mais cette richesse fonctionnelle peut aussi impacter les coûts.
Chaque système dispose de ses services et de ses fonctions, et sera utile en fonction du contexte de vos applications.
L’analyse des coûts est un élément important à prendre en compte.
Il y a les coûts du support, les coûts de formation, les coûts de la mise en œuvre, et si l'on veut être vraiment complet il faut inclure les coûts indirects. Par exemple : le coût des arrêts de services.
Enfin, un poste de coût important est celui des licences. Il y a le coût des licences de la solution du système mis en place, mais aussi toutes celles nécessaires au bon fonctionnement de l’ensemble des logiciels : bases de données, système d’exploitation des machines virtuelles, etc.
Ces coûts de licences sont souvent dépendants des infrastructures matérielles choisies. L’analyse lors de la conception de la couche système va donc de pair avec la couche dédiée au stockage et au calcul.
Couche stockage et calcul
La couche stockage et calcul est dédiée à l’ensemble des matériels apportant la ressource informatique.
La capacité de stockage est dépendante des composants permettant d’enregistrer l’information. Il s’agit généralement de disques durs.
La capacité de calcul est dépendante de la vitesse des processeurs et de la mémoire des serveurs hôtes sur lesquels sont exécutés les systèmes.
Il existe des matériels dédiés au stockage comme les NAS, les SAN ou des serveurs dédiés au stockage. Mais il y a aussi des serveurs regroupant à la fois les ressources de calcul et les disques nécessaires au stockage. On parle en général d’infrastructure hyperconvergée.
Les choix du matériel et des ressources de calcul et stockage peuvent aller de pair avec la conception de l’infrastructure système. Elle en reprend donc les préoccupations comme le niveau de support, l’impact sur l’exploitation, l’évolutivité et bien sûr les coûts.
De manière plus spécifique au matériel, il y a :
- La performance et les capacités qui sont des caractéristiques centrales.
- La durée de disponibilité des équipements et du matériel de rechange.
- L’efficacité de la chaine logistique en cas de panne.
Et enfin la capacité du constructeur à respecter ses engagements dans la durée. Nous avons évoqué dans l'article précédent l’importance de choisir des fournisseurs de confiances.
Il reste une dernière couche informatique importante, pour que nos applications et systèmes puissent fonctionner.
La couche réseau
La couche réseau est dédiée aux transports des données. Cela inclut les données informatiques, mais aussi la voix, la vidéo, etc.
L’infrastructure réseau a pour fonctions de connecter le matériel informatique aux différents réseaux, locaux, distants et à une fonction importante dans la sécurisation du système d’information.
Les réseaux locaux ou le LAN (pour Local Area Network) sont réalisés grâce aux switchs ou commutateurs.
Ces réseaux sont à hautes ou très hautes vitesses. Ils relient chaque équipement au système d’information entre 1Gb à plusieurs dizaines de Gb (voir plus) pour les cœurs de réseau.
La connexion aux réseaux distants se fait via des passerelles. On parle en général de réseau fourni par un opérateur ou un fournisseur d’accès à Internet. Ce type de réseau peut être dédié à un usage particulier par exemple pour de la téléphonie sur IP. Ou fournir l’accès à un réseau global comme Internet.
Les routeurs sont des matériels qui ont pour fonction de relier plusieurs réseaux entre eux qu’ils soient locaux ou distants.
Enfin, la couche réseau à une fonction centrale de sécurisation des réseaux, à travers des équipements de type pare-feu ou des "appliance" dédiées à la sécurité.
La qualité des équipements réseaux, leur paramétrage dans les règles de l’art et le choix des opérateurs sont de première importance. Ils permettent à votre SI d’avoir un fonctionnement optimal.
À l’opposer, un réseau négligé ou inadapté peut entrainer des dysfonctionnements et des effets de bords non négligeables. De superbes applications, avec une infinité de ressources informatiques, seront malheureusement gâchées par un réseau inadapté.
Cela reviendrait à conduire une Ferrari sur un chemin de terre. Dans la théorie, ça marche, mais ce n’est pas fait pour et cela peut conduire à casser le moteur ou à faire une sortie de route.
Pour la conception de l’infrastructure réseau et le choix du matériel, il s’agit des mêmes préoccupations que lors de la conception de l’infrastructure des systèmes et des ressources informatique. En tenant compte des spécificités de performance du matériel dédié au réseau comme , le débit, la latence, le fond de panier, la capacité de commutation, etc.
Idem concernant le choix de vos fournisseurs d’accès Internet, de téléphonie ou fournisseur de réseau.
Choisissez des partenaires qui vous ressemblent ou qui travaillent avec des personnes qui vous ressemblent.
Nous avons exploré l’ensemble des couches informatiques d’une infra. Mais il reste à évoquer un dernier point important : il s’agit de l’hébergement physique dédié aux infrastructures informatiques.
Les locaux et l’environnement
Les équipements informatique n’ont besoin que d’électricité et de câble réseau, et il arrive encore que l’on retrouve des choses horreurs comme ça et cela peut marcher un temps…
Cependant si le système d’information a de l’importance pour votre activité, et si vous souhaitez maximiser l’utilisation des matériels et minimiser les interruptions liées à l’environnement alors cela nécessite la conception de locaux dédiés.
Il peut s’agir de datacenter. mais pour des entreprises de taille moyenne des salles dédiées à l’hébergement peuvent suffire .
Ces lieux fournissent l’alimentation énergétique, le refroidissement, le contrôle d’accès et la protection nécessaire aux ressources informatiques.
En dehors des spécificités de votre activité, le choix et l’équipement des locaux seront en général guidés par plusieurs critères :
Tout d’abord, vos besoins en hébergement d’infrastructure informatique. Plus le nombre de matériels sera important, plus il impactera la surface et donc le dimensionnement des pièces dédiés.
Le second critère est l’acheminement des réseaux énergétiques.
- Les courants forts vont alimenter électriquement votre matériel.
- Les courants faibles correspondent au câblage et à la localisation de vos équipements réseau.
- Enfin, chaque matériel émet de la chaleur, il faudra donc prévoir un circuit de refroidissement qui permettra de l’évacuer.
Pour chacun des réseaux énergétiques, il faudra déterminer le niveau de résilience, et éventuellement construire des réseaux secondaires avec des équipements de secours.
Le 3e critère est l’évaluation du niveau de risque et la mise en œuvre de dispositifs de sécurité adaptés couvrant plusieurs domaines :
- La protection contre l’intrusion.
- Le contrôle d’accès au site.
- La sinistralité et l’évaluation du risque
- D’incendie
- D’inondation
- le risque sismique
À partir d’une certaine taille, ou si les enjeux sont importants, il est prudent de répartir son système d’information sur au moins 2 sites éloignés géographiquement.
Les investissements pour aménager ce type de salles sont importants. Le patrimoine immobilier disponible de votre organisation et les investissements passés permettront d’améliorer la rentabilité de vos centres de données .
Dans le cas de nouveaux investissements, le choix de la localisation aura son importance. Investir en province sera plus facile qu’à Paris ou les surfaces sont rares et chères.
Enfin, les charges liées au maintien en condition opérationnel sont également à évaluer.
La complexité pour construire des locaux dédiés pour votre infrastructure informatique incite dans de nombreux cas à s’appuyer sur des datacenters existants. Ou d’utiliser des services d’infrastructure informatique externalisée.
Cependant, je vous encourage à vous intéresser de près aux conditions d’hébergement de votre système d’information même externalisée. L’incendie de deux datacenters d’OVH en 2021 doit nous rappeler que cela n’arrive pas qu’aux autres, et ne nous exonère pas de la responsabilité de vérifier que les contrats soient adaptés à vos besoins et les garanties respectées dans la durée.
Pour conclure...
Comprendre les infrastructures informatiques est important. Même si vous faites appel à des infrastructures Cloud ou des applications hébergées en SaaS, il y a toujours des infrastructures informatiques sous-jacentes. En comprendre les conditions d’hébergement, c’est vous assuré de choisir les bons services. Et un bon service c’est un service que vous comprenez et qui s’adapte à vos besoins. N’oubliez pas, la solution technique reste un moyen d’atteindre les objectifs de votre organisation et rarement une finalité.
Si vous souhaitez en savoir plus sur le langage de modélisation Archimate que j’ai utilisée dans cet article, je vous invite à vous rendre sur cette page pour une initiation vidéo gratuite.
Archimate permet à l’aide de modélisation simple de faire le lien entre la stratégie d’entreprise, les processus métiers et bien sûr la modélisation de systèmes d’information. Ce langage est utile tant pour documenter, analyser et simplifier des concepts complexes.
Si cet article vous a plu (ou pas), n'hésitez pas à me dire ce que vous en avez pensé, en attendant de vous lire je vous dis à très bientôt.