Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Orchestrating Docker in production - TIAD Camp Docker

1,026 views

Published on

by D2SI
TIAD Camp Docker 6 Octobre 2017

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Orchestrating Docker in production - TIAD Camp Docker

  1. 1. Orchestrating Docker in Production
  2. 2. Programme 1. Rappel 2. Infrastructure immuable 3. Orchestrateurs de conteneurs 4. Contraintes à la production
  3. 3. Rappel Recap Bootcamp - Docker build (construire une nouvelle image) - Docker push (pousser l’image sur un registry docker) - Docker-compose up (Démarrer la nouvelle image ) - Déploiement sur d’un application sur Swarm & ECS Ces trois étapes permettent de construire une nouvelle image à chaque mise à jours, cette image reste inchangé tout au long du cycle de vie de cette version.
  4. 4. Infrastructure immuable
  5. 5. Introduction Éviter des inconsistances de configuration Configuration drift !!
  6. 6. Introduction Modifications manuelles
  7. 7. Introduction Échec partiel de mise à jour Ansible Management node Component A Component B Component C ssh ssh ssh
  8. 8. Introduction Solutions - Simplifier les opérations - Rendre les applications facilement scalables - Rendre votre infrastructure facilement restaurable et reproductible - Limiter les erreurs inattendus - Plus besoin de raconter l’histoire de chaque composant - Cloud reboot sans craintes
  9. 9. Introduction Contraintes - Gestion d’images - Sécurisation des images - Demande plus de rigueure, plus de collaboration avec les équipes de développement - Nécessite un un rebuild de l’image à chaque mise à jours
  10. 10. Introduction Outils & automatisation
  11. 11. Introduction(Parallèle avec l’immutabilité) Immuabilité avec les conteneurs
  12. 12. Orchestrateurs de conteneurs
  13. 13. L’orchestration Qu’est-ce qu’un orchestrateur ?
  14. 14. L’orchestration - Planifier (Scheduling) le placement des conteneurs. - S'assurer du bon fonctionnement (self healing + scaling) des conteneurs - Gérer les mises à jours et le remplacement des conteneurs Rôles dans le contexte des conteneurs
  15. 15. L’orchestration Exemple de solutions disponibles Kubernetes AWS Ecs Docker Swarm
  16. 16. L’orchestration Kubernetes Ecs Swarm Deployment Public clouds, Virtual infra, Physical Hardware Only available on AWS Public clouds, Virtual infra, Physical Hardware Rolling Update Support rolling update and recreate strategies Support rolling update by minimum healthy percent and maximum percent parameters The swarm manager lets you control the delay between service deployment to different set of node Autoscaling Application autoscaling Service autoscaling Manual Fonctionnalités
  17. 17. L’orchestration Kubernetes Ecs Swarm Service discovery ETCD v3 Use application load balancers or install a Consul cluster Swarm manager assigns each service a unique DNS. Swarm supports several discovery backends HealthCheck Liveness and readiness Load balancer health check Service running state Service running state HEALTHCHECK functionnality can be embedded into docker image Logging ELK addons or others Install ELK or other solution can be installed ELK stack can be installed Fonctionnalités
  18. 18. L’orchestration Kubernetes Ecs Swarm High availability Supported in pod and masters nodes level Cluster is fully managed by AWS Tasks can be replicated among ec2 instances Services replicated among swarm nodes Odd number of manager is recommended Networking Overlay network VPC Overlay network (not built-in) Overlay network Performance Can handle 5000 nodes with up to 150,0000 pods No stats available,but a 2015 blog by Werner Vogels, CTO - Amazon.com, that has some metrics on scaling v/s latency. 1000 nodes and up to 30.000 containers with 1 swarm manager Fonctionnalités
  19. 19. L’orchestration Kubernetes Ecs Swarm Key Concepts Pods Replication controller Deployment Service Task definition Service Stack Docker compose Fonctionnalités
  20. 20. Contraintes à la production
  21. 21. Contraintes à la production Sources principales de contraintes Proviennent essentiellement des éléments suivant : ● Immuabilité ● Orchestration
  22. 22. Contraintes à la production Observabilité des containers WebUI CLI docker service ls ID NAME MODE REPLICAS vpa4kuy119qv frontend replicated 1/1 xx3akdb6z3r9 backend replicated 1/1 Ohf5wc147tqn proxy replicated 3/3
  23. 23. Contraintes à la production Observabilité des containers Monitoring Alertes
  24. 24. orchestateur rolling-update Contraintes à la production Déploiement continu App v1.0 A A Client Load Balancer Rolling-update
  25. 25. orchestateur rolling-update Contraintes à la production Déploiement continu App v1.0 A A Client Load Balancer Rolling-update App v1.1
  26. 26. orchestateur rolling-update Contraintes à la production Déploiement continu App v1.0 A A Client Load Balancer Rolling-update App v1.1 A
  27. 27. orchestateur rolling-update Contraintes à la production Déploiement continu App v1.0 A A Client Load Balancer Rolling-update App v1.1 A
  28. 28. orchestateur rolling-update Contraintes à la production Déploiement continu App v1.0 A A Client Load Balancer Rolling-update App v1.1 A A
  29. 29. orchestateur rolling-update Contraintes à la production Déploiement continu App v1.0 A A Client Load Balancer Rolling-update App v1.1 A A
  30. 30. orchestateur rolling-update Contraintes à la production Déploiement continu App v1.0 A A Client Load Balancer Rolling-update App v1.1 A A
  31. 31. orchestateur rolling-update Contraintes à la production Déploiement continu Client Load Balancer Rolling-update App v1.1 A A
  32. 32. Contraintes à la production Déploiement continu Audit de sécuritéGestion des tags
  33. 33. Contraintes à la production Gestion des logs CLI Centralisée
  34. 34. Contraintes à la production Gestion des logs App v1.1 A B Indexeur Outil de monitoring forwarding parsing Système centralisé
  35. 35. Contraintes à la production Découverte de services Pattern orienté micro-service et “server-side”
  36. 36. Contraintes à la production Découverte de services Permet de connaître dynamiquement : ● Quelles sont les applications disponibles ● Comment y accéder (IP et Port via requête DNS)
  37. 37. Contraintes à la production Découverte de services Consul linkerd envoy Swarm Zookeeper
  38. 38. Contraintes à la production Découverte de services Enregistrement App v1.1 A B KV StoreMiddleware enregistre ip:port DNS auto-configuration - A.service.domain - B.service.domain - ...
  39. 39. Contraintes à la production Découverte de services Vérification de la disponibilité App v1.1 A B KV StoreMiddleware enregistre état DNS auto-configuration - A.service.domain - B.service.domain - ... curl http://ip:port
  40. 40. Contraintes à la production Découverte de services Répartition de charges App v1.1 A A DNS - A.service.domain (Round-Robin) - ... http://my.app.domain Clients
  41. 41. Contraintes à la production Découverte de services Fail-over App v1.1 A A DNS - A.service.domain (Round-Robin) - ... http://my.app.domain Clients
  42. 42. Contraintes à la production Découverte de services Point important ● La découverte de service exploite des entrées DNS de type SRV ○ Permet de réunir ip + port au sein d’une même entrée ○ Tous les clients ne le gèrent pas (i.e nginx) ● Nécessite d’être géré en amont (i.e Traefik ou Kong)
  43. 43. Contraintes à la production Sécurisation de l’environnement Isolation du processus Ne voit pas ceux de l’hôte ou d’autres conteneurs. Isolation du réseau Pas accès aux sockets ou interfaces réseau hôte. Possède ses propres interfaces. Limitation des ressources Contrôle possible de l’attribution CPU, mémoire et I/O disque. Ne peut excéder les limites du systèmes Isolation du stockage N’a pas accès au système de fichier hôte. Possède son propre espace. Linux kernel
  44. 44. Orchestrating Docker in Production Demo
  45. 45. Demo Application Load Balancer Kong (RDS) Route 53 Tiad (RDS) Consul server (EC2 cluster) Kong API (ECS cluster) log forwarding TIAD (ECS cluster) ElasticSearch
  46. 46. Orchestrating Docker in Production Merci
  47. 47. Orchestrating Docker in Production Q & A

×