Services

Les services d’infrastructures sont essentiels pour garantir un haut niveau fonctionnel. Après de nombreuses heures d’études et de R&D, mon choix s’est tourné sur une hashistack composée des services suivants.

Consul

Sa première fonction est de faire office de service discovery. C’est à dire qu’à chaque fois qu’un service sera démarré au sein de l’infrastructure, il sera déclaré dans consul. Dès lors, ce service sera joignable via un nom DNS de service.

D’autres fonctions utiles telles que le Key/Value store, les ACL pour gérer les autorisations sont dispnibles.

Consul est LE produit ultime de la hashistack car il interconnecte tous les autres. Consul fonctionne en mode client/serveur via un protocole d’élection de leader au sein du cluster.

Il interconnecte des clusters entre eux pour permettre d’obtenir un datacentre totalement virtuel via un mécanisme de fédération. La notion de datacentre physique perd de son sens. Il suffit de déployer une infrastructure multi fournisseurs / multi régions, Consul permettra de les connecter les uns aux autres.

Vault

C’est le coffre-fort des secrets de l’infrastructure. Vault est un outil qui fournit une interface unifiée pour y stocker toutes les données sensibles. Ses données sont stockées dans Consul, qui est synchronisé sur plusieurs serveurs et plusieurs régions.

Nomad

Nomad est un ordonnanceur et un orchestrateur pour gérer des logiciels conteneurisées et non conteneurisées à travers des infrastructures Onpremise et dans le cloud.

Grâce à Nomad, nos logiciels pourront être déployés via des drivers :

  • docker (ou podman)

  • crio

  • containerd

  • LXC

  • QEMU

En fonction du contexte, nous serons en mesure de choisir une enveloppe adaptée au fonctionnement de nos logiciels.

Nomad permet de déployer différents types de « job »:

  • le service

  • le system

  • le batch (très pratique pour simuler du FaaS)

  • le batch périodique

Coredns

Coredns est un service DNS « couteau suisse ». Ultra léger, il permet d’étendre les fonctionnalités d’une stack DNS.

Docker

Docker est le gestionnaire de conteneurs par défaut pour le moment.

LXC

LXC est le prochain gestionnaire de conteneur à intégrer. Pouvoir combiner docker et lxc sur une même infra me parait totalement pertinent.