Jump to section

Automation-as-Code : faire évoluer l'IaC (Infrastructure-as-Code) vers l'approche PaC (Policy-as-Code)

Copier l'URL

Les entreprises commencent à utiliser les pratiques de leur stratégie IaC (Infrastructure-as-Code ou infrastructure en tant que code) pour automatiser les processus informatiques à chaque étape du cycle d'exploitation. Avec l'IaC, les équipes informatiques ont standardisé la création, le provisionnement et le déploiement de l'infrastructure. Elles peuvent maintenant adopter l'approche OaC (Operations-as-Code ou exploitation en tant que code) pour codifier la gestion et la maintenance des systèmes après leur déploiement. Cette approche se prolonge avec l'approche PaC (Policy-as-Code ou politique en tant que code), qui permet d'automatiser les processus liés à la gouvernance, la sécurité et la conformité des applications et des solutions.

Les équipes chargées des applications et de l'infrastructure cherchent sans cesse à accélérer la distribution et à améliorer l'efficacité grâce à l'automatisation. Cependant, la plupart d'entre elles gèrent encore très souvent manuellement les opérations de maintenance et la gouvernance. Bien que ces processus soient parfaitement automatisables, les équipes nécessitent d'être formées au préalable à l'utilisation de nouveaux outils et de nouvelles méthodes. Les approches OaC et PaC simplifient ce changement de culture en prolongeant la stratégie IaC existante : les connaissances acquises et les outils maîtrisés peuvent servir à effectuer d'autres tâches.

Les entreprises peuvent s'appuyer sur les méthodes de de l'IaC pour adopter les approches OaC et PaC, qui leur permettent de codifier les meilleures pratiques et d'automatiser les tâches courantes de chaque processus d'exploitation. Elles se rapprochent ainsi de l'automatisation de bout en bout. Ces approches de type Automation-as-Code, ou automatisation en tant que code, garantissent la cohérence et l'évolutivité des processus exécutés, tout en diminuant le nombre d'interventions manuelles. Les équipes n'ont plus qu'à gérer la création et le bon fonctionnement des applications, de l'infrastructure et des charges de travail, avec l'assurance d'une conformité totale.

Les opérations manuelles de création et de gestion de l'infrastructure informatique (serveurs, instances cloud, systèmes d'exploitation, stockage, équilibreurs de charge et autres points de terminaison) ont toujours pris beaucoup de temps. Avec la conteneurisation de l'infrastructure et son déploiement dans divers environnements (datacenters, multicloud ou encore périphérie du réseau), une partie des composants est désormais déployée sous forme de code, notamment dans le cloud.

Lorsqu'elle est déployée sous forme de code, l'infrastructure peut être mise en place plus rapidement pour répondre à l'augmentation rapide de la demande et des besoins en évolutivité. Pour gérer une telle infrastructure, les entreprises doivent toutefois se montrer plus réactives et s'adapter à un plus haut niveau de complexité, ce qui implique souvent de provisionner, déployer et retirer des composants quotidiennement. Pour suivre ce rythme, les équipes informatiques ont donc adopté l'IaC afin d'automatiser ces processus.

Adopter l'IaC 

Dans le cadre d'une approche IaC, l'infrastructure est définie, provisionnée et gérée à l'aide de code qui s'exécute automatiquement. L'IaC implique la création de fichiers de configuration qui contiennent les caractéristiques de l'infrastructure, ce qui facilite les modifications et la distribution de l'infrastructure et des instances cloud correctement configurées. Parce qu'avec l'IaC ces caractéristiques sont codifiées et documentées, les équipes peuvent éviter les changements ponctuels qui ne seront pas consignés, et toujours provisionner le même environnement.

L'adoption de l'approche IaC pour automatiser l'infrastructure supprime le besoin de provisionner et gérer manuellement les composants de l'infrastructure lors du développement ou du déploiement d'une application. Cette possibilité représente un gain de temps et de cohérence considérable, sans compter que le risque d'erreur humaine et de temps d'arrêt diminue aussi significativement. Cette approche permet par ailleurs aux entreprises d'intégrer les meilleures pratiques au code des processus automatisés. Chaque tâche peut ainsi s'appuyer sur les compétences techniques que partagent les équipes.

Lire le guide sur l'automatisation des workflows de l'infrastructure


Prolonger la stratégie IaC

L'adoption de l'IaC a posé des difficultés dans la plupart des entreprises, car le développement de nouveaux outils et la mise en œuvre de nouvelles méthodes de travail ont pris du temps. Les équipes ont cependant pu bénéficier de davantage de flexibilité et d'agilité dans leur façon de gérer les priorités et les problèmes. Aujourd'hui, de nombreux outils d'automatisation facilitent l'adoption de l'IaC et permettent aux équipes de profiter de tous ses avantages.

