RousselTMLEARNING

Cloud computing

Cloud native : définition et principes d'une application cloud native

Qu'est-ce que le cloud native ? Définition de la CNCF, principes d'une application cloud native (microservices, conteneurs, API, orchestration, observabilité) et différences avec une application traditionnelle.

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 #

Piliers d'une application cloud native
Chaque pilier réduit le temps entre une idée et sa mise en production.
# 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 shop
Bonne 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.

Articles liés

Les modèles de déploiement Cloud : public, privé, hybride, communautaire et multi-cloud

Comprendre les modèles de déploiement du Cloud Computing selon le NIST : cloud public, privé, communautaire, …

Bonnes pratiques Cloud : sécurité, résilience, coûts et exploitation

Bonnes pratiques du Cloud Computing : piliers d'une architecture bien conçue, IAM et moindre privilège, résil…

Edge computing : définition, solutions et datacenters modulaires

L'edge computing expliqué : traiter les données au plus près de leur source, cas d'usage (IoT, industrie, com…

Pour aller plus loin