Automatisation du cloud
Appliqué au cloud, le terme d'automatisation (en anglais « cloud automation ») recouvre les processus et outils utilisés par l'entreprise pour réduire les tâches manuelles liées au provisioning et à la gestion des charges de travail du cloud computing. Les équipes informatiques peuvent mettre en œuvre l'automatisation dans des environnements de cloud privé, public et hybride.
Par le passé, le déploiement et l'exploitation de charges de travail en entreprise était un processus manuel fastidieux. Il impliquait souvent des tâches répétitives : dimensionnement, provisioning et configuration de ressources telles que des machines virtuelles (VM, Virtual Machines), mise en place de clusters de VM et équilibrage de charge, création d'unités logiques (LUN, Logical Unit Numbers) de stockage, élaboration de réseaux virtuels, mise en œuvre du déploiement, puis surveillance et gestion de la disponibilité et des performances.
Bien qu'efficaces pris individuellement, ces processus manuels et répétitifs s'avèrent globalement improductifs et comportent souvent des erreurs. Ces erreurs peuvent nécessiter un dépannage, ce qui retarde la disponibilité de la charge de travail. Elles risquent également de révéler des failles de sécurité qui présentent un risque pour l'entreprise.
L'automatisation du cloud permet d'éliminer ces processus manuels et répétitifs pour le déploiement et la gestion de la charge de travail. Pour mettre en place cette automatisation, l'équipe informatique doit utiliser des outils d'orchestration et d'automatisation qui s'exécutent sur leur environnement virtualisé. L'orchestration permet à un administrateur de codifier les diverses étapes et les processus qu'impliquent le déploiement et la gestion de la charge de travail, tandis que l'automatisation applique ces étapes sans aucune intervention humaine.
Correctement mise en œuvre, l'automatisation du cloud fait gagner du temps et de l'argent à l'équipe informatique. Elle contribue également à réduire le risque d'erreurs, car les entreprises peuvent élaborer des workflows plus prévisibles et plus fiables, ce qui se traduit directement par une amélioration de la gouvernance au niveau du service informatique et de l'entreprise.
Usages spécifiques de l'automatisation du cloud
Si les outils ou infrastructures d'automatisation du cloud ont tous le même objectif global, les cas d'utilisation sont très variables, en fonction de l'entreprise et de ses objectifs.
L'un des scénarios d'utilisation les plus courants pour l'automatisation du cloud est la mise en œuvre de l'infrastructure sous forme de code (IAC, Infrastructure As Code). Les plateformes cloud découvrent et organisent généralement les ressources de calcul sous forme de pools. Cela permet aux utilisateurs d'ajouter et de déployer plus de ressources sans se préoccuper de leur emplacement physique dans le datacenter.
Les processus et outils d'automatisation du cloud peuvent puiser dans ces pools de ressources pour définir des éléments de configuration courants, tels que les VM, les conteneurs, les LUNs de stockage et les réseaux privés virtuels. Ensuite, ils peuvent charger des composants et services d'application, tels que des équilibreurs de charge, sur ces éléments de configuration, ou bien créer des instances en utilisant des modèles ou en clonant des VM ou des conteneurs. Enfin, tous ces éléments sont assemblés afin de construire un environnement d'exploitation plus complet pour le déploiement d'une charge de travail.
Par exemple, un modèle d'automatisation du cloud peut créer un certain nombre de conteneurs pour une application de microservices, charger les composants logiciels dans les clusters de conteneurs, connecter le stockage et une base de données, configurer un réseau virtuel, créer des équilibreurs de charge pour les clusters, puis mettre la charge de travail à la disposition des utilisateurs.
Outre le déploiement, l'automatisation du cloud joue un rôle dans la gestion de la charge de travail. Ainsi, il est possible de configurer un outil de gestion des performances des applications (APM, Application Performance Management) pour surveiller la charge de travail déployée et ses performances. Puis, des alertes peuvent déclencher des tâches de dimensionnement, par exemple ajouter des conteneurs à un cluster à charge équilibrée afin d'améliorer les performances, ou supprimer des conteneurs en trop pour alléger la consommation de ressources.
L'automatisation du cloud est un élément essentiel de la gestion du cycle de vie de la charge de travail. Dans le cloud, les charges de travail sont rarement prévues pour le long terme, et un administrateur peut avoir recours à l'automatisation pour les supprimer, avec leurs éléments de configuration, dès qu'elles ne sont plus nécessaires.
L'automatisation du cloud peut également jouer un rôle dans les clouds hybrides en automatisant les tâches dans un environnement de cloud privé basé sur des infrastructures de type OpenStack, et en favorisant l'intégration avec des clouds publics, tels qu'Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform (GCP).
L'automatisation du cloud est également vitale pour les développeurs d'applications débordés de travail. Les méthodes de développement Agile, telles que la livraison continue (CD, Continuous Delivery), l'intégration continue (CI, Continuous Integration) et DevOps, reposent toutes sur la rapidité de déploiement et d'évolution des ressources, dans le cadre des tests de nouvelles versions des logiciels. Une fois les tests terminés, ces ressources peuvent être publiées en vue d'une réutilisation. Les clouds publics gèrent particulièrement bien cette démarche, et les outils d'automatisation du cloud permettent de transférer ces fonctionnalités aux clouds privés.
Enfin, l'automatisation du cloud permet d'assurer le contrôle des versions des workflows, les entreprises étant ainsi en mesure d'aligner des configurations cohérentes susceptibles de satisfaire à des audits ou à des contrôles réglementaires. L'entreprise peut voir exactement quelles ressources sont en cours d'utilisation, identifier quels utilisateurs ou services les exploitent, prédire leur utilisation future et assurer une qualité de niveau de service qui serait impossible à garantir avec des processus manuels.
Exemples d'outils d'automatisation du cloud
Il n'existe pas d'outil, de plateforme ou d'infrastructure unique pour l'automatisation du cloud. Une multitude d'offres différentes sont disponibles, allant des outils sur site pour clouds privés aux services hébergés par des fournisseurs de clouds publics.
Parmi les outils les plus courants figurent Puppet Enterprise de Puppet Labs, Chef Automate de Chef, la plateforme Automic de CA Technologies et la plateforme Pure-Play Application Orchestration de Cloudify.
Les services d'automatisation proposés par des fournisseurs de clouds publics comprennent Microsoft Azure Automation et la fonctionnalité Automation d'Elastic Compute Cloud Systems Manager d'AWS.