Avec les méthodes et outils conçus pour l'IaC, les équipes commencent à appliquer l'approche Automation-as-Code tout au long du cycle d'exploitation, au-delà du provisionnement, de la configuration et du déploiement des applications. Ce cycle peut être défini de multiples façons, mais on le divise généralement en trois étapes :

  • Conception : spécification de la création, de la configuration et du provisionnement de l'infrastructure. 
  • Déploiement : installation, paramétrage et configuration de l'infrastructure.
  • Maintenance : gestion, maintenance et mise à jour des systèmes liés à l'infrastructure déployée.

Aux étapes de conception et de déploiement, l'IaC permet de créer et provisionner l'infrastructure de manière cohérente. L'approche OaC prend le relais pour l'étape de maintenance, jusqu'au déprovisionnement de l'application ou du service.

Généralement, les tâches de maintenance (surveillance des systèmes, installation de mises à niveau, résolution des problèmes, etc.) sont effectuées manuellement. Bien que les équipes informatiques puissent être immédiatement informées de la panne d'un serveur ou d'une application par un ticket d'alerte, une enquête doit ensuite être réalisée pour en déterminer la cause. Un membre de l'équipe doit se connecter au matériel physique et identifier l'origine du problème, en faisant appel aux spécialistes informatiques concernés pour le résoudre. Ce processus met du temps à donner des résultats, surtout s'il doit être appliqué à l'échelle de l'exploitation de l'entreprise.

Les opérations de maintenance se sont autant complexifiées que les tâches de conception et de déploiement de l'infrastructure, mais l'automatisation n'a pas été aussi largement déployée pour relever ces défis. De nombreuses entreprises ont adopté l'IaC pour automatiser les processus de conception et de déploiement. Elles peuvent désormais appliquer cette approche à d'autres tâches d'exploitation dans les environnements de datacenter, cloud et d'edge computing, pour limiter la multiplication des technologies et libérer des ressources.

Adopter l'OaC

L'approche OaC est une évolution naturelle de l'IaC. Elle repose sur le déploiement de l'automatisation pour codifier les connaissances et l'expérience qu'ont acquises les équipes chargées de l'infrastructure et de l'exploitation en résolvant divers problèmes. Ces connaissances deviennent alors une ressource commune à toutes les équipes.

L'approche OaC standardise, codifie et systématise les méthodes et les connaissances des équipes en matière de maintenance. Son adoption se fait en trois étapes :

  • Standardisation de l'exploitation autour d'un code base courant que toute l'entreprise pourra utiliser, afin d'en améliorer la cohérence
  • Codification des connaissances en matière d'exploitation et intégration des meilleures pratiques aux processus automatisés 
  • Systématisation des outils et processus distincts dans une approche intégrée de bout en bout

Après avoir été converties en code, les méthodes de maintenance peuvent être exécutées automatiquement tandis que les systèmes deviennent toujours plus complexes, intelligents et interdépendants.

Comme dans les autres cas d'utilisation de l'automatisation, l'OaC n'a pour objectif de remplacer les équipes humaines, mais de les décharger des tâches manuelles laborieuses afin qu'elles concentrent leurs efforts sur des projets novateurs. En réunissant les connaissances des équipes dans des approches communes, l'OaC favorise aussi la collaboration entre plusieurs modèles d'exploitation et structures d'équipes.

L'adoption des pratiques IaC et OaC dans le domaine de la gouvernance permet d'éliminer les processus complexes basés sur les requêtes, notamment pour l'application des politiques, c'est-à-dire les règles, conditions et instructions qui garantissent la conformité de l'exploitation avec les exigences, meilleures pratiques et directives de l'entreprise. 

Une fois que l'infrastructure et l'exploitation sont définies et gérées sous forme de code, les équipes chargées de la sécurité et de la conformité peuvent réutiliser ces stratégies pour appliquer des politiques à ce code et standardiser la gestion de la gouvernance. On parle alors de PaC (Policy-as-Code).

Parce que l'automatisation ne garantit pas la conformité et la gouvernance dès le départ, des politiques cohérentes doivent être appliquées pour s'assurer que les pratiques IaC et OaC sont correctement utilisées à chaque étape du cycle d'exploitation. Généralement, les méthodes de gouvernance courantes incluent :

  • la création de workflows dont les approbations compliquent la mise à disposition de solutions appropriées ;
  • la mise en œuvre d'autorisations de sécurité restrictives via le contrôle d'accès basé sur les rôles (RBAC) ou le contrôle d'accès basé sur les attributs (ABAC), pour contrôler les utilisateurs autorisés à modifier des technologies spécifiques de certaines manières, sous des conditions précises ou selon des caractéristiques particulières.

