Depuis quelques temps la stack docker implémente aussi un DNS sur son réseau interne.
Une architecture typique qui tire parti de ça consiste à avoir un reverse proxy global, commun à toutes tes applications, qui fait le routage entre les microservices. Il y a un exemple rikiki ici, qui consiste à déployer un trac et un jenkins dans le même environnement docker: https://github.com/michipili/cid.
Le fichier docker-copose te donne une idée de ce qui se passe il définit notamment deux services trac et jenkins qui sont appelés par le haproxy.
Si par exemple j'avais aussi un service qui nécessite d'être redimensionné je pourrais compter sur le DNS-Round-Robin implémenté par docker pour répartir la charge entre ces services, ou utiliser une autre stratégie de répartition de charge.
De façon plus réaliste dans ton cas, un fichier docker stack (staging, production) définirait plusieurs réseaux, comme:
interface-layer
internal-layer-glpi
internal-layer-akeneo
Un service loadbalancer implémenté par exemple par haproxy ou nginx s'occupe de terminer SSL et rediriger les requêtes HTTP entrantes en fonction du Header host et de la "route" (ou api endpoint) vers le service adéquat. Ces programmes supportent le changement à chaud de la configuration.
On peut imaginer ensuite que glpi est une application web typique implémentée par plusieurs services comme frontend qui sert la partie statique (CSS, JS et autres ressources), un backend qui implémente l'API, éventuellement fractionné en plusieurs microservices. Tous ces services sont sur le réseau interface-layer et internal-layer-glpi. Enfin sur le réseau internal-layer-glpi on doit trouver tes bases de données, caches, etc. qui n'ont pas besoin d'être visibles depuis le point d'entrée.
Donc tout ce dont tu as besoin comme entrée DNS c'est de résoudre tous tes noms (comme glpi.macompanie.net et akeneo.macompanie.net) vers l'höte docker.
Si ça te semble aller dans la bonne direction n'hésite pas à donner plus de détails sur ton environnement et à poser des questions!
PS: Pour la découverte de services, le consul de hashicorp était très populaire mais il me semble comprendre que la stack docker implémente une partie significative des fonctions du consul. Ce logiciel peut cependant t'intéresser.
# Docker fait du DNS
Posté par Michaël (site web personnel) . En réponse au message Docker, plusieurs services et virtualhost. Évalué à 5. Dernière modification le 10 avril 2018 à 18:46.
Depuis quelques temps la stack docker implémente aussi un DNS sur son réseau interne.
Une architecture typique qui tire parti de ça consiste à avoir un reverse proxy global, commun à toutes tes applications, qui fait le routage entre les microservices. Il y a un exemple rikiki ici, qui consiste à déployer un trac et un jenkins dans le même environnement docker: https://github.com/michipili/cid.
Le fichier docker-copose te donne une idée de ce qui se passe il définit notamment deux services
tracetjenkinsqui sont appelés par le haproxy.Si par exemple j'avais aussi un service qui nécessite d'être redimensionné je pourrais compter sur le DNS-Round-Robin implémenté par docker pour répartir la charge entre ces services, ou utiliser une autre stratégie de répartition de charge.
De façon plus réaliste dans ton cas, un fichier docker stack (staging, production) définirait plusieurs réseaux, comme:
Un service
loadbalancerimplémenté par exemple par haproxy ou nginx s'occupe de terminer SSL et rediriger les requêtes HTTP entrantes en fonction du Header host et de la "route" (ou api endpoint) vers le service adéquat. Ces programmes supportent le changement à chaud de la configuration.On peut imaginer ensuite que glpi est une application web typique implémentée par plusieurs services comme
frontendqui sert la partie statique (CSS, JS et autres ressources), unbackendqui implémente l'API, éventuellement fractionné en plusieurs microservices. Tous ces services sont sur le réseau interface-layer et internal-layer-glpi. Enfin sur le réseau internal-layer-glpi on doit trouver tes bases de données, caches, etc. qui n'ont pas besoin d'être visibles depuis le point d'entrée.Donc tout ce dont tu as besoin comme entrée DNS c'est de résoudre tous tes noms (comme glpi.macompanie.net et akeneo.macompanie.net) vers l'höte docker.
Si ça te semble aller dans la bonne direction n'hésite pas à donner plus de détails sur ton environnement et à poser des questions!
PS: Pour la découverte de services, le consul de hashicorp était très populaire mais il me semble comprendre que la stack docker implémente une partie significative des fonctions du consul. Ce logiciel peut cependant t'intéresser.