English version available on: http://www.slideshare.net/PierreVincent3/microservices-docker-service-discovery-with-smartstack-english-version
L'architecture en microservices vise à résoudre les problèmes auxquels font face les applications monolithiques. Dans un premier temps, cette présentation revient sur ces problématiques et sur la façon dont les microservices peuvent les réduire. On étudiera aussi pourquoi Docker se prête très bien à ce type d'architecture, tant sur la cohésion et l'isolation que sur les facilités de déploiements et de scaling.
Cependant, décomposer une application en microservices engendre une certaine complexité liée aux systèmes distribués. Le service discovery est une nouvelle difficulté à laquelle cette architecture doit faire face, pour s'assurer que le système soit dynamique et résiste aux fautes (que ce soit au niveau logiciel, materiel ou réseau). Cette présentation explore plusieurs solutions possible pour le service discovery, avant de décrire de façon plus détaillée le framework Smartstack (Synapse / Nerve) et son intégration possible avec des microservices déployés en conteneurs Docker.
Cette présentation a été faite dans le cadre du Docker Meetup à Rennes: http://www.meetup.com/Docker-Rennes
Vous pouvez me suivre sur Twitter sur @PierreVincent ainsi que sur le Tech Blog de Newsweaver (http://techblog.newsweaver.com).
11. Nombre de services variable Services à courte durée de vie
Comment localiser les
services disponibles ?
Comment répartir la
charge entre les
instances ?
Comment savoir
qu’un service n’est
plus disponible ?
12. ❏ Enregistrement / Découverte
❏ Load Balancing
❏ Abstraction pour les clients
❏ Gestion proactive des erreurs
❏ Résilience aux problèmes exterieurs
❏ Pas de “Single Point of Failure”
Checklist
24. Distribution de base
(ex. Ubuntu)
ruby
synapse (gem)
HA Proxy
nerve (gem)
service.jar
synapse.conf / nerve.conf
startup script
server.js + autres
startup script
Base Smartstack
startSynapse.sh
startNerve.sh
+ Techno
synapse.conf / nerve.conf + Code du service
+ Config