Este artículo está disponible en francés.
1. La philosophie Cloud Native #
Plus qu'une technologie, une approche méthodologique (The 12-Factor App).
L'immuabilité #
Une application Cloud Native est conçue pour être résiliente. On ne répare jamais un serveur cassé, on le remplace automatiquement par un nouveau. C'est le passage du modèle 'Pets' (on prend soin de chaque serveur) au modèle 'Cattle' (le serveur est une ressource remplaçable).
2. Microservices et Conteneurs #
L'application est découpée en petits services indépendants communiquant via des APIs. Les conteneurs (Docker) garantissent que l'application fonctionnera de la même manière sur l'ordinateur du développeur et en production.
3. Orchestration et CI/CD #
Kubernetes devient le chef d'orchestre qui gère le déploiement de ces milliers de conteneurs. Couplé à une pipeline CI/CD automatisée, le Cloud Native permet de déployer des mises à jour des dizaines de fois par jour sans interruption de service.
Mise en pratique : une application cloud native #
12 facteurs, conteneurs et déploiement continu.
Les piliers du cloud native #
# De l'application au cluster, étapes types
docker build -t registre.exemple.fr/shop/api:1.0 . && docker push registre.exemple.fr/shop/api:1.0
kubectl apply -f k8s/ # déploiement déclaratif
kubectl rollout status deployment/api
# GitOps : le cluster se synchronise depuis Git
argocd app create shop --repo https://git.exemple.fr/shop/deploy.git --path k8s --dest-server https://kubernetes.default.svc --dest-namespace prod
argocd app sync shopBonne Pratique : Une application cloud native est sans état : sessions, fichiers et configuration vivent dans des services externes (base, cache, objet, ConfigMap), ce qui permet de supprimer et recréer n'importe quelle instance.
Mi seguimiento
Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión