• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 15/12/2020

Construisez une solution adaptée à vos besoins

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Alors que nous venons de voir les caractéristiques les plus courantes et communes à la plupart des serveurs, il faut garder en tête que chaque architecture reste spécifique à un ensemble de besoins. Quand je parle d’architecture, je fais référence à la manière dont vous allez organiser tous vos logiciels et vos machines pour fournir votre service.

Évidemment, il y a des caractéristiques communes à tous les restaurants mais vous n’organiserez pas votre cuisine de la même façon pour servir des pizzas ou des hamburgers.

Je ne peux pas définir vos besoins à votre place mais je peux vous aider à vous poser les bonnes questions. Pour cela, j’ai identifié sept domaines principaux à évaluer pour construire une solution adaptée à vos besoins :

  • les fonctionnalités,

  • la performance,

  • la disponibilité,

  • la sécurité,

  • la sûreté,

  • vos ressources,

  • vos contraintes spécifiques.

Voyons plus en détail de quoi il s’agit.

Les fonctionnalités

La première chose à savoir pour construire un système informatique c’est le type de service que vous voulez fournir. Vous pourrez ensuite avoir une première idée de l’environnement logiciel et matériel nécessaire.

  1. Essayez d’avoir une vision aussi précise que possible du service que vous souhaitez rendre.

  2. Cherchez l’outil logiciel le plus adapté pour rendre ce service.

  3. Listez les dépendances de ce logiciel : dépend-il d’autres logiciels ? En quel langage de programmation est-il écrit ? Est-il disponible sur tous les systèmes d’exploitation ? etc.

  4. Évaluez les besoins matériels spécifiques à votre service. Certains services demandent des processeurs de calcul spécifiques (GPU), beaucoup de mémoire RAM ou des accès disque très rapides (disque SSD conseillé).

Par exemple : votre but est d’avoir un blog pour partager vos découvertes avec le monde entier. Après avoir passé du temps à évaluer les fonctionnalités que vous souhaitez pour votre blog et les différents outils disponibles, vous vous tournez vers le logiciel WordPress. Vous voyez que pour utiliser WordPress, vous aurez besoin d’un serveur web (par exemple Apache), d’une base de données (par exemple MySQL) et d’une version récente de PHP. Tous ces logiciels sont disponibles sous les principaux systèmes d’exploitation. Un blog peut tourner sur un matériel générique.

Patchwork d'icônes sur le thème d'un blog à succès
Votre blog à succès

La performance

Vous aurez également besoin de définir vos critères d’exigence en terme de performance, c’est-à-dire les critères objectifs qui montrent que votre serveur fonctionne comme vous voulez. Des critères courants sont le temps de réponse maximum de votre serveur et le nombre d’utilisateurs simultanés que peut accepter votre serveur.

Vous devrez adapter la taille de votre architecture en fonction de ces critères. Pour cela, dans un premier temps, on fait généralement une estimation à partir de ses propres expériences passées. En tant que débutant, vous pouvez chercher sur Internet ou dans votre entourage des retours d’expériences similaires. Il est parfois difficile d’avoir des détails mais rappelez vous qu’à ce stade, on ne cherche que des ordres de grandeur.

Malheureusement, on ne sait pas toujours prédire son audience et de toute façon, cette dernière sera probablement amenée à grandir avec le temps (on vous le souhaite). Vous devrez donc anticiper cette croissance et vous demander comment faire grossir votre architecture (on parle de “scalability” en anglais, ce terme est souvent repris en français quitte à le franciser en “scalabilité”). Une manière courante de gérer la croissance d’un service est de répartir le travail sur un plus grand nombre de machines.

Un schéma avec d'un côté une personne qui fait une requête sur un seul serveur et de l'autre côté trois personnes qui font des requêtes sur trois serveurs à travers un répartiteur de charge
Ajout de machines pour supporter une plus large audience

La disponibilité

Un autre critère essentiel à prendre en compte est la disponibilité. Sur un an, quelle durée maximum acceptez-vous que votre service soit indisponible ? Dans le cadre d’un accord avec un partenaire ou un client, on parle de SLA (Service Level Agreement, un contrat de qualité de service en français), et c’est généralement exprimé en pourcentage de disponibilité garantie (sous peine de pénalités).

