Dans le chapitre précédent, nous avons vu les caractéristiques les plus courantes et communes à la plupart des serveurs. Cependant, 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 votre matériel 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.
Identifiez vos 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.
Essayez d’avoir une vision aussi précise que possible du service que vous souhaitez rendre.
Cherchez l’outil logiciel le plus adapté pour rendre ce service.
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.
É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é).
Un exemple concret : Vous êtes chef d’une entreprise d’entretien d’espace vert. Votre but est d’avoir un site internet, sur lequel vous allez pouvoir afficher des photos et des vidéos de vos plus belles créations d’espace vert, et sur lequel vos clients potentiels pourront vous contacter et effectuer des devis. Après avoir passé du temps à évaluer les fonctionnalités que vous souhaitez pour votre site 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.
Dimensionnez votre serveur : 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.
Prévoyez 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).
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.
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.
Évaluez vos ressources
Vos ressources 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.
Prenez en compte 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.
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.