Observatoire du Numérique
TechTrends 5  /  7

Containers, orchestration et serverless dans les architectures cloud native

Comprendre comment containers, orchestration, microservices et serverless permettent de créer des applications adaptées aux environnements cloud.


Une application peut être hébergée dans le cloud sans avoir été conçue pour en exploiter pleinement les propriétés. Le terme cloud native désigne une approche dans laquelle l'architecture et l'exploitation de l'application sont pensées pour des environnements dynamiques et fortement automatisés.

Du serveur à l'unité de déploiement

Containers

Un container regroupe une application avec les éléments nécessaires à son exécution tout en partageant le noyau du système hôte. Il est généralement plus léger qu'une machine virtuelle complète.

Microservices

Une application peut être divisée en services plus petits possédant chacun une responsabilité précise et pouvant évoluer indépendamment.

Orchestration

Lorsque des dizaines ou centaines de containers doivent être exécutés, une plateforme d'orchestration peut automatiser leur placement, leur redémarrage et leur mise à l'échelle.

Kubernetes et l'état désiré

Kubernetes illustre cette logique. L'utilisateur décrit un état désiré, par exemple trois instances d'une application. La plateforme observe ensuite l'état réel du système et agit afin de le rapprocher de cette configuration.

Cette approche évite de considérer chaque serveur comme une machine unique à maintenir manuellement. Une instance peut disparaître et être remplacée automatiquement.

Le serverless pousse l'abstraction plus loin

Avec le serverless, l'utilisateur se concentre davantage sur le code ou le service à exécuter et délègue encore davantage la gestion de l'infrastructure.

Le terme ne signifie pas que les serveurs ont disparu. Ils existent toujours, mais leur allocation, leur dimensionnement et une partie de leur exploitation sont masqués derrière le service fourni.

L'automatisation devient structurelle

Dans une architecture cloud native, le déploiement, la configuration et une partie des opérations sont généralement automatisés. Les API déclaratives, l'Infrastructure as Code et les pipelines CI/CD permettent de reproduire plus facilement un environnement et de limiter les opérations manuelles.

Cette automatisation apporte de la souplesse, mais augmente aussi le nombre de composants et d'interactions à comprendre.

Le cloud native ne consiste pas à utiliser une technologie particulière. Il s'agit de concevoir des systèmes automatisables, distribués et capables d'évoluer dans un environnement dynamique. Cette approche prépare directement la question de l'élasticité et de la résilience.


Sources