
L'Ă©cosystĂšme des technologies de conteneurisation Ă©volue rapidement et change, ce qui laisse un manque de bonnes pratiques dans ce domaine. Cependant, Kubernetes et les conteneurs sont de plus en plus utilisĂ©s â tant pour moderniser les anciennes applications que pour dĂ©velopper des applications cloud modernes.Â
Commande a rassemblĂ© des prĂ©visions, conseils et meilleures pratiques pour les leaders du marchĂ© provenant de Gartner, 451 Research, StacxRoŃ
et d'autres. Ils permettront de garantir et d'accélérer le déploiement des conteneurs dans des environnements de production.
Comment savoir si votre entreprise est prĂȘte Ă dĂ©ployer des conteneurs en production
, en 2022, plus de 75 % des organisations utiliseront des applications conteneurisĂ©es en production. C'est considĂ©rablement plus que le taux actuel, oĂč moins de 30 % des entreprises utilisent de telles applications.Â
Selon , le marché prévu pour l'application des technologies de conteneurs en 2022 sera de 4,3 milliards de dollars. C'est plus du double des montants prévus en 2019, avec un taux de croissance du marché de 30 %.
Dans 87 % des rĂ©pondants ont dĂ©clarĂ© qu'ils utilisaient actuellement des technologies de conteneurs. Pour comparaison, en 2017, ce chiffre n'Ă©tait que de 55 %.Â
MalgrĂ© l'intĂ©rĂȘt croissant et l'augmentation de l'adoption des conteneurs, leur mise en production nĂ©cessite une formation en raison de la maturitĂ© technologique et du manque de savoir-faire. Les organisations doivent avoir une vision rĂ©aliste des processus commerciaux qui nĂ©cessitent la conteneurisation des applications. Les leaders IT doivent Ă©valuer s'ils possĂšdent l'ensemble de compĂ©tences nĂ©cessaire pour avancer compte tenu de la nĂ©cessitĂ© d'une formation rapide.Â
estiment que les questions sur l'image ci-dessous aideront Ă comprendre si vous ĂȘtes prĂȘt pour le dĂ©ploiement de conteneurs en production :

Les erreurs les plus fréquentes lors de l'utilisation de conteneurs en production
Les organisations sous-estiment souvent les efforts nécessaires pour exploiter les conteneurs en production. plusieurs erreurs courantes dans les scénarios clients lors de l'application de conteneurs dans des environnements de production :

