The Doppler Quarterly (FRANÇAIS) Hiver 2016 | Page 39

• Fournir des services d ’ automatisation qui tirent parti de l ’ optimisation fondée sur une stratégie . Une couche d ’ automatisation doit être mise en place pour déterminer la meilleure plateforme d ’ exécution , et effectuer automatiquement la migration vers cette plateforme . Cette couche doit en même temps gérer automatiquement les changements de configuration nécessaires .
Comment faire évoluer les applications basées sur les conteneurs
La plupart des gens qui cherchent l ’ évolutivité des conteneurs optent pour l ’ une des deux approches de base suivantes . La première consiste à créer un système sur mesure pour gérer les conteneurs . L ’ idée est d ’ avoir un système ponctuel construit pour lancer automatiquement les nouvelles instances de conteneurs en cas de besoin , pour gérer une charge de traitement plus importante . Mais il faut prendre en compte le fait que ce qui est construit doit être entretenu . Comme souvent avec les approches « maison », cette maintenance sera gourmande en main d ’ œuvre et en coûts .
La seconde approche consiste à exploiter l ’ une des technologies de mise en clusters , de planification et d ’ orchestration de conteneurs , qui fournira les mécanismes de base permettant l ’ évolutivité . Il s ’ agit en règle générale de la meilleure solution .
Cette seconde approche peut utiliser plusieurs options différentes :
D ’ abord , Kubernetes de Google est un gestionnaire de clusters de conteneurs open source , dans la même veine de Docker Swarm ( voir plus bas ). Kubernetes peut planifier n ’ importe quel nombre de répliques de conteneurs sur un groupe d ’ instances de nœuds . Cette capacité de réplication et de distribution de conteneurs est généralement suffisante pour faire évoluer la plupart des grandes applications basées sur les conteneurs . Cette approche est sensiblement la même que pour l ’ évolutivité des conteneurs chez les autres outils .
Ensuite , Cloudify fournit un outil d ’ orchestration Docker dont les fonctionnalités chevauchent celles de Docker Compose et de Docker Swarm . Ses modèles basées sur YAML permettent aux développeurs de décrire des topologies complexes , et notamment les couches d ’ infrastructure , de logiciels d ’ infrastructure , et d ’ applications . C ’ est un outil plus orienté orchestration , et on doit donc envisager son utilisation lorsqu ’ on cherche un outil d ’ orchestration et d ’ automatisation sans avoir besoin de mise en clusters .
Enfin , Docker Swarm , l ’ outil le plus récent , offre des capacités de planification , de mise en clusters et d ’ intégration . Cet outil permet aux développeurs de construire et de lancer des applications multi-conteneurs / multi-hôtes distribuées qui intègrent l ’ évolutivité et la gestion nécessaires aux systèmes basés sur les conteneurs . Swarm est bien sûr conçu pour concurrencer Kubernetes , qui détient la plus grosse part de marché . Ces deux outils doivent être envisagés pour des besoins d ’ évolutivité massive de conteneurs . Je pense que l ’ idéal est d ’ établir une démonstration de faisabilité pour chacune des deux technologies , avec des charges de travail réelles .
Les règles de bonnes pratiques continuent à se dessiner autour de l ’ évolutivité des conteneurs , et notamment :
• Passez du temps sur l ’ architecture de vos applications basées sur les conteneurs . La plupart des problèmes d ’ évolutivité trouvent leur origine dans une mauvaise conception , et non une mauvaise technologie .
HIVER 2016 | THE DOPPLER | 37