Comment gérer simplement des déploiements multi-Cloud
Utiliser plusieurs plateformes Cloud peut se révéler avantageux. De fait, aucune entreprise ne souhaite voir une infrastructure critique dépendre d'un seul fournisseur.
Dans les conversations sur les services Cloud, AWS est souvent cité comme leader. Mais, pour la plupart des entreprises, les fournisseurs n'est qu'une entrée en matière. En effet, elles sont de plus en plus nombreuses à adopter des stratégies multiclouds qui combinent des éléments de cloud public et de cloud privé. L’intérêt est de lutter contre un engagement captif avec un seul fournisseur, de diversifier les services disponibles, de peser sur les disparités de tarifs et/ou de garder le contrôle sur des informations confidentielles.
L'utilisation de plusieurs plateformes de Cloud computing paraît donc une bonne stratégie. Mais elle peut poser des problèmes de gestion des applications, de gestion des API et de gestion des configurations.
Gérer des applications et des configurations d'infrastructure sur différents Cloud qui ne partagent pas la même API et qui reposent sur des services et des modèles de facturation très différents peut être une tâche très complexe. Mais ce n'est pas vraiment un frein, car un certain nombre de logiciels matures et d'options SaaS permettent d'automatiser les déploiements sur différentes Cloud. Pourtant, tous les outils d'automatisation reposent sur le même cadre conceptuel : il s'agit de traiter les ressources Cloud comme des objets abstraits pouvant être configurés, exécutés et gérés comme du code. Voilà qui empiète sur les méthodes et les modèles d'organisation DevOps.
Les impératifs du multicloud
Vous pensez que l'utilisation de plusieurs plateformes de Cloud computing est réservée aux startups ou aux multinationales nées dans le Cloud et en hyper croissance ? Détrompez-vous !
Selon une étude de RightScale, 58 % des entreprises interrogées utilisent une combinaison de Clouds publics et privés. En outre, 14 % d'entre elles déploient une stratégie mêlant plusieurs Clouds publics, quand 55 % s'orientent vers un environnement hybride public/privé. D'après Forrester, 52 % des grandes entreprises utilisent déjà plusieurs fournisseurs de Cloud public, et un tiers utilisent au moins trois plateformes de Cloud computing
Les impératifs du multicloud sont assez simples. Aucune entreprise ne souhaite voir une infrastructure critique dépendre d'un seul fournisseur, aussi important et fiable soit-il. Effectivement, sans une architecture appropriée incluant plusieurs zones de disponibilité, les risques de pannes sont réels comme ont pu le constater Amazon, AirB2B, Tinder, Reddit et d'autres lors de la panne qui a frappé la Virginie du Nord pendant plusieurs heures.
Et pourtant, comme le fait remarquer Forrester, l'hétérogénéité des Clouds est source d'inquiétude chez les professionnels de l’IT. Les modèles de clouds hybrides multifournisseurs exigent une gestion rigoureuse des différentes plateformes afin de proposer une expérience homogène aux développeurs et aux utilisateurs des applications.
Des interfaces de gestion et des interfaces de contrôle disparates sont une réelle source de frustration. Et, en effet, un quart des personnes interrogées par RightScale trouvent que la gestion de plusieurs plateformes Cloud « relève du défi ».
Si l'on approfondit un peu, les données de Forrester révèlent les principales difficultés que pose une gestion multicloud :
- homogénéité des services entre les fournisseurs ;
- migration des workloads entre les Clouds ;
- gestion consolidée sur plusieurs Clouds ;
- support de plusieurs portails utilisateur Cloud.
Mais dans tous ces cas, un logiciel de déploiement indépendant du Cloud peut résoudre le problème.
Options indépendantes de gestion multicloud
Il existe plusieurs dizaines de logiciels et de produits SaaS conçus pour automatiser la gestion des infrastructures et la gestion des applications sur plusieurs Clouds.
Certains sont axés sur des besoins ou des scénarios d'utilisation spécifiques. Cloudyn, par exemple, est conçu pour la gestion des actifs et des coûts. Il inclut un optimisateur de workload pour identifier l'option de déploiement ayant le meilleur rapport coût-performance pour une charge de travail donnée.
Quant à CSC, qui utilise l'ancien produit ServiceMesh, il met l'accent sur la gouvernance du Cloud, la sécurité et la gestion du cycle de vie.
D'autres, comme Cliqr ou ElasticBox (Century Link) adoptent une approche d’automatisation du Cloud orientée application.
Les produits multiclouds les plus réputés sont généralement ceux utilisés par les entreprises qui adoptent une approche DevOps dans le Cloud, une tactique qui étend la programmation d'applications au domaine de la configuration et de la gestion des infrastructures. Le langage de programmation est effectivement un élément différenciateur important des outils.
RightScale fait généralement partie des produits retenus pour l'automatisation du Cloud. Mais, d'après leur propre enquête, les outils DevOps d'infrastructure les plus utilisés sont Chef, Puppet, Ansible et SaltStack.
- Chef, qui file la métaphore culinaire, transforme la configuration, le déploiement et la gestion des infrastructures en un ensemble de recettes qui peuvent être interprétées par tous les systèmes utilisant le client Chef. En coulisses, tout n'est pas si simple côté serveur, bien sûr, mais Chef peut gérer tous les éléments du déploiement des applications Cloud et peut être exécuté directement dans le Cloud (autrement dit, le serveur Chef, les stations de travail des développeurs, les noeuds système et le moteur analytique peuvent tous être exécutés comme des instances IaaS). Chef prend en charge les principaux services Cloud dont AWS, Azure, Google, VMware (vCloud Air) et IBM Softlayer, ainsi que SmartCloud Orchestrator et Rackspace/OpenStack.
- Puppet, qui est considéré comme l'ancêtre des logiciels d'orchestration, est à la fois mature et largement pris en charge. Puppet utilise un langage basé sur les classes, inspiré par le format de fichier de configuration Nagios, proche de JSON. Bien que doté d'une interface utilisateur Web, il demande un passage par la programmation et l'utilisation de CLI pour les configurations évoluées. Un nouvel outil, Puppet Razor, permet la découverte et l'inventaire automatiques de l'infrastructure et la sélection dynamique d'une image système privilégiée pour le provisioning du système nu.
- Ansible est une plateforme open source sans agent, dont la version commerciale a été rachetée par Red Hat. Elle fonctionne intégralement par le biais de connexions shell sécurisées. Ses « playbooks » de configuration, basés sur YAML, sont utilisés pour la configuration, le déploiement et l'orchestration des systèmes.
- SaltStack est une plateforme assez récente, axée sur la vitesse et l'évolutivité. Elle est proposée à la fois en tant que code open source et édition entreprise. Salt utilise le langage YAML pour décrire les états système, mais la plateforme inclut un ensemble complexe de composants qui impose une courbe d'apprentissage assez raide, surtout pour les novices des plateformes d'automatisation.
Recommandations
Toutes les grandes plateformes d'automatisation décrites ici fonctionnent à la fois sur une infrastructure privée et sur les grands Clouds publics. Mais leurs caractéristiques d'intégration présentent de grandes différences.
Le choix du produit doit être dicté par le niveau d'évolution et la portée de votre infrastructure et par l'expertise de l'équipe IT/DevOps.
Les produits SaaS intégrés, comme RightScale ou Scalr sont les plus simples à déployer et à utiliser, car tous présentent une interface Web complète et proposent des modèles et des intégrations prédéveloppés pour les principaux services Cloud.
Reste que leur connexion à l'infrastructure interne peut être plus compliquée. Puppet est le plus mature des outils à usage généraliste, ce qui le rend largement favori dans les grandes entreprises. Mais Ansil, avec sa conception sans agent et sa syntaxe YAML simple, est sans doute l'outil le plus simple à mettre en œuvre et à maîtriser.