Qu'est-ce que le "cloud native" ?
Les technologies Cloud Native permettent aux entreprises de construire et d'exploiter des applications élastiques dans des environnements modernes et dynamiques comme des clouds publics, privés ou bien hybrides.
"Les technologies Cloud Native permettent aux entreprises de construire et d'exploiter des applications élastiques dans des environnements modernes et dynamiques comme des clouds publics, privés ou bien hybrides. Les conteneurs, le maillage de services, les microservices, les infrastructures immuables et les API déclaratives illustrent cette approche. Ces techniques permettent la mise en œuvre de systèmes faiblement couplés, à la fois résistants, pilotables et observables. Combinés à un robuste système d'automatisation, ils permettent aux ingénieurs de procéder à des modifications impactantes, fréquemment et de façon prévisible avec un minimum de travail. "
CNCF, Cloud Native Computing Foundation
Les applications Cloud native reposent sur 5 piliers.
-
3 "piliers fondamentaux" fournissent les principaux avantages des applications Cloud Natives
-
Abstraction matérielle
-
Architecture distribuée
-
Services gérés d'infrastructure
-
-
2 "piliers de soutien" sont là pour atténuer les effets de la complexité engendrée par les piliers centraux.
-
Automatisation
-
Observabilité
-
Les piliers fondateurs du Cloud native

Abstraction matérielle
Les modèles informatiques modernes tels que la conteneurisation et l'informatique serverless favorisent l'abstraction matérielle. Les développeurs ont ainsi la possibilité de créer composants applicatifs sans avoir à s'occuper de toutes les considérations matérielles telles que le dimensionnement statique initial, les installations (y compris les aspects liés au système d'exploitation), la localisation, les correctifs de bas niveau, la gestion de la scalabilité ou encore la configuration du réseau physique.

Architecture distribuée
Cet important pilier est plus architectural que technologique. Il consiste essentiellement en 2 choses :
- Diviser la complexité globale en composants indépendants, moins complexe pris individuellement (typiquement des microservices)
- Assurer un couplage lâche : diviser la complexité ne sert à rien si tout est couplé à tout, il faut également s'assurer que le couplage est réduit au minimum en s'appuyant sur des approches orientées API et événements ou encore sur les principes DDD

Services gérés d’infrastructure
Pour être rapide, le développeur doit se concentrer sur l'essentiel : son code métier. Tout ce qui peut être abstrait devrait pouvoir l'être. Ce pilier fournit des services d'infrastructure prêts à l'emploi, tels que des bases de données, des services de messagerie, des IDP, des réseaux virtuels, etc.
Ce pilier est un accélérateur clé de la vitesse de développement des applications "cloud-natives".

Automatisation
Dans les architectures cloud natives, l'automatisation devient un impératif pour pouvoir faire face à l'augmentation de la complexité. Elle apporte des avantages très importants tels que :
- La capacité à gérer de multiples environnements.
- Réduction des temps de construction et de déploiement
- Augmentation de la qualité et de la prévisibilité

Observabilité
Un grand nombre de pièces en mouvement signifie que la résolution de problèmes devient plus complexe. Une infrastructure d'observabilité efficace est essentielle pour détecter rapidement la source de ce ces problèmes pour y remédier de manière réactive et efficace.
En plus des aspects techniques, une initiative cloud-native réussie repose également sur d’autres dimensions telles que :
- Le mise en œuvre de méthodologies agiles
- Une structure organisationnelle non hiérarchique des équipes
- Une conception de produit orientée fonctionnalités et guidée par la donnée
- Une culture itérative et collaborative