Taux de disponibilité

Durée d’indisponibilité sur un an

99%

3 jours 15 heures

99,9%

8 heures 48 minutes

99,99%

53 minutes

99,999%

5 minutes

Pour augmenter la disponibilité d’un service, on utilise généralement la redondance de tous les éléments : si un élément est défaillant, un autre prend le relai pour assurer une continuité de service. On cherche à éviter que le service ne dépende que d’un unique élément. Si un tel élément existe, on parle de SPOF (Single Point Of Failure, point unique de défaillance).

Schéma avec à gauche les requêtes qui se font toutes à travers un seul répartiteur de charge vers plusieurs serveur. Il y a un SPOF. À droite, les requêtes se font à travers deux répartiteurs de charge donc plus de SPOF
Chaque élément unique de l'architecture est un SPOF

La sécurité

La sécurité concerne la prévention de tous les risques accidentels.

C’est quoi les conséquences en cas de perte de données ou d’un composant matériel ?

Par exemple, si perdre les données présentes sur votre serveur implique de fermer votre entreprise, mettez les moyens qu’il faut pour que ça n’arrive jamais.

L’élément le plus critique du point de vue de la sécurité concerne probablement les données. Le moyen le plus courant pour protéger des données est la duplication. Pour un niveau de sécurité supérieur, il est nécessaire d’avoir un système de duplication différée pour éviter qu’une erreur humaine ou logicielle ne supprime des données sur toutes les copies en même temps.

Schéma où l'on peut voir que la sécurité des données est assurée par une réplication des données en temps réel sur le même site et par une réplication différée sur un site différent
La sécurité est assurée par deux systèmes de réplication sur deux sites différents

La sûreté

La sûreté concerne la prévention des actes malveillants. Votre architecture peut jouer un rôle important dans la sûreté de votre système. Vous devez veiller à n’exposer que le minimum de services nécessaires sur Internet. En fonction de votre niveau d’exigence, vous pouvez également décider d’installer des logiciels dédiés à la sécurité tels que pare-feu ou système de détection d’intrusion.

Schéma montrant comment un pare-feu peut permettre de restreindre l'accès à une base de données depuis Internet
Une base de données ne doit généralement pas être directement accessible sur Internet

Vos ressources

Autre point à prendre en compte : vos ressources qui peuvent être votre budget, vos connaissances, le nombre de personnes disponibles, le temps dont vous disposez, vos soutiens (appel ponctuel à un ami ou support payant par exemple) ou encore les services, logiciels et matériels disponibles sur le marché.

Un niveau d’exigence élevé dans les critères vus auparavant aura tendance à augmenter le coût et la complexité technique de votre architecture mais vous devrez trouver un équilibre entre vos exigences et vos ressources disponibles.

Enfin, vous devrez évaluer vos ressources dans deux contextes différents :

  • au moment de l’installation de votre service

  • pour l’exploitation au quotidien.

Vos contraintes spécifiques

Enfin, dernier critère : vos contraintes spécifiques.

Pour construire une architecture réellement adaptée à vos besoins, vous devez également faire le bilan de vos contraintes. Peut-être que votre patron, votre client ou vos partenaires vous imposent certaines conditions ? Ou encore des dispositions législatives vous imposent de conserver les données dans votre pays d’origine ou un niveau de sûreté particulièrement élevé ? Ou enfin, peut-être que le respect de vos valeurs vous amène à ne vouloir utiliser que des logiciels libres ?

Dans tous les cas, ce seront des facteurs à prendre en compte pour élaborer l’architecture de votre service.

Dans le prochain chapitre, vous allez commencer à monter votre premier serveur. Ce premier serveur satisfera un besoin minimaliste mais essentiel : avoir quelque chose qui marche :D

En résumé

  • l’architecture correspond à l’organisation de l’ensemble des moyens logiciels et matériels pour fournir votre service

  • votre architecture doit être adaptée à vos besoins

  • pour évaluer vos besoins vous devez au moins évaluer sept domaines principaux : les fonctionnalités, la performance, la disponibilité, la sécurité, la sûreté, vos ressources et vos contraintes spécifiques

Exemple de certificat de réussite
Exemple de certificat de réussite