Architecture client-serveur

Geonov vous aide à mettre en place votre architecture client-serveur de type n tiers virtualisée à l’aide de scripts d’installation automatisée.

Qu’est-ce qu’une architecture client-serveur ?

Une architecture client-serveur représente l’environnement dans lequel des applications de machines clientes communiquent avec des applications de machines de type serveurs.

L’exemple classique est le navigateur Web d’un client qui demande (on parle de “requête”) le contenu d’une page Web à un serveur Web qui lui renvoie le résultat (on parle de “réponse”).

Architecture client-serveur

Les types d’architecture client-serveur

  • Si toutes les ressources nécessaires sont présentes sur un seul serveur, on parle d’architecture à deux niveaux ou 2 tiers (1 client + 1 serveur).

Architecture client-serveur 2 tiers

  • Si certaines ressources sont présentes sur un deuxième serveur (par exemple des bases de données), on parle d’architecture à trois niveaux ou 3 tiers (1 client interroge le premier serveur qui lui-même interroge le deuxième serveur).

Architecture client-serveur 3 tiers

  • Au delà de 3 acteurs, on parle d’architecture à n tiers.

Geonov vous propose une architecture à n tiers virtualisée

Chez Geonov, nous préconisons l’architecture physique à 2 tiers mais qui fonctionnera en réalité comme architecture n tiers grâce à la virtualisation.

Concrètement, un seul serveur physique sera nécessaire mais les applications seront installées dans des conteneurs virtuels indépendants. On parle de serveurs dédiés virtuels (en anglais Virtual Private Server (VPS)).

Architecture client-serveur n tiers virtualisée

Bien entendu, il reste possible de combiner une architecture physique à n tiers avec la virtualisation en ajoutant des serveurs physiques, par exemple pour la réplication ou la tolérance aux pannes.

Qu’est-ce que la virtualisation ?

La virtualisation permet d’isoler des processus comme s’ils étaient installés sur une machine dédiée. Il est même possible d’émuler des machines complètes ce qui permet par exemple d’exécuter un environnement Windows dans un environnement Linux et inversement.

Il y a donc différents types de virtualisation mais celle qui nous intéresse est donc l’isolation par conteneur. Après avoir longtemps utilisé OpenVZ, Geonov base maintenant ses conteneurs virtuels sur LXC (pour “Linux Containers”), technologie arrivée suffisamment à maturité et intégrée dans les noyaux Linux récents. Si LXC ne vous dit rien, Docker vous parlera peut-être ? Et bien Docker utilise LXC pour ses conteneurs et ajoute des outils permettant leur portabilité et l’aide au développement.

Pour disposer d’une interface de gestion complète et moderne, Geonov utilise l’outil Proxmox VE basé sur une distribution Debian. Il permet de gérer très facilement les conteneurs et de modifier leurs ressources affectées.

Interface de Proxmox

Les conteneurs maintenus par Geonov

Geonov a conçu des scripts Linux capables de compiler, installer et configurer un certain nombre de conteneurs de façon automatique.

CT 101 - Annuaire

Ce CT installe un annuaire OpenLDAP et un service Kerberos. Il est fondamental pour la mise en place d'une authentification unique (SSO) et plus généralement pour la gestion des utilisateurs.

CT 103 - PostgreSQL

Ce CT installe un serveur de base de données PostgreSQL avec son extension PostGIS.
Il permet le stockage des données géographiques.

CT 104 - Web

Ce CT installe un serveur Web Nginx pour le contenu statique & Apache + PHP pour le contenu dynamique.

CT 106 - Mail

Ce CT installe un serveur de mails Postfix & Dovecot.

CT 108 - MariaDB

Ce CT installe un serveur de base de données MariaDB, en remplacement de MySQL.

CT 110 - Cloud

Ce CT installe une instance Nextcloud basée sur Apache.
Nextcloud permet le stockage de fichiers, la gestion des contacts ou encore d'un calendrier.

Démonstration

Pour utiliser ces scripts, il suffit de modifier les paramètres dans leur entête, de les téléverser sur le serveur à configurer puis de les exécuter. Voici une démonstration de l'installation automatisée du conteneur 101 (OpenLDAP & Kerberos) :