Comment assurer la sécurité des conteneurs
La sĂ©curitĂ© ne peut pas ĂȘtre abordĂ©e « plus tard ». Elle doit ĂȘtre intĂ©grĂ©e dans le processus DevOps, d'oĂč l'usage du terme DevSecOps. Les organisations doivent planifier tout au long du cycle de vie du dĂ©veloppement, qui comprend le processus de construction et de dĂ©veloppement, le dĂ©ploiement et le lancement de l'application.
:Â
- Intégrez le processus de numérisation des images d'application pour détecter les vulnérabilités dans le pipeline d'intégration continue/livraison continue (CI/CD). Les applications sont scannées aux étapes de construction et de lancement du logiciel. Soulignez la nécessité de scanner et d'identifier les composants open source, les bibliothÚques et les frameworks. L'utilisation de versions anciennes et vulnérables par les développeurs est l'une des principales causes des vulnérabilités des conteneurs.
- Améliorez la configuration grùce aux tests du Center for Internet Security (), disponibles pour Docker ainsi que pour Kubernetes.
- Appliquez systĂ©matiquement un contrĂŽle d'accĂšs, assurez une sĂ©paration des fonctions et mettez en Ćuvre une politique de gestion des secrets. Les informations sensibles, telles que les clĂ©s Secure Sockets Layer (SSL) ou les identifiants de base de donnĂ©es, sont chiffrĂ©es par l'orchestrateur ou des services de gestion tiers et fournies au moment de l'exĂ©cution.
- Ăvitez les conteneurs avec des privilĂšges Ă©levĂ©s grĂące Ă une gestion des politiques de sĂ©curitĂ©, cela rĂ©duira les risques potentiels de violation.
- Utilisez des outils de sécurité qui fournissent des listes blanches, une surveillance comportementale et une détection des anomalies pour prévenir les actions malveillantes.
:
- Utilisez les capacitĂ©s intĂ©grĂ©es de Kubernetes. Configurez l'accĂšs des utilisateurs en utilisant des rĂŽles. Assurez-vous de ne pas accorder de permissions inutiles aux individus, mĂȘme s'il peut falloir un certain temps pour rĂ©flĂ©chir aux permissions minimales nĂ©cessaires. Il peut ĂȘtre tentant de donner des privilĂšges Ă©tendus Ă l'administrateur de cluster, car cela Ă©conomise du temps au dĂ©but. Cependant, tout compromis ou erreur dans le compte peut avoir des consĂ©quences dĂ©sastreuses plus tard.Â
- Ăvitez la duplication des permissions d'accĂšs. Il peut parfois ĂȘtre utile de faire en sorte que diffĂ©rents rĂŽles se chevauchent, mais cela peut entraĂźner des problĂšmes d'exploitation et crĂ©er des « zones mortes » lors de la suppression des permissions. De plus, il est important de supprimer les rĂŽles inactifs et inutilisĂ©s.
- DĂ©finissez des politiques rĂ©seau : isolez les modules pour limiter leur accĂšs ; autorisez explicitement l'accĂšs Ă Internet pour les modules qui en ont besoin, en utilisant des Ă©tiquettes ; autorisez explicitement la communication entre les modules qui doivent interagir.Â
Comment organiser la surveillance des conteneurs et des services qu'ils contiennent
SĂ©curitĂ© et surveillance â lors du dĂ©ploiement de clusters Kubernetes. Les dĂ©veloppeurs se concentrent gĂ©nĂ©ralement davantage sur les fonctionnalitĂ©s des applications qu'ils dĂ©veloppent que sur les aspects .Â
:
- Essayez de surveiller l'état des conteneurs ou des services qu'ils contiennent en parallÚle avec la surveillance des systÚmes hÎtes.
- Privilégiez les fournisseurs et outils offrant une intégration approfondie dans l'orchestration des conteneurs, en particulier Kubernetes.
- Choisissez des outils qui fournissent des journaux détaillés, une détection automatique des services et des recommandations en temps réel en utilisant l'analyse et/ou l'apprentissage automatique.
:
- d'utiliser des outils pour la détection automatique et le suivi des métriques des conteneurs, la corrélation des métriques de performance telles que l'utilisation du processeur, de la mémoire et le temps de disponibilité.
- Assurez un planificateur de capacité optimal en prévoyant les dates d'épuisement de la capacité sur la base des indicateurs de surveillance des conteneurs.
- Organisez la surveillance des applications déployées dans des conteneurs en fonction de la disponibilité et de la performance, ce qui est utile tant pour la planification de la capacité que pour la résolution des problÚmes de performance.
- Automatisez les flux de travail en fournissant un soutien à la gestion et à l'évolutivité des conteneurs et de leurs environnements de déploiement.
- Automatisez le contrÎle d'accÚs pour suivre la base d'utilisateurs, désactiver les comptes obsolÚtes et invités, et supprimer les privilÚges excessifs.
- Assurez-vous que votre ensemble d'outils peut surveiller ces conteneurs et applications dans différents environnements (cloud, local ou hybride) pour visualiser et corréler les performances au sein de l'infrastructure, du réseau, des systÚmes et des applications.
Comment stocker les données et garantir leur sécurité
Avec l'augmentation du nombre de conteneurs de travail avec Ă©tat, les clients doivent prendre en compte la localisation des donnĂ©es en dehors de l'hĂŽte, ainsi que la nĂ©cessitĂ© de protĂ©ger ces donnĂ©es.Â
Selon , la sĂ©curitĂ© des donnĂ©es est en tĂȘte des prĂ©occupations en matiĂšre de sĂ©curitĂ©, signalĂ©es par la majoritĂ© des rĂ©pondants (61 %).Â
Le chiffrement des données est la principale stratégie de sécurité (64 %), cependant, les répondants utilisent également la surveillance à l'exécution
(49 %), le scanning des vulnérabilités dans les registres (49 %), le scanning des vulnérabilités dans les pipelines CI/CD (49 %) et le blocage des anomalies grùce à la protection à l'exécution (48 %).
:
- Choisissez des solutions de stockage de données basées sur les principes . Il est préférable de se concentrer sur celles qui respectent les exigences de stockage de données pour les services de conteneurs, qui sont indépendantes du matériel, gérées par API, ont une architecture distribuée, prennent en charge le déploiement local et le déploiement dans le cloud public.
- Ăvitez les plugins et interfaces propriĂ©taires. Optez pour des fournisseurs qui assurent l'intĂ©gration avec Kubernetes et prennent en charge des interfaces standard telles que CSI (Container Storage Interfaces).
Comment travailler avec les réseaux
Le modĂšle traditionnel de rĂ©seau d'entreprise, oĂč les spĂ©cialistes IT crĂ©ent des environnements de dĂ©veloppement, de test, d'assurance qualitĂ© et de production pour chaque projet, ne s'accorde pas toujours bien avec les workflows de dĂ©veloppement continu. De plus, les rĂ©seaux de conteneurs couvrent plusieurs niveaux.
Dans des rĂšgles de haut niveau que devrait respecter la mise en Ćuvre d'une solution de rĂ©seau en cluster :
- Les pods programmĂ©s sur un mĂȘme nĆud doivent ĂȘtre en mesure d'Ă©changer des donnĂ©es avec d'autres modules sans utiliser le NAT (traduction d'adresses rĂ©seau).
- Tous les dĂ©mons systĂšme (processus de fond, comme kubelet) fonctionnant sur un nĆud donnĂ© peuvent interagir avec les pods fonctionnant sur le mĂȘme nĆud.
- Les pods utilisant doivent pouvoir communiquer avec tous les autres pods sur tous les autres nĆuds sans recourir au NAT. Notez que le rĂ©seau hĂŽte n'est pris en charge que sur les hĂŽtes Linux.
Les solutions rĂ©seau doivent ĂȘtre Ă©troitement intĂ©grĂ©es aux primitives et aux politiques de Kubernetes. Les dirigeants informatiques doivent viser un haut degrĂ© d'automatisation du rĂ©seau, en fournissant aux dĂ©veloppeurs les outils appropriĂ©s et une flexibilitĂ© suffisante.
:
- Vérifiez si votre CaaS (Container as a Service) ou votre réseau SDN (Software Defined Network) prend en charge les réseaux Kubernetes. Si ce n'est pas le cas ou si la prise en charge est insuffisante, utilisez pour vos conteneurs une interface réseau CNI (Container Network Interface) qui prend en charge les fonctionnalités et les politiques nécessaires.
- Assurez-vous que votre CaaS ou PaaS (Platform as a Service) prend en charge la crĂ©ation de contrĂŽleurs d'entrĂ©e et/ou de rĂ©partiteurs de charge pour distribuer le trafic entrant entre les nĆuds du cluster. Si cette possibilitĂ© n'existe pas, envisagez d'utiliser des proxies tiers ou des mĂ©canismes de service mesh.
- Formez vos ingénieurs réseau à travailler avec des réseaux Linux et des outils d'automatisation réseau pour réduire le fossé de compétences et améliorer la flexibilité.
Comment gérer le cycle de vie des applications
Pour une livraison automatisĂ©e et ininterrompue des applications, il est nĂ©cessaire de complĂ©ter l'orchestration des conteneurs par d'autres outils d'automatisation, comme les produits d'infrastructure en tant que code (IaC). Cela inclut Chef, Puppet, Ansible et Terraform.Â
Des outils d'automatisation pour la construction et le déploiement des applications sont également nécessaires (voir «»). Les conteneurs offrent également des possibilités d'extension similaires à celles qui existaient lors du déploiement de machines virtuelles (VM). Ainsi, les dirigeants informatiques doivent disposer de .
:
- Ătablissez des normes pour les images de conteneurs de base en tenant compte de la taille, des licences et de la flexibilitĂ© pour l'ajout de composants par les dĂ©veloppeurs.
- Utilisez des systÚmes de gestion de configuration pour gérer le cycle de vie des conteneurs, qui stockent la configuration dans des couches basées sur des images de base, présentes dans des dépÎts publics ou privés.
- Intégrez la plateforme CaaS avec des outils d'automatisation pour automatiser l'ensemble du flux de travail des applications.
Comment gérer les conteneurs à l'aide d'orchestrateurs
Les principales fonctionnalitĂ©s pour le dĂ©ploiement de conteneurs sont fournies aux niveaux d'orchestration et de planification. Lors de la planification, les conteneurs sont placĂ©s sur les hĂŽtes les plus optimaux dans le cluster, comme l'exigent les exigences du niveau d'orchestration.Â
Kubernetes est devenu le standard de facto de l'orchestration de conteneurs avec une communautĂ© active, soutenue par la plupart des principaux fournisseurs commerciaux.Â
:
- Définissez les exigences de base pour la gestion de la sécurité, la surveillance, la gestion des politiques, la persistance des données, la gestion des réseaux et le cycle de vie des conteneurs.
- Sur la base de ces exigences, choisissez l'outil qui répond le mieux à vos besoins et scénarios d'utilisation.
- Utilisez les recherches de Gartner (voir ""), pour comprendre les avantages et les inconvénients des différents modÚles de déploiement Kubernetes et choisir celui qui convient le mieux à votre tùche.
- Choisissez un fournisseur qui peut offrir une orchestration hybride pour les conteneurs de travail dans plusieurs environnements, avec une intégration étroite avec les backends, des plans de gestion partagés et des modÚles de tarification cohérents.
Comment utiliser les capacités des fournisseurs de cloud
, que l'intĂ©rĂȘt pour le dĂ©ploiement de conteneurs dans le cloud public IaaS augmente en raison de la disponibilitĂ© d'offres CaaS prĂȘtes Ă l'emploi, ainsi que de l'intĂ©gration Ă©troite de ces offres avec d'autres produits proposĂ©s par les fournisseurs de cloud.
Les clouds IaaS offrent une consommation de ressources Ă la demande, une Ă©volutivitĂ© rapide et , ce qui contribue Ă Ă©viter le besoin de connaissances approfondies sur l'infrastructure et son entretien. La plupart des fournisseurs de cloud proposent des services de gestion des conteneurs, et certains offrent plusieurs options d'orchestration.Â
Les principaux fournisseurs de services cloud gĂ©rĂ©s sont prĂ©sentĂ©s dans le tableau :Â
Fournisseur de cloud
Type de service
Produit/service
Alibaba
Service cloud natif
Alibaba Cloud Container Service, Alibaba Cloud Container Service for Kubernetes
Amazon Web Services (AWS)
Service cloud natif
Amazon Elastic Container Services (ECS), Amazon ECS for Kubernetes (EKS), AWS Fargate
Giant Swarm
MSP
Giant Swarm Managed Kubernetes Infrastructure
Google
Service cloud natif
Google Container Engine (GKE)
IBM
Service cloud natif
IBM Cloud Kubernetes Service
par Microsoft
Service cloud natif
Azure Kubernetes Service, Azure Service Fabric
Oracle
Service cloud natif
OCI Container Engine for Kubernetes
Platform9
MSP
Kubernetes géré
Red Hat
Service hébergé
OpenShift Dedicated & Online
VMware
Service hébergé
Cloud PKS (Beta)
Solutions Cloud Mail.ru*
Service cloud natif
Conteneurs Cloud Mail.ru
* Nous ne cachons pas que nous nous sommes ajoutĂ©s nous-mĂȘmes lors de la traduction đ
Les fournisseurs de clouds publics ajoutent Ă©galement de nouvelles capacitĂ©s et lancent des produits locaux. Dans un avenir proche, les fournisseurs de cloud dĂ©velopperont le support des environnements hybrides et multi-cloud.Â
:
- Ăvaluez objectivement les capacitĂ©s de votre organisation Ă dĂ©ployer et Ă gĂ©rer les outils appropriĂ©s, tout en considĂ©rant des services alternatifs de gestion de conteneurs cloud.
- Choisissez soigneusement les logiciels, en utilisant des solutions open source lorsque cela est possible.
- Choisissez des fournisseurs avec des modÚles opérationnels unifiés dans des environnements hybrides, qui offrent une gestion de clusters intégrés depuis un panneau unique, ainsi que des fournisseurs qui simplifient l'utilisation autonome de l'IaaS.
:
- Il vaut la peine de rechercher des distributions qui supportent la haute disponibilité dÚs la sortie de l'emballage. Cela inclut le support de plusieurs architectures de base, des composants etcd à haute disponibilité, ainsi que la sauvegarde et la restauration.
- Pour assurer la mobilitĂ© des environnements Kubernetes, il est prĂ©fĂ©rable de choisir des fournisseurs cloud qui supportent un large Ă©ventail de modĂšles de dĂ©ploiement : des locaux aux hybrides et multi-cloud.Â
- Les propositions des fournisseurs doivent Ă©galement ĂȘtre Ă©valuĂ©es en tenant compte de la facilitĂ© de configuration, d'installation et de crĂ©ation de clusters, ainsi que des mises Ă jour, de la surveillance et du dĂ©pannage. L'exigence de base est la prise en charge des mises Ă jour entiĂšrement automatisĂ©es du cluster avec un temps d'arrĂȘt nul. La solution choisie doit Ă©galement permettre de lancer les mises Ă jour manuellement.Â
- La gestion de l'identité et de l'accÚs est importante tant du point de vue de la sécurité que de la gestion. Assurez-vous que la distribution Kubernetes choisie prend en charge l'intégration avec les outils d'authentification et d'autorisation utilisés au sein de l'entreprise. RBAC et contrÎle d'accÚs détaillé sont également des ensembles de fonctionnalités importants.
- La distribution choisie doit soit avoir sa propre solution réseau, définie par le logiciel et couvrant un large éventail d'exigences présentées par diverses applications ou infrastructures, soit supporter l'une des implémentations réseau populaires basées sur CNI, y compris Flannel, Calico, kube-router ou OVN.
L'implĂ©mentation des conteneurs en production devient une prioritĂ©, comme en tĂ©moigne les rĂ©sultats d'une enquĂȘte menĂ©e lors de sur les infrastructures, les opĂ©rations et les stratĂ©gies cloud (IOCS) en dĂ©cembre 2018 :

Comme nous le voyons, 27 % des répondants utilisent déjà des conteneurs dans leurs opérations, et 63 % prévoient de le faire.
Dans 24 % des rĂ©pondants ont dĂ©clarĂ© investir plus d'un demi-million de dollars par an dans les technologies de conteneurs, et 17 % des rĂ©pondants dĂ©pensent plus d'un million de dollars par an pour celles-ci.Â
Cet article a été rédigé par l'équipe de la plateforme cloud .
Suggestions de lecture supplémentaires:
- .
- .
- .
Source : habr.com
