29 janvier 2024

Les 5 erreurs à éviter lors de la migration vers les containers

Les containers sont devenus une technologie incontournable pour les entreprises qui cherchent à moderniser leur infrastructure informatique. Ils offrent une flexibilité et une portabilité accrues par rapport aux machines virtuelles. Cependant, il est important de savoir que les containers ne sont pas une simple suite "logique" à : serveur physique > serveur virtuel > container. Il y a plusieurs erreurs courantes à éviter lors de la mise en place de containers. Dans cet article, nous allons passer en revue les 5 erreurs les plus courantes à éviter.

1 : Considérer que container = mini VM

La première erreur courante est de considérer que le container est équivalent à une petite machine virtuelle (VM) et que cela va s'opérer de la même façon côté infrastructure. Les containers sont avant tout des processus que l'on va isoler reposant sur le système d'exploitation sous-jacent et leur format transportable via les images les rend plus légers, plus flexibles et plus rapides à (re)démarrer qu'une machine virtuelle. Cela permet d'améliorer la haute disponibilité et la résilience d'une application en cas de panne d'un élément sous-jacent ou pour de simples maintenances, mais au delà des aspects infra, cela permet surtout de revoir profondément la façon de déployer ses applications et permettre une mise à l'échelle plus efficace. Exit donc les méthodes de migration P2V like ou "lift & shift" qui ont marqué l'époque de la machine virtuelle.

2 : Confondre containerisation et microservices

La deuxième erreur courante est de confondre la containerisation et les microservices. La containerisation est une technique pour packager une application et ses dépendances dans une image pour l'exécuter en container. Les microservices sont une architecture logicielle qui consiste à découper une application en petits services indépendants, et le format container est donc idéal pour cela. Quand bien même les deux seront souvent et assez naturellement associés il est important de les considérer comme deux chantiers potentiellement distincts pour adopter la meilleur stratégie et ainsi éviter d'embarquer des méthodes et outils spécifiques aux microservices systématiquement dès que l'on parle container !

3 : Négliger la gestion des données

La troisième erreur courante est de négliger la gestion des données. Les containers sont nativement éphémères, ce qui signifie que les données écrites durant la vie du conteneur seront perdues lorsque le conteneur est détruit, par exemple lorsqu'il redémarre. Il existe des solutions pour le stockage de données persistantes à chaque type de besoins, il convient de faire l'inventaire de ses usages afin de choisir la solution adaptée et ainsi maximiser les performances, la disponibilité ou encore l'intégrité sans exploser les coûts. Il faudra parfois adapter l'application, par exemple dans le cas du stockage objet, ou bien sélectionner la technologie de stockage en conséquence sans oublier bien entendu, la sauvegarde.

4 : Négliger le workflow de déploiement des applications

La quatrième erreur courante est de négliger le workflow de déploiement des applications et le release management ! C'est le sujet principal lorsque l'on se modernise vers du conteneur, non seulement il faut évidement la chaine de CI/CD, mais il faut également revoir le cycle de vie du livrable (release management des images) et des manifests de déploiement, souvent sous forme de "chart helm" versionnés dans le cas de Kubernetes. Il faut intégrer la notion de patch management concernant ces images, la maintenance des charts, définir sa politique de tagging, etc ..
Durant la phase d'implémentation des applications, l'objectif est également de viser le schéma de "drain resistant application", qui implique une résilience élevée, une tolérance aux erreurs momentanées (dépendances de services), des redémarrages les plus rapide possibles des différents services, Exit donc l'application que l'on "évite" de redémarrer trop souvent car elle met 20mn à être disponible !

5 : Focaliser sur la gestion et le déploiement de l'orchestrateur

La cinquième erreur courante est de focaliser la plus grosse partie de l'effort sur la gestion et le déploiement de l'orchestrateur qui est un travail d'infrastructure qui peut amener à se disperser de part la richesse de l'écosystème. Bien que l'orchestrateur soit un élément clé de la mise en place de containers, il est primordial de ne pas sacrifier les autres sujets pour réussir sa transformation, tel que le workflow de déploiement des applications, le workflow de construction des images, l'optimisation, ou encore la gestion des ressources sans oublier la sécurité au niveau container. Il conviendra alors de bien focaliser sur son besoin et répartir l'effort sur l'ensemble. Il est également important de sensibiliser à l'approche Cloud Native et de savoir remettre en question ses processus et son organisation pour s'adapter à cette nouvelle approche.

En conclusion, la mise en place de containers peut apporter de nombreux avantages, mais il est important d'aborder le sujet sur le bon angle en évitant ces erreurs courantes. Il est crucial de comprendre que les containers ne sont pas une solution miracle pour réduire les coûts ou améliorer la résilience de ses applications sans effort, et qu'ils nécessitent une planification et une mise en place soigneuse pour en tirer parti. En évitant ces cinq erreurs courantes, vous pourrez maximiser les avantages des containers et ainsi minimiser les risques.

Evaluez votre niveau de maturité sur l'utilisation des containers ici