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.
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. 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
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
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. 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. 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
21. Contraintes à la production
Sources principales de contraintes
Proviennent essentiellement des éléments suivant :
● Immuabilité
● Orchestration
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. Contraintes à la production
Observabilité des containers
Monitoring Alertes
34. Contraintes à la production
Gestion des logs
App v1.1
A
B
Indexeur
Outil de monitoring
forwarding parsing
Système centralisé
35. Contraintes à la production
Découverte de services
Pattern orienté micro-service
et “server-side”
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. Contraintes à la production
Découverte de services
Consul linkerd envoy
Swarm Zookeeper
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. 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. 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. 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. 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. 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