Le rôle de l’infrastructure as code dans l’edge computing
Comme les datacenters se trouvent de plus en plus en périphérie de réseau, les pôles IT doivent supporter les surcharges associées à la gestion des serveurs distants. Selon des experts du secteur, l’IaC doit simplifier cette administration.
La présence de serveurs en périphérie de réseau n’a rien de nouveau. Les responsables informatiques savent très bien que même s’ils veulent centraliser l’informatique au maximum pour gagner en efficacité et réduire les coûts d’administration, il leur faut aussi placer les systèmes, les services et les données au plus près de l’endroit où ils sont demandés.
Un réseau de diffusion de contenu (CDN, Content Delivery Network) s’appuie sur un réseau de serveurs pour mettre les données en cache directement là où elles sont consommées afin d’en accélérer l’accès. En 2020, James Staten, vice-président et analyste principal de Forrester, écrit dans son blog que les CDN permettent de coupler les applications déployées sur les points terminaux avec l’analyse de contenu desdits points terminaux. « Au lieu de permettre aux clients de rapprocher leurs applications et leurs données au plus près des consommateurs, ces technologies edge collectent les données des dispositifs IoT (Internet des Objets) et des appareils mobiles des utilisateurs », poursuit James Staten.
Conceptuellement, le CDN pourrait s’apparenter à une technologie Edge Computing dans la mesure où il rapproche les données disponibles de leur lieu de consommation. En effet, le réseau de serveurs qui constitue un CDN permet de distribuer les données au plus près de la périphérie.
L’edge computing et les data centers en périphérie ne font que prolonger ce concept. Les données sont non seulement consommées en périphérie, mais d’énormes volumes d’informations peuvent également y être traités. Cela évite de surcharger la bande passante d’un réseau avec d’immenses quantités de données (collecte d’analyses vidéo diffusées depuis les caméras de vidéosurveillance en réseau, par exemple).
Les dispositifs et l’infrastructure IT installés en périphérie de réseau donnent une nouvelle dimension à l’IoT, en offrant la possibilité de décentraliser l’exécution de systèmes d’entreprise sophistiqués.
En parallèle, en matière d’architecture logicielle, les fournisseurs ont imposé le concept d’informatique « serverless » pour décrire une abstraction de mise à disposition des ressources (calcul, stockage et mise en réseau) indispensables à l’exécution des workloads dans le cloud.
Cette « absence » de serveur permet au développeur de ne pas se préoccuper des serveurs physiques, que ceux-ci se trouvent dans un cloud public, un cloud privé s’exécutant sur un datacenter sur site, ou en périphérie du réseau de l’entreprise.
Pour autant, la sphère opérationnelle de l’informatique explose littéralement, à mesure que les workloads se déplacent en périphérie de réseau et que le traitement, plus poussé que jamais, des données intervient en dehors d’un environnement traditionnel de data centers. Alors que les administrateurs IT pilotaient des systèmes centralisés, ils doivent gérer un parc diversifié et fortement distribué de serveurs et d’appareils edge.
En réalité, tout comme les serveurs en périphérie sont déployés depuis des années, cette situation n’est pas nouvelle. Dans la mesure où le département IT d’une filiale et les salles de serveurs distants ne disposent généralement pas d’autant de ressources sur site (d’administrateurs IT notamment) que le service IT central, il faut depuis toujours les gérer le plus efficacement possible.
Gérer l’informatique d’entreprise en périphérie
À la faveur des évolutions permises par le cloud, un nouveau paradigme de l’administration IT s’impose. Aujourd’hui, il est de plus en plus question de contrôler la configuration des systèmes informatiques à la manière dont les développeurs gèrent leur code source.
« À mesure que la notion d’infrastructure IT s’est progressivement dissociée des machines physiques, la gestion et le provisionnement de cette infrastructure sont peu à peu devenus des services logiciels dans le cloud », constate Scott McAllister, developer advocate chez PagerDuty. « Ces services reposent sur des interfaces utilisateur robustes. Ils doivent faciliter la configuration manuelle. Toutefois, la gestion à grande échelle de ces configurations devient fastidieuse et finit par fragiliser les systèmes ».
Jadis saluée comme l’avenir de la gestion d’infrastructure, l’Infrastructure As Code (IaC) est devenue la meilleure pratique par défaut. Elle consiste à automatiser la mise à disposition et la gestion des ressources de calcul à l’aide de modèles lisibles par les machines. Selon Chris Astley, associé et responsable de l’ingénierie chez KPMG UK, dans un environnement cloud, l’IaC constitue un choix évident en matière d’automatisation et s’immisce petit à petit au sein des datacenters privés.
« Avant l’IaC, les ingénieurs système avaient la lourde tâche de mettre à disposition et de configurer manuellement leur ressource de calcul », explique-t-il. « Les fournisseurs de cloud, en particulier, mettant à jour les fonctionnalités et les capacités au quotidien, il s’agissait alors d’un véritable travail de titan. Avec l’IaC, les ingénieurs peuvent désormais assurer un meilleur contrôle des versions, et déployer et améliorer l’infrastructure cloud de l’entreprise plus rapidement, à moindre coût et plus efficacement qu’auparavant. »
Outre le fait que l’IaC facilite la tâche des équipes DevOps (mise à disposition automatique de l’infrastructure plus rapide et plus cohérente), Piyush Sharma, vice-président chargé de la sécurité dans le cloud chez Tenable, estime que son plus fort atout réside dans sa capacité à transformer les processus visant au développement, au déploiement et à l’exploitation d’une infrastructure immuable. « Que les équipes de développement et DevOps en aient ou non conscience, les outils et les approches qu’elles adoptent pour relever les défis d’ingénierie ont une incidence sur l’ensemble des activités », remarque-t-il.
En clair, si le développeur déploie un conteneur ou un microservice, il y a bien des ressources de calcul physiques en compte.
Les liens entre l’infrastructure as code et le modèle DIE
De nombreuses informations sur la valeur de l’infrastructure as code (IaC) proviennent du point de vue de l’expert en sécurité Sounil Yu et de son approche du modèle de sécurité distribué, immuable et éphémère (DIE), explique Daniel Riedel, vice-président senior des services stratégiques chez Copado.
Le modèle DIE est un corollaire de la triade de sécurité confidentialité, intégrité, disponibilité (CIA) et se concentre sur le travail avec des systèmes en constante évolution et croissance. Daniel Riedel avance trois raisons principales pour lesquelles l’IaC convient bien au modèle DIE :
Distribué : IaC est conçu pour construire des systèmes distribués. Par sa nature même, il est configuré pour être exécuté sur des systèmes décentralisés.
Immuable : L’environnement éphémère doit être fixe et immuable, ce qui rend très difficile toute modification, ajoute des capacités de sécurité supplémentaires, tout en créant des enregistrements vérifiables.
Éphémère : IaC permet le déploiement rapide de conteneurs, ou d’interfaces fonctionnelles éphémères (telles que AWS Lambda ou Copado Functions). Il prend en charge une seule question ou un seul événement. Puis il est éliminé et remplacé.
Bien que le modèle DIE existe depuis plusieurs années, Daniel Riedel affirme que de nombreuses organisations sont encore en train d’élaborer leurs approches pour la gestion de leur infrastructure. « Les systèmes à états existeront toujours, mais leur nature éphémère nous permet de les protéger et de les utiliser dans un environnement sécurisé, tout en offrant une certaine flexibilité en termes d’échelle et de coûts de calcul », explique-t-il.
« L’IaC préserve l’immuabilité de l’infrastructure d’exécution dans la mesure où chaque composant de l’architecture est construit selon une configuration exacte. Cela empêche l’infrastructure de s’écarter des configurations voulues et évite tout risque de dérive », vante Piyush Sharma.
Alors que les processus de mise à disposition ont toujours exigé de longs délais d’attente et des efforts manuels, l’IaC permet aux équipes de provisionner l’infrastructure nécessaire en quelques minutes, par simple pression sur une touche », poursuit-il.
Il convient de nuancer les propos de Piyush Sharma. Cette immuabilité n’est pas totale, surtout dans un environnement qui s’étend du cloud à la périphérie, tout comme les dérives de configuration ne disparaissent pas avec l’IaC. Mais les avantages de cette approche seraient tels que ces défauts seraient aisément surmontables.
« Pour modifier, dimensionner ou dupliquer l’environnement, il suffit de modifier le code source et de procéder à une nouvelle mise à disposition », affirme-t-il.
Pour le vice-président chez Tenable, rien de mieux que l’IaC pour moderniser les procédures d’exploitation manuelles, éliminer les silos organisationnels et offrir une réelle valeur ajoutée. Il souligne aussi qu’il convient d’automatiser le dimensionnement des applications et de développer les écosystèmes autour d’approches telles qu’Atlantis, Kubernetes et GitOps. « Les tâches opérationnelles se réduisent à la validation du code qui déclenche les processus automatiques chargés de rapprocher la configuration d’exécution avec les modifications validées », précise-t-il.
Sécuriser la périphérie
Les entreprises ont bien saisi l’intérêt de l’IaC pour déployer leurs ressources IT. Ce qu’elles ont moins bien compris, c’est son rôle potentiel dans la sécurité. Chris Astley de KPMG incite les entreprises à intégrer l’IaC dans leur stratégie de cybersécurité le plus vite possible, car elle contribue à anticiper les cyberattaques et à y faire face. D’après une étude de Harvey Nash, près de la moitié des responsables numériques (43 %) estiment manquer de talents en cybersécurité.
Chris AstleyAssocié et responsable de l’ingénierie, KPMG UK
« L’IaC permettant d’automatiser quelques tâches de sécurité, elle peut ainsi alléger la charge de travail des équipes de cybersécurité et leur permettre de se consacrer à des questions plus stratégiques », déclare Chris Astley.
Les ingénieurs devaient auparavant provisionner et configurer leur cloud manuellement et, d’après son expérience, Chris Astley considère les scripts d’entrée de l’IaC comme une source unique de vérité. Puis il confie que « l’élimination d’erreurs humaines potentielles dues à la modification de l’infrastructure est sûrement l’impact le plus positif. Le risque d’apparition d’une nouvelle vulnérabilité potentiellement exploitable par des acteurs malveillants serait considérablement réduit. Il est aussi possible de consulter toutes les erreurs de configuration de code en un même lieu, d’où une gestion et une résolution plus rapides. »
Chris Astley ajoute que l’automatisation permise par l’IaC donne aux équipes informatiques le moyen de déployer instantanément les mises à jour publiées par les fournisseurs de cloud. « Quand de nouvelles versions ou des correctifs d’outils cloud sont disponibles, le délai de mise à jour est minimal, ce qui amoindrit le risque d’exposition », précise-t-il.
Chris Astley insiste sur le principal avantage de l’IaC : lorsque la mise en œuvre s’effectue dans les règles de l’art, vous disposez d’une documentation 100 % précise et actualisée de l’environnement de production proprement dit. « Les équipes chargées de l’infosécurité disposent ainsi d’un outil inestimable pour évaluer les menaces », explique-t-il. En fait, les évaluations des menaces peuvent s’exécuter automatiquement en fonction du code.
Chris Astley pense également que l’IaC permet aux équipes de mieux comprendre les vulnérabilités les plus fréquentes et d’y réagir en toute connaissance de cause pour remédier au plus vite aux faiblesses décelées lors des audits d’évaluation des menaces.
Selon lui, l’IaC joue un rôle essentiel en cas de reprise d’activité après un cyberincident, notamment en cas d’attaques courantes comme les ransomwares. « Avec l’IaC, les besoins en ressources sont déjà codifiés, ce qui permet de réagir rapidement à un incident et de lancer la procédure de reprise après sinistre », confirme-t-il.
« Si une attaque se produit, l’IaC permet aux équipes informatiques de procéder à une reprise après sinistre en générant à l’identique un nouvel environnement à partir des scripts IaC et des sauvegardes antérieures. Pouvoir revenir à un état de travail connu en quelques minutes, rien de tel pour une reprise rapide d’activité ».
Utiliser un langage commun
John Davis, distinguished Engineer chez Kyndryl, est persuadé que l’approche DevSecOps a encouragé les développeurs à se familiariser davantage avec l’infrastructure, et les équipes opérationnelles à mieux s’aligner sur les pratiques de développement logiciel. Il souligne que l’IaC peut jouer le rôle d’un langage commun permettant aux deux pôles de communiquer, collaborer et co-créer.
Pour assurer la réussite de l’adoption de l’IaC, John Davis invite les leaders IT à tenir plus largement compte des systèmes lors du processus de génération. « Les entreprises ont généralement plusieurs systèmes à mettre à jour en raison de nouveaux environnements », constate-t-il. « Tout le monde peut mettre rapidement à disposition un serveur dans le cloud, mais pour en garantir la production, la sécurité et le cloisonnement à l’aide de flux de réseau appropriés, une IaC bien définie est un facteur clé. »
John DavisDistinguished Engineer, Kyndryl
John Davis estime que pour tirer le meilleur parti de l’IaC, les responsables informatiques doivent étudier la façon d’intégrer les mises à jour automatiques de la configuration dans l’écosystème informatique au sens large. « Une fois l’IaC en place, vous devriez pouvoir vous passer des contrôles secondaires autrefois utilisés pour valider la réalisation du travail manuel », ajoute-t-il.
Pour John Davis, un environnement construit à l’aide de l’IaC, via un pipeline DevOps, garantit la précision de l’exécution et permet des audits qui rendent certains de ces contrôles inutiles.
Ces capacités sont essentielles au niveau du réseau de l’organisation, dans le contexte d’un centre de données périphérique, qu’il s’agisse de prendre en charge une salle de serveurs distante, l’acquisition de données alimentée par l’intelligence artificielle à partir de dispositifs edge, ou les systèmes d’entreprise des filiales.