Passer au contenu

La containerisation : une révolution technologique et organisationnelle

Capgemini
1er juin 2021

Nouveaux outils et processus transforment l’IT. La containerisation, popularisée par Docker depuis 2013, en fait partie.

Cette solution permet de packager une application et toutes ses dépendances (librairies, middleware, etc.) dans un format standard déployable n’importe où.

Avec les containers, nous avons un nouveau moyen de faire discuter les développeurs et l’équipe des opérations. En effet, les développeurs s’occupent de ce qu’il y a à l’intérieur des containers et l’équipe des opérations s’occupent de les maintenir en condition opérationnelle. Pour faciliter leur tâche dès lors que le nombre de containers croît, l’équipe des opérations utilise un orchestrateur de containers, comme Kubernetes.

Containers et orchestrateurs apportent de nombreux avantages

La façon de packager et déployer les applications devient standard : tout passe maintenant par le container et nous avons un langage commun entre les développeurs et l’équipe des opérations, qui historiquement n’avaient pas les mêmes intérêts. Les containers sont donc un élément essentiel de l’adoption massive du mouvement DevOps.

De plus, les entreprises ont maintenant un package applicatif qui devient agnostique des infrastructures. A partir du moment où un orchestrateur est utilisé, l’application peut être indifféremment déployée on-premises, mais aussi sur n’importe quel cloud, qu’il soit américain (AWS, Azure, GCP), souverain (OVH), ou encore chinois (Alibaba Cloud).

Enfin, l’utilisation de containers et d’un orchestrateur augmente également la rapidité de déploiement. La façon de déployer étant standard et uniforme, les équipes peuvent alors déployer jusqu’à plusieurs fois par jour et revenir en arrière simplement.

Anticiper l’aspect sécurité

Dans le cas d’un container, une partie de la sécurité peut s’évaluer avant même son déploiement. Comme celui-ci se base sur des images mises à disposition par la communauté, ou par des équipes internes, il est important de bien définir un RACI afin de garantir qu’une faille ne soit pas introduite lors d’un nouveau déploiement, ou lors du redéploiement d’une ancienne version d’une application. D’un autre côté, le débordement au delà des frontières d’un container par un pirate peut lui donner le contrôle de l’orchestrateur et de tout le parc applicatif. Une attention particulière doit donc être portée sur la sécurisation de l’orchestrateur et l’isolation de ses containers pour se prémunir de ce risque.

Afin de tirer parti au maximum de l’implémentation des containers, il est aussi nécessaire de redéfinir l’architecture applicative en la transformant en architecture cloud-native, c’est-à-dire étant capable d’être mise à l’échelle simplement et automatiquement. Cela implique généralement une réécriture complète de l’application en respectant les bonnes pratiques : une application stateless et généralement sous forme d’API.

Les containers ont aussi un impact organisationnel 

L’utilisation des containers impose un changement du TOM (Target Operating Model). Tout ce qui était auparavant à la charge de l’exploitation en cas d’incident (redémarrage des processus, scalabilité, etc.) est automatisé et pris en charge par l’orchestrateur. Il est donc nécessaire de faire évoluer les processus internes pour s’adapter à ce nouveau monde, et inclure l’orchestrateur dans ce nouveau TOM.

Généralement de nouveaux processus internes sont adoptés comme l’Agilité, afin de pouvoir développer plus rapidement, plus efficacement et conformément aux attentes du Product Owner ; ou encore le DevOps afin d’être en capacité de déployer jusqu’à plusieurs fois par jour. Nous voyons alors une adoption de concept comme les feature teams, où une équipe est responsable de tout le cycle de vie d’une application : de son développement jusqu’au maintien en condition opérationnelle en production.

Nous avons pu accompagner plusieurs de nos clients dans l’adoption de ces nouvelles technologies, de la refonte applicative en passant par le changement de leur processus. Un des cas les plus notables est une entreprise que nous avons accompagnée dans leur transformation DevOps et dans l’adoption des containers. Cette entreprise suite à notre intervention a été capable de déployer plus rapidement ses applications, avec des équipes pluridisciplinaires tout en économisant près de 60% du coût de leur infrastructure grâce à la densification permise par les containers.

Le container s’est donc imposé comme la solution incontournable au sein de l’entreprise pour délivrer de la valeur aux utilisateurs plus efficacement et plus rapidement.

Nous constatons une adoption massive de ces nouveaux outils qui permettent aux entreprises les ayant adoptés de transformer leur système d’information, mais aussi tous les processus internes afin de tirer pleinement parti de cette révolution.