{"id":37586,"date":"2019-10-31T22:18:27","date_gmt":"2019-10-31T19:18:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/infrastructure-as-code-pervoe-znakomstvo\/"},"modified":"2019-10-31T22:18:27","modified_gmt":"2019-10-31T19:18:27","slug":"infrastructure-as-code-pervoe-znakomstvo","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","title":{"rendered":"Infrastructure as code : premi\u00e8re rencontre","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dans notre entreprise, nous sommes en train d'int\u00e9grer l'\u00e9quipe SRE. J'ai abord\u00e9 toute cette histoire du point de vue du d\u00e9veloppement. Au cours du processus, j'ai eu des r\u00e9flexions et des id\u00e9es que je souhaite partager avec d'autres d\u00e9veloppeurs. Dans cet article de r\u00e9flexion, je parle de ce qui se passe, comment cela se passe et comment tout le monde peut vivre avec cela par la suite. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code : premi\u00e8re rencontre\" src=\"\/wp-content\/uploads\/2019\/08\/d154a2fbbd0dd846c763db178f02702e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Suite de la s\u00e9rie d'articles inspir\u00e9s des pr\u00e9sentations lors de notre \u00e9v\u00e9nement interne. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/462033\/\">DevForum<\/a><\/noindex><\/b>: <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/463469\/\">1. Le Chat de Schr\u00f6dinger sans bo\u00eete : le probl\u00e8me du consensus dans les syst\u00e8mes distribu\u00e9s.<\/a><\/noindex><br \/>\n2. Infrastructure as code. (Vous \u00eates ici)<br \/>\n3. G\u00e9n\u00e9ration de contrats Typescript \u00e0 partir de mod\u00e8les C#. (En cours de r\u00e9alisation...)<br \/>\n4. Introduction \u00e0 l'algorithme de consensus Raft. (En cours de r\u00e9alisation...)<br \/>\n\u2026<\/p><\/blockquote>\n<p>\nNous avons d\u00e9cid\u00e9 de cr\u00e9er une \u00e9quipe SRE, en mettant en \u0153uvre des id\u00e9es de <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>. Nous avons recrut\u00e9 des programmeurs parmi nos propres d\u00e9veloppeurs et les avons envoy\u00e9s se former pendant plusieurs mois. <\/p>\n<p>L'\u00e9quipe avait les objectifs d'apprentissage suivants :<\/p>\n<ul>\n<li>D\u00e9crire notre infrastructure, qui se trouve principalement dans Microsoft Azure, sous forme de code (Terraform et tout ce qui s'y rapporte). <\/li>\n<li>Former les d\u00e9veloppeurs \u00e0 travailler avec l'infrastructure. <\/li>\n<li>Pr\u00e9parer les d\u00e9veloppeurs aux astreintes.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Nous introduisons le concept d'Infrastructure as code.<\/h2>\n<p>\nDans un mod\u00e8le traditionnel (administration classique), les connaissances sur l'infrastructure se trouvent \u00e0 deux endroits :<\/p>\n<ol>\n<li>Soit sous forme de connaissances dans l'esprit des experts.<img decoding=\"async\" alt=\"Infrastructure as code : premi\u00e8re rencontre\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>Soit ces informations se trouvent sur certaines machines, dont une partie est connue des experts. Mais il n'est pas s\u00fbr qu'une personne ext\u00e9rieure (si toute notre \u00e9quipe venait \u00e0 dispara\u00eetre subitement) puisse comprendre comment cela fonctionne. Sur la machine, il peut y avoir beaucoup d'informations : acc\u00e8s, cron jobs, montage de disque (voir <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) et simplement une liste infinie de ce qui peut se passer. Il est difficile de comprendre ce qui se passe r\u00e9ellement.<img decoding=\"async\" alt=\"Infrastructure as code : premi\u00e8re rencontre\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nDans les deux cas, nous nous retrouvons pi\u00e9g\u00e9s, devenant d\u00e9pendants :<\/p>\n<ul>\n<li>soit d'une personne, qui est mortelle, sujette \u00e0 des maladies, des amours, des variations d'humeur et simplement \u00e0 des licenciements banals ;<\/li>\n<li>soit d'une machine fonctionnelle, qui peut aussi tomber en panne, \u00eatre vol\u00e9e, renvoyer des surprises et des d\u00e9sagr\u00e9ments. <\/li>\n<\/ul>\n<p>\nIl s'impose donc de trouver une solution, \u00e0 savoir qu'id\u00e9alement, tout doit \u00eatre traduit en code lisible par l'homme, maintenable et de qualit\u00e9. <\/p>\n<p>Ainsi, l'infrastructure en tant que code (Infrastructure as Code \u2013 IaC) est la description de toute l'infrastructure existante sous forme de code, ainsi que les outils associ\u00e9s pour travailler avec elle et en d\u00e9ployer la v\u00e9ritable infrastructure.<\/p>\n<p><b class=\"spoiler_title\">Pourquoi tout traduire en code<\/b>Les humains ne sont pas des machines. Ils ne peuvent pas tout m\u00e9moriser. La r\u00e9action d'un humain et celle d'une machine sont diff\u00e9rentes. Tout ce qui est automatis\u00e9 fonctionne potentiellement plus rapidement que tout ce que fait un humain. La chose la plus importante est une source unique de v\u00e9rit\u00e9 (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">D'o\u00f9 viennent les nouveaux ing\u00e9nieurs SRE<\/b>Donc, nous avons d\u00e9cid\u00e9 d'int\u00e9grer de nouveaux ing\u00e9nieurs SRE, mais d'o\u00f9 les obtenir ? Le livre avec les bonnes r\u00e9ponses (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE Book<\/a><\/noindex>) nous dit : des d\u00e9veloppeurs. Apr\u00e8s tout, ils travaillent avec du code, et vous atteignez l'\u00e9tat id\u00e9al.<\/p>\n<p>Nous avons beaucoup et longtemps cherch\u00e9 sur le march\u00e9 du travail en dehors de notre entreprise. Mais nous devons admettre que nous n'avons trouv\u00e9 personne qui corresponde \u00e0 nos demandes. Nous avons d\u00fb fouiller parmi nos propres employ\u00e9s. <\/p>\n<h2>Probl\u00e8mes de l'infrastructure en tant que code<\/h2>\n<p>\nRegardons maintenant des exemples de la fa\u00e7on dont l'infrastructure peut \u00eatre int\u00e9gr\u00e9e dans le code. Le code est bien \u00e9crit, de qualit\u00e9, avec des commentaires et une bonne indentation. <\/p>\n<p>Exemple de code \u00e0 partir de Terraform.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code : premi\u00e8re rencontre\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nExemple de code \u00e0 partir d'Ansible.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code : premi\u00e8re rencontre\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMessieurs, mais si tout \u00e9tait si simple ! Nous sommes dans le monde r\u00e9el, et il est toujours pr\u00eat \u00e0 vous surprendre, \u00e0 vous pr\u00e9senter des d\u00e9fis et des probl\u00e8mes. Il y en a aussi ici.<\/p>\n<p><b>1. Le premier probl\u00e8me est que, dans la plupart des cas, IaC est un certain dsl.<\/b><\/p>\n<p>Un DSL, \u00e0 son tour, est une description de la structure. Plus pr\u00e9cis\u00e9ment, ce que vous devez avoir : Json, Yaml, des modifications provenant de certaines grandes entreprises qui ont cr\u00e9\u00e9 leur propre dsl (Terraform utilise HCL). <\/p>\n<p>Le probl\u00e8me est qu'il peut facilement ne pas contenir des choses qui nous semblent famili\u00e8res telles que :<\/p>\n<ul>\n<li>variables ;<\/li>\n<li>conditions ;<\/li>\n<li>quelque part, il n'y a pas de commentaires, par exemple, en Json, ils ne sont pas pr\u00e9vus par d\u00e9faut ;<\/li>\n<li>fonctions ;<\/li>\n<li>et je ne parle m\u00eame pas de choses de haut niveau comme les classes, l'h\u00e9ritage et tout \u00e7a.<\/li>\n<\/ul>\n<p>\n <b>2. Le deuxi\u00e8me probl\u00e8me de ce code \u2013 la plupart du temps, c'est un environnement h\u00e9t\u00e9rog\u00e8ne<\/b>. En g\u00e9n\u00e9ral, vous \u00eates assis et travaillez avec C#, c'est-\u00e0-dire avec un seul langage, une seule pile, un seul \u00e9cosyst\u00e8me. Et l\u00e0, vous avez une \u00e9norme diversit\u00e9 de technologies. <\/p>\n<p>Une situation tout \u00e0 fait r\u00e9elle est qu'un bash avec Python lance un processus dans lequel on ins\u00e8re du JSON. Vous l'analysez, puis un autre g\u00e9n\u00e9rateur produit encore 30 fichiers. Pour tout cela, il y a des variables d'entr\u00e9e provenant d'Azure Key Vault, qui sont extraites par un plugin pour drone.io, \u00e9crit en Go, et ces variables passent par un YAML, g\u00e9n\u00e9r\u00e9 \u00e0 partir du moteur de templating jsonnet. Il est assez complexe d'avoir un code strictement bien d\u00e9crit lorsque vous avez un environnement aussi vari\u00e9. <\/p>\n<p>Le d\u00e9veloppement traditionnel dans le cadre d'une seule t\u00e2che se fait dans un seul langage. Ici, nous travaillons avec de nombreux langages. <\/p>\n<p><b>3. Le troisi\u00e8me probl\u00e8me est l'outillage<\/b>. Nous sommes habitu\u00e9s \u00e0 des \u00e9diteurs puissants (Ms Visual Studio, Jetbrains Rider), qui font tout pour nous. Et m\u00eame si nous faisons une erreur, ils nous disent que nous avons tort. On a l'impression que c'est normal et naturel. <\/p>\n<p>Mais il y a \u00e0 c\u00f4t\u00e9 VSCode, qui a certains plugins, qui sont install\u00e9s, soutenus ou non. De nouvelles versions sortent et ne sont pas prises en charge. Un simple passage \u00e0 l'impl\u00e9mentation d'une fonction (m\u00eame si elle existe) devient un probl\u00e8me complexe et non trivial. Un simple renommage de variable se transforme en un remplacement dans un projet de plusieurs fichiers. On a de la chance si cela remplace ce qui doit l'\u00eatre. Bien s\u00fbr, il y a un certain \u00e9clairage, une autocompl\u00e9tion, o\u00f9 il y a du formatage (mais chez moi, \u00e7a n'a pas fonctionn\u00e9 dans Terraform sous Windows). <\/p>\n<p>Au moment de la r\u00e9daction de cet article <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">plugin vscode-terraform<\/a><\/noindex> n'a pas encore \u00e9t\u00e9 publi\u00e9 pour prendre en charge la version 0.12, bien qu'elle soit sortie depuis 3 mois.<\/p>\n<h2>Il est temps d'oublier...<\/h2>\n<p><\/p>\n<ol>\n<li>le d\u00e9bogage.<\/li>\n<li>l'outil de refactorisation.<\/li>\n<li>l'autocompl\u00e9tion.<\/li>\n<li>la d\u00e9tection des erreurs lors de la compilation.<\/li>\n<\/ol>\n<p>\nC'est dr\u00f4le, mais cela augmente le temps de d\u00e9veloppement et le nombre d'erreurs qui se produisent in\u00e9vitablement. <\/p>\n<p>Le plus terrifiant, c'est que nous sommes forc\u00e9s de ne pas penser \u00e0 comment concevoir, organiser les fichiers dans les dossiers, d\u00e9composer, rendre le code maintenable, lisible, etc., mais \u00e0 comment \u00e9crire correctement cette commande, parce que je l'ai \u00e9crite d'une mani\u00e8re incorrecte. <\/p>\n<p>En tant que d\u00e9butant, vous essayez de comprendre Terraform, mais l'IDE ne vous aide pas du tout. Quand il y a de la documentation \u2013 vous y acc\u00e9dez, vous regardez. Mais si vous d\u00e9couvriez un nouveau langage de programmation, l'IDE vous dirait qu'il y a ce type et qu'il n'y en a pas d'autre. Au moins, au niveau d'int ou string. Cela peut souvent \u00eatre utile. <\/p>\n<h2>Et qu'en est-il des tests ?<\/h2>\n<p>\nVous allez demander : \u00ab Qu'en est-il des tests, mesdames et messieurs les programmeurs ? \u00bb Les d\u00e9veloppeurs s\u00e9rieux testent tout en production, et c'est rigoureux. Voici un exemple de test unitaire pour un module Terraform provenant du site. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/azure\/terraform\/terratest-in-terraform-modules\">par Microsoft<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code : premi\u00e8re rencontre\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIls ont une bonne documentation. J'ai toujours aim\u00e9 l'approche de Microsoft en mati\u00e8re de documentation et d'apprentissage. Mais il n'est pas n\u00e9cessaire d'\u00eatre Uncle Bob pour comprendre qu'il n'y a pas de code parfait ici. Faites attention \u00e0 la validation d\u00e9port\u00e9e \u00e0 droite. <\/p>\n<p>Le probl\u00e8me du test unitaire, c'est que nous pouvons v\u00e9rifier la pertinence du JSON en sortie. J'ai envoy\u00e9 5 param\u00e8tres, j'ai re\u00e7u une longue cha\u00eene de JSON de 2000 lignes. Je peux analyser ce qui se passe ici, valider le r\u00e9sultat du test\u2026 <\/p>\n<p>Il est difficile d'analyser JSON en Go. Pourtant, il faut \u00e9crire en Go, car Terraform en Go est une bonne pratique : tester dans le m\u00eame langage que celui que vous utilisez. L'organisation du code est tr\u00e8s faible. N\u00e9anmoins, c'est la meilleure biblioth\u00e8que pour les tests. <\/p>\n<p>Microsoft lui-m\u00eame \u00e9crit ses modules en les testant de cette mani\u00e8re. Bien s\u00fbr, c'est open source. Tout ce dont je parle, vous pouvez venir et le r\u00e9parer. Je peux m'asseoir et tout corriger en une semaine, rendre open source les plugins de VS Code, Terraform, cr\u00e9er un plugin pour Rider. Peut-\u00eatre \u00e9crire quelques analyseurs, ajouter des linters, contribuer \u00e0 une biblioth\u00e8que de tests. Je peux faire tout cela. Mais ce n'est pas mon travail. <\/p>\n<h2>Meilleures pratiques de l'Infrastructure as Code.<\/h2>\n<p>\nContinuons. S'il n'y a pas de tests dans l'IaC, si l'IDE et les outils sont insuffisants, alors il doit y avoir au moins de bonnes pratiques. Je suis simplement all\u00e9 sur Google Analytics et j'ai compar\u00e9 deux requ\u00eates de recherche : Terraform best practices et c# best practices. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code : premi\u00e8re rencontre\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQue voyons-nous ? Des statistiques implacables qui ne jouent pas en notre faveur. En termes de quantit\u00e9 de mat\u00e9riel, c'est la m\u00eame chose. Dans le d\u00e9veloppement C#, nous sommes submerg\u00e9s de mat\u00e9riaux, nous avons des pratiques supr\u00eames, des livres \u00e9crits par des experts, et aussi des livres critiques d'autres experts sur ces livres. Une mer de documentation officielle, d'articles, de cours d'apprentissage, et maintenant m\u00eame le d\u00e9veloppement open source.<\/p>\n<p>Concernant la requ\u00eate sur l'IaC : ici, vous essayez de rassembler des informations \u00e0 partir de morceaux de pr\u00e9sentations de Highload ou de HashiConf, de la documentation officielle, et de nombreux issues sur GitHub. Comment d\u00e9ployer ces modules, que faire avec ? Cela semble \u00eatre un v\u00e9ritable probl\u00e8me\u2026 Il y a une communaut\u00e9, mesdames et messieurs, o\u00f9 pour chaque question, vous recevrez dix commentaires sur GitHub. Mais ce n'est pas s\u00fbr. <\/p>\n<p>Malheureusement, les experts ne commencent \u00e0 appara\u00eetre que maintenant. Ils sont encore trop peu nombreux. Et la communaut\u00e9 en est encore \u00e0 ses d\u00e9buts. <\/p>\n<h2>O\u00f9 tout cela nous m\u00e8ne-t-il et que faire ?<\/h2>\n<p>\nOn peut tout laisser tomber et revenir \u00e0 C#, dans le monde de Rider. Mais non. Pourquoi se lancer dans cette aventure si ce n'est pas pour trouver une solution ? Voici mes conclusions subjectives. Vous pouvez d\u00e9battre avec moi dans les commentaires, \u00e7a sera int\u00e9ressant. <\/p>\n<p>Personnellement, je parie sur plusieurs \u00e9l\u00e9ments :<\/p>\n<ol>\n<li>Le d\u00e9veloppement dans ce domaine avance tr\u00e8s rapidement. Voici un graphique des requ\u00eates li\u00e9es \u00e0 DevOps.\n<p><img decoding=\"async\" alt=\"Infrastructure as code : premi\u00e8re rencontre\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCela peut sembler \u00eatre un sujet \u00e0 la mode, mais le simple fait que le domaine croisse apporte un certain espoir. <\/p>\n<p>Si quelque chose cro\u00eet aussi rapidement, des personnes intelligentes finiront par dire comment faire, et comment ne pas faire. L'augmentation de la popularit\u00e9 signifie que certains auront peut-\u00eatre enfin le temps d'\u00e9crire un plugin pour jsonnet pour vscode, permettant d'acc\u00e9der \u00e0 l'impl\u00e9mentation d'une fonction sans avoir \u00e0 la chercher avec ctrl+shift+f. Lorsque tout \u00e9volue, plus de ressources apparaissent. La sortie du livre de Google sur SRE en est un excellent exemple.<\/li>\n<li>Il existe des m\u00e9thodes et des pratiques en d\u00e9veloppement traditionnel que nous pouvons appliquer avec succ\u00e8s ici. Oui, il y a des nuances avec les tests et un environnement h\u00e9t\u00e9rog\u00e8ne, des outils insuffisants, mais un grand nombre de pratiques a \u00e9t\u00e9 accumul\u00e9 qui peuvent \u00eatre utiles.\n<p>Un exemple banal : le travail collaboratif par pair programming. Cela aide \u00e9norm\u00e9ment \u00e0 comprendre. Lorsque vous avez un voisin qui essaie \u00e9galement de comprendre, ensemble vous saisissez mieux.<\/p>\n<p> Comprendre comment s'effectue le refactoring aide m\u00eame dans cette situation. Cela signifie que vous pouvez changer des \u00e9l\u00e9ments progressivement, d'abord le nom, puis la mise en page, et peut-\u00eatre isoler une partie, ah, et ici il manque des commentaires. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Conclusion<\/h2>\n<p>\nBien que mes r\u00e9flexions puissent sembler pessimistes, j'ai un regard optimiste vers l'avenir et j'esp\u00e8re sinc\u00e8rement que nous r\u00e9ussirons (vous et nous).<\/p>\n<blockquote><p>La seconde partie de l'article est en pr\u00e9paration. Je parlerai de la mani\u00e8re dont nous avons essay\u00e9 d'appliquer des pratiques de d\u00e9veloppement agile pour am\u00e9liorer notre processus d'apprentissage et notre travail avec l'infrastructure.<\/p><\/blockquote>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dodopizzaio\/blog\/465137\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435-\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0438 \u044f \u0433\u043e\u0432\u043e\u0440\u044e \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u0438 \u043a\u0430\u043a \u0432\u0441\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u044d\u0442\u0438\u043c \u0436\u0438\u0442\u044c. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28211,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37586","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Infrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:18:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Infrastructure as code : premi\u00e8re introduction | ProHoster","description":"Dans notre entreprise, nous proc\u00e9dons \u00e0 l'int\u00e9gration de l'\u00e9quipe SRE. J'ai abord\u00e9 cette aventure depuis le c\u00f4t\u00e9 d\u00e9veloppement. En cours de route, j'ai eu des r\u00e9flexions et des id\u00e9es que je souhaite partager avec d'autres d\u00e9veloppeurs.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Infrastructure as code: \u043f\u0435\u0440\u0432\u043e\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e | ProHoster","og:description":"\u0423 \u043d\u0430\u0441 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0438\u0434\u0451\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u043d\u0431\u043e\u0440\u0434\u0438\u043d\u0433\u0430 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u042f \u0437\u0430\u0448\u0451\u043b \u0432\u043e \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043c\u044b\u0441\u043b\u0438 \u0438 \u0438\u043d\u0441\u0430\u0439\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:18:27+00:00","article:modified_time":"2019-10-31T19:18:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37586","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:29:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:24:24","updated":"2026-01-23 18:29:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=37586"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/37586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/28211"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=37586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=37586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=37586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}