CONTACT
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 ?

about us

Définition du cloud native

 

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.

cloud skills - cloud native

Quels sont les avantages du Cloud Native ?

1. Traitez les services externes comme des dépendances.

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.

2. Faites du stateless (sans états) la norme.

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.

3. Développez du jetable.

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.

4. Pensez API (API First).

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.

5. Observez, mesurez, surveillez.

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

6. Prenez l’authentification et les autorisations en compte dès le départ.

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.

7. Oubliez les serveurs.

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.