Ces approches manuelles prennent du temps et sont sujettes aux erreurs. L'objectif de la PaC consiste donc à les automatiser. Par exemple, des processus automatisés peuvent être configurés pour empêcher le personnel informatique de créer des instances cloud qui ne respectent pas les normes de l'entreprise, ou de produire du code qui pose des problèmes de conformité. Le RBAC et l'ABAC conservent leur utilité, mais la PaC permet de créer des processus automatisés beaucoup plus granulaires qui déterminent ce qu'il est possible de faire, et à quel moment.

Adopter la PaC

Les stratégies de la PaC sont similaires à celles de l'IaC et de l'OaC. Elles automatisent le processus de conformité en ajoutant les exigences relatives aux politiques et à la sécurité au code, pour ensuite intégrer les normes à chaque processus et appliquer les règles de manière cohérente entre les équipes. En utilisant du code pour définir, mettre à jour, partager et appliquer les politiques, la PaC centralise la gouvernance et permet d'effectuer toutes les tâches informatiques en respectant plus facilement ces politiques, d'une manière informée et cohérente.

Lorsque les politiques sont définies sous forme de code, il est plus simple de les appliquer à l'infrastructure lors du déploiement et à l'exploitation lors de l'exécution des tâches automatisées, pour imposer une approche standard quels que soient l'environnement et le moment d'exécution des processus automatisés. Par exemple, si un employé exécute un processus automatisé pour résoudre un problème sur un hôte spécifique, les politiques codées dans chaque action veillent à ce qu'il n'enfreigne pas les règles.

Avec la PaC, les environnements et ressources techniques répondent tous aux mêmes normes. Les équipes peuvent par exemple adopter cette approche pour s'assurer qu'il n'existe aucun contact direct entre les ressources de calcul sensibles et Internet qui serait contraire à la politique de sécurité, ou pour limiter les ports de leurs services aux protocoles HTTPS et SSH.

À mesure que l'intelligence artificielle (IA) accroît l'évolutivité de nombreux systèmes, les humains voient leurs capacités de réalisation et de contrôle décliner. Avec l'utilisation de services d'IA tels que Red Hat® Ansible® Lightspeed with IBM watsonx Code Assistant pour accélérer le développement des processus automatisés, les équipes peuvent rédiger des politiques sous forme de code et intégrer la gouvernance au modèle d'apprentissage, et ce, dès le départ. Par exemple, après avoir inclus les politiques dans le modèle d'apprentissage de l'outil d'IA, les créateurs de contenus peuvent produire du code qui respecte automatiquement les exigences de conformité.

L'automatisation de la gouvernance dans le cadre de la PaC garantit l'efficacité des transformations qui découlent de la gestion basée sur l'IA. Elle offre également le niveau de contrôle qui permet aux équipes informatiques de ne pas avoir à se soucier de la conformité des résultats.

Tout type de transformation qui implique l'automatisation en tant que code représente principalement un défi culturel. Fortes de l'expérience gagnée en automatisant l'IaC, les équipes informatiques peuvent utiliser les mêmes méthodes et outils pour gérer l'exploitation de manière plus efficace et adaptable tout au long du cycle de développement.

La mise en œuvre de pratiques DevOps a apporté son lot d'avantages et de difficultés, mais le nombre d'entreprises qui ont fait cet effort montre que même à si grande échelle, un changement culturel est possible. Si l'automatisation nécessite toujours un changement au niveau de l'exécution des tâches, l'adoption d'une stratégie unifiée d'automatisation en tant que code demande aux entreprises de transformer la collaboration en partageant les pratiques à toutes les étapes de l'exploitation. Ce changement repose sur l'IaC, l'OaC et la PaC.

Pour faciliter la transition culturelle vers des stratégies d'automatisation en tant que code, les équipes devraient appliquer les principes suivants :

  • Penser comme des développeurs de logiciels.Les équipes peuvent utiliser Git ou d'autres référentiels, et encourager l'ensemble de l'entreprise à appliquer des pratiques de développement et de déploiement modernes.
  • Prendre le réflexe de l'automatisation. Avant de créer quoi que ce soit, les équipes doivent chercher à automatiser leurs projets, en complexifiant progressivement leurs initiatives. 
  • Commencer avec les compétences et l'expérience des membres de l'équipe. Afin de compenser le manque de personnel, les connaissances de chaque membre de l'entreprise peuvent être intégrées aux processus automatisés, pour que toutes les équipes puissent en profiter.

La réussite de l'adoption de l'automatisation en tant que code dépend de la mise en œuvre de cette philosophie dans toutes les équipes, de celles qui conçoivent les systèmes à celles qui les gèrent. Il ne s'agit pas d'une simple tentative d'automatiser les tâches de quelques services, mais d'une stratégie et de règles communes à l'entreprise, auxquelles toutes les équipes peuvent contribuer.

