Ressources nécessaires

Introduction

Dans ce chapitre, nous verrons qu’un serveur web, comme tout ordinateur, a besoin de ressources adaptées aux sites et aux applications qu’il doit héberger. Il est préférable de définir, dans cet ordre :

  • quels sites et applications web nous comptons héberger ;

  • avec quelles ressources logicielles nous allons les faire fonctionner :

  • avons-nous besoin d’un logiciel de serveur web particulier ?

  • avons-nous besoin d’une base de données particulière ?

  • avons-nous besoin de certains langages de programmation ?

  • de quelles ressources matérielles aurons-nous finalement besoin ;

  • quel type d’hébergement choisir pour notre serveur.

Nous pouvons distinguer deux types de ressources : les ressources matérielles et les ressources logicielles, ces dernières nécessitant elles-mêmes des ressources matérielles pour fonctionner.

Sites et applicatifs web

  • Il est possible d’héberger plusieurs sites et applications différents sur un même serveur web. Certains peuvent être plus exigeants que d’autres en ressources matérielles : ce point doit être pris en compte dès le début de la réflexion, car il aura une incidence sur le choix du type d’hébergement.

  • Pour un site ou une application développés en interne, il vous appartiendra de définir les ressources minimales requises.

Ressources logicielles

Pour faire tourner un site web, nous avons besoin :

  • de deux éléments pour les sites statiques, c’est-à-dire les sites qui n’ont pas vocation à évoluer en fonction des interactions des utilisateurs :

  • un SE (Système d’Exploitation ou Operating System, OS)

  • un logiciel de serveur web, également appelé service web. Dans cet ouvrage, nous éviterons d’utiliser simplement le terme « serveur web » pour désigner ce logiciel, afin de ne pas le confondre avec la machine elle-même, elle aussi appelée serveur ou serveur web.

  • de deux autres éléments, en complément, pour les sites dynamiques :

  • une base de données ;

  • un moteur de langage de programmation.

On rencontre souvent les acronymes suivants pour désigner les ressources logicielles nécessaires :

  • LAMP : Linux, Apache, MariaDB, PHP ;

  • WAMP : idem avec Windows ;

  • MAMP : idem avec macOS.

1. Système d’exploitation

N’importe quel OS dispose des logiciels nécessaires pour faire fonctionner des sites web. En théorie, il est donc possible d’utiliser celui avec lequel nous sommes le plus à l’aise. Cependant, cela ne signifie pas que tous les sites et applications web existants seront compatibles avec tous les OS.

Outre la compatibilité que nous examinerons dans les sections suivantes de ce chapitre, nous vous proposons dans un premier temps ces critères de choix :

  • Coût de la licence éventuelle.

  • Propriétaire ou open source.

  • Maturité : depuis combien d’années l’OS existe-t-il ou quelle est son année de création ?

  • Popularité : c’est-à-dire est-ce que l’OS est connu ? Est-il très utilisé ?

  • Date de fin de vie : au bout de combien de temps l’OS ne sera-t-il plus maintenu à jour, c’est-à-dire quelle est la date officielle de fin de la LTS (Long Term Support) ?

  • Existence d’un support étendu, généralement payant, ou ELTS (Extended Long Term Support), qui permet de maintenir l’OS à jour au-delà de la fin officielle du support public. Si ce support existe, quelle est sa date de fin ?

  • Qui fait le support entreprise ? Le fournisseur de l’OS ou des tiers ?

Le tableau...

Ressources matérielles

1. Éléments

L’analyse des ressources matérielles nécessaires repose principalement sur trois éléments :

  • le processeur (CPU) :

  • sert à exécuter les instructions des programmes informatiques de la machine ;

  • on parlera généralement en nombre de vCPU (virtual CPU) lorsqu’on loue un serveur (1 vCPU = 1 cœur) ;

  • on peut aussi parler de fréquence processeur en GHz.

  • la mémoire vive ou RAM (Random Access Memory) :

  • sert à stocker temporairement des informations pouvant être consultées et modifiées à tout moment. Volatile, la RAM est vidée lors d’un redémarrage de la machine ;

  • on parlera en nombre de Go de mémoire et éventuellement en nombre de Mo.

  • le disque dur :

  • sert à stocker le système, les logiciels et les données de façon permanente ;

  • on parlera d’espace disque en Go ;

  • on pourra rencontrer deux types de disques :

  • les disques classiques de type mécanique : généralement peu coûteux, ils sont typiquement utilisés pour stocker un volume important de données ; en contrepartie, ils sont lents et donc peu adaptés à certaines opérations ;

  • les disques de type SSD : très performants, ils sont surtout utilisés pour accueillir l’OS ; en contrepartie, leur coût est plus élevé.

Concrètement, il est possible d’utiliser presque n’importe quel ordinateur pour créer un serveur web. Même les mini-ordinateurs de type Raspberry Pi permettent ce genre d’usage.

2. Architecture

Différentes architectures de processeur coexistent, notamment :

  • x86-64 : la plus courante ;

  • x86 (32 bits) : encore rencontrée sur certains matériels ; cette architecture a la particularité de ne pouvoir gérer que 4 Go de RAM, sauf exception PAE (Physical Address Extension) permettant de dépasser cette limite ;

  • ARM64 : cas des derniers Raspberry Pi (Zero 2, 3 et 4) ;

  • ARM32 : cas des premiers modèles de Raspberry Pi.

Dans ce livre, nous utilisons des machines disposant de CPU de type x86-64.

Les OS et les logiciels prévus pour une architecture donnée ne sont généralement pas compatibles avec les autres architectures. Il faut donc...