cloud native
Qu’est-ce que
le Cloud Native ?
Comment adopter une approche Cloud Native ? Quelles sont les bonnes pratiques de développement ? Quelles sont les technologies associées ?
Comment adopter une approche Cloud Native ? Quelles sont les bonnes pratiques de développement ? Quelles sont les technologies associées ?
Le Cloud Native permet de créer et d’exécuter des applications évolutives dans des environnements modernes. Les équipes travaillent en cycles courts et se basent sur les données et les feedbacks utilisateurs pour améliorer les applications. Il est essentiel d’adopter une approche Cloud Native à grande échelle.
L’application cloud native consomme indifféremment ses services tiers (un bus de message, une base de données, ou un service). Quelle que soit leur implémentation (MySQL local, base RDS, Cloud SQL, …) et sans impact sur la base de code.
Tout comme pour la configuration, les services doivent être découverts à l'exécution et reposent sur le principe d’un couplage lâche.
L’application doit être exécutée comme un processus sans état. Elle ne doit pas maintenir d’état (étape de workflow, état du panier, …) en mémoire à l’intérieur du processus.
Il est possible de stocker des données de contexte dans un ou des services externes en cas de besoin. Ainsi l’application peut réellement supporter la scalabilité horizontale.
Vos applications doivent démarrer rapidement et supporter une extinction propre et rapide. C’est dans ces conditions qu’elles supporteront les arrêts/relances liés à la scalabilité.
Pensez à la fin de consommation des services externes par exemple. L'application doit refléter la nature éphémère du cloud.
Les services sont construits et pensés initialement comme des APIs. Toute tâche de développement commence donc par la définition des contrats d’interface et leur implémentation. Cela favorise la réutilisation des services ainsi que leur évolution. Les microservices, et les fonctions serverless en sont de bons exemples.
Toute application est observable. Elle doit communiquer son état de santé à travers des Health checks. Elle fournit des données à une plateforme d’observabilité. Ces métriques permettent par exemple : de gérer les dégradations, d’assurer la reprise sur erreur, de collecter les comportements utilisateurs
Les applications embarquent toujours la logique d’authentification et d’autorisation (via RBAC). Cela garantit la sécurité du système en évitant les accès non autorisés et l’escalade de privilège. Elles peuvent par exemple faire appel à : un Single Sign On (SSO), OAuth2 pour l’authentification.
Pour guider vos choix d’infrastructure, et de middleware, appliquez la règle du NoServer. Le Cloud Native repose sur des plateformes d’exécution qui font abstraction de l’infrastructure.
Cela permet de se concentrer uniquement sur le code métier. Les architectures Cloud Native peuvent par exemple reposer sur le ServerLess.