En outre, pour que cette stratégie se concrétise, il faut laisser de côté les solutions ponctuelles qui ciblent seulement certaines équipes et certains cas d'utilisation. Les pratiques IaC et DevOps peuvent entraîner une forte complexité et une dette technique élevée si les entreprises utilisent plusieurs outils pour les appliquer. Avec une plateforme d'automatisation unifiée, les tâches d'exploitation de tous les domaines peuvent s'appuyer sur le même langage que les tâches liées à la configuration, au réseau, à l'infrastructure et au cloud. Les équipes informatiques peuvent ainsi gérer l'ensemble du cycle de vie de bout en bout.

La solution Red Hat Ansible Automation Platform offre tous les outils nécessaires à la mise en œuvre de l'automatisation à l'échelle de l'entreprise, notamment Event-Driven Ansible ainsi que des fonctions d'analyse et de sécurité renforcée. Elle donne également accès à un vaste écosystème de contenus certifiés et validés pour faciliter le lancement de nouvelles initiatives d'automatisation. Basée sur le langage YAML facile à lire, cette solution permet aux utilisateurs de partager, d'approuver et de gérer les contenus d'automatisation dans toute l'entreprise, quel que soit leur niveau de compétences. 

Avec Ansible Automation Platform, les entreprises peuvent codifier l'expérience des équipes chargées de l'exploitation, de l'infrastructure et des applications dans des playbooks Ansible et des rulebooks Ansible avec le langage YAML. Les playbooks et les rulebooks peuvent ensuite servir à intégrer des schémas de solutions connus à des approches d'automatisation en tant que code. L'outil Event-Driven Ansible se charge de déclencher ces processus automatisés lorsqu'un événement spécifique survient.

En créant des playbooks et des rulebooks qui reposent sur leurs compétences techniques, les équipes peuvent automatiser les réponses informatiques de manière à limiter les écarts de configuration, à éviter les problèmes de maintenance à long terme et à améliorer le temps moyen de résolution des problèmes. Grâce à sa conception modulaire, le composant Event-Driven Ansible permet d'automatiser les tâches informatiques dans tout type d'environnement et à tout moment, quels que soient le domaine, le cas d'utilisation ou l'étape du cycle d'exploitation.

En savoir plus sur Event-Driven Ansible


Le service Red Hat Ansible Lightspeed with IBM watsonx Code Assistant facilite la mise en œuvre d'approches d'automatisation en tant que code. Il aide à convertir les compétences techniques en code YAML fiable, utilisable dans plusieurs équipes et domaines. Les utilisateurs peuvent saisir une demande de tâche en langage naturel : Ansible Lightspeed se charge d'interagir avec les modèles de fondation IBM watsonx pour générer des recommandations de code qui sont ensuite utilisées pour créer des playbooks Ansible. Grâce à ce service, les membres des équipes peuvent gagner en productivité, en efficacité et en précision, quel que soit leur niveau d'expérience, pour une automatisation plus cohérente à l'échelle de l'entreprise.

Nous proposons des ateliers interactifs dans un environnement Ansible Automation Platform préconfiguré. Réalisez ces ateliers pour expérimenter, vous entraîner et apprendre à créer, gérer et mettre à l'échelle des pratiques informatiques de manière efficace. Vous apprendrez à développer et déployer des applications rapidement, à simplifier l'exploitation et les analyses ainsi qu'à proposer des expériences utilisateur cohérentes de bout en bout.

Lire la suite

Article

Apprendre les bases d'Ansible

Ansible permet d'automatiser les processus informatiques tels que le provisionnement et la gestion des configurations. Apprenez les bases d'Ansible en lisant cette présentation des concepts clés.

Article

La gestion des processus métier, qu'est-ce que c'est ?

La gestion des processus métier est une pratique de modélisation, d'analyse et d'optimisation des processus métier de bout en bout qui vous permet d'atteindre vos objectifs métier stratégiques.

Article

Red Hat, un partenaire de choix en matière d'automatisation

La solution Red Hat Ansible Automation Platform comprend tous les outils nécessaires au partage des processus d'automatisation entre les équipes et à la mise en œuvre de l'automatisation à l'échelle de l'entreprise.

En savoir plus sur l'automatisation

Produits

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Plateforme pour la mise en œuvre de l'automatisation à l'échelle de l'entreprise, quelle que soit votre situation.

Ressources

Formations

Cours gratuit

L'essentiel d'Ansible : automatiser en toute simplicité – Présentation technique

Cours gratuit

Red Hat Ansible Automation pour SAP