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 de Geonov

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 différents types de virtualisation mais celle qui nous intéresse principalement est 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.

Et pour les applications nécessitant un système d’exploitation non Linux, donc non compatible avec LXC, Geonov utilise des machines virtuelles KVM (“Kernel-based Virtual Machine”).

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 les machines virtuelles, et de modifier en quelques clics leurs ressources affectées.

Interface de Proxmox

Sauvegarde simplifiée

En plus de scripts de sauvegarde de fichiers sur FTP intégrés dans chaque conteneur ou machine virtuelle, la virtualisation via Proxmox permet de bénéficier de Proxmox Backup Server.

Cette solution permet de planifier la sauvegarde de toutes les machines virtualisées sur un autre serveur. Ainsi en cas de désastre, il devient très rapide de remettre en route chacune des machines virtualisées.

Les conteneurs et machines virtuelles maintenus par Geonov

Geonov a conçu des scripts Linux capables d’installer et de configurer un certain nombre de conteneurs et de machines virtuelles de façon automatique, à l’aide en particulier d'Ansible.

VM 100 - Pare-feu

Cette VM installe un pare-feu pfSense dans une machine virtuelle FreeBSD.

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.

CT 113 - MongoDB

Ce CT installe un serveur de base de données NoSQL MongoDB.

CT 114 - Node.js

Ce CT installe un serveur d'applications Node.js.

CT 115 - Auth

Ce CT installe un serveur d'authenfication Keycloak.

CT 116 - Monitoring

Ce CT installe un serveur de surveillance Zabbix.

CT 119 - Licence

Ce CT installe un serveur de licences FlexNet.