{"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\/it\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","title":{"rendered":"Infrastructure as code: una prima introduzione","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nella nostra azienda \u00e8 in corso il processo di onboarding del team SRE. Sono entrato in tutta questa storia dal lato dello sviluppo. Durante il percorso ho avuto idee e intuizioni che voglio condividere con altri sviluppatori. In questo articolo di riflessione parlo di ci\u00f2 che sta accadendo, come avviene e come tutti noi possiamo viverci in futuro. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: una prima introduzione\" 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>Continuazione della serie di articoli ispirati agli interventi del nostro evento interno <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. Il gatto di Schr\u00f6dinger senza scatola: il problema del consenso nei sistemi distribuiti.<\/a><\/noindex><br \/>\n2. Infrastructure as code. (Sei qui)<br \/>\n3. \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f Typescript \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442\u043e\u0432 \u043f\u043e c# \u043c\u043e\u0434\u0435\u043b\u044f\u043c. (In progress&#8230;)<br \/>\n4. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 Raft. (In progress&#8230;)<br \/>\n&#8230;<\/p><\/blockquote>\n<p>\nAbbiamo deciso di creare un team SRE, realizzando le idee di <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>. Abbiamo selezionato programmatori tra i nostri sviluppatori e li abbiamo inviati a formazione per diversi mesi. <\/p>\n<p>Il team aveva le seguenti sfide formative:<\/p>\n<ul>\n<li>Descrivere la nostra infrastruttura, che per la maggior parte si trova in Microsoft Azure, sotto forma di codice (Terraform e tutto ci\u00f2 che ne riguarda). <\/li>\n<li>Insegnare ai programmatori come lavorare con l'infrastruttura. <\/li>\n<li>Preparare i programmatori per i turni di guardia.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Introduciamo il concetto di Infrastructure as code<\/h2>\n<p>\nNel modello tradizionale del mondo (amministrazione classica), la conoscenza dell'infrastruttura risiede in due posti:<\/p>\n<ol>\n<li>O sotto forma di conoscenza nelle menti degli esperti.<img decoding=\"async\" alt=\"Infrastructure as code: una prima introduzione\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>O queste informazioni si trovano su alcune macchine, parte delle quali sono conosciute dagli esperti. Ma non c'\u00e8 garanzia che qualcuno esterno (nel caso in cui tutta la nostra squadra decidesse all'improvviso di non esistere pi\u00f9) possa capire cosa e come funziona. Su una macchina possono esserci molte informazioni: accessi, cron job, dischi montati (vedi <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) e semplicemente un elenco infinito di ci\u00f2 che pu\u00f2 accadere. \u00c8 difficile comprendere cosa stia realmente succedendo.<img decoding=\"async\" alt=\"Infrastructure as code: una prima introduzione\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nIn entrambi i casi ci troviamo intrappolati, diventando dipendenti da:<\/p>\n<ul>\n<li>o da una persona, che \u00e8 mortale, soggetta a malattie, innamoramenti, sbalzi d'umore e semplici licenziamenti;<\/li>\n<li>o da una macchina fisicamente operante, che pu\u00f2 anch'essa guastarsi, essere rubata, e presentare sorprese e inconvenienti. <\/li>\n<\/ul>\n<p>\nSorge naturalmente la soluzione che, idealmente, tutto deve essere trasformato in codice leggibile dagli esseri umani, mantenibile, scritto con qualit\u00e0. <\/p>\n<p>Pertanto, l'infrastruttura come codice (Infrastructure as Code - IaC) \u00e8 la descrizione di tutta l'infrastruttura esistente sotto forma di codice, insieme agli strumenti associati per lavorarci e per tradurla in infrastruttura reale.<\/p>\n<p><b class=\"spoiler_title\">Perch\u00e9 tradurre tutto in codice<\/b>Le persone non sono macchine. Non possono ricordare tutto. La reazione di un umano e di una macchina \u00e8 differente. Tutto ci\u00f2 che \u00e8 automatizzato funziona potenzialmente pi\u00f9 velocemente di tutto ci\u00f2 che fa una persona. La cosa pi\u00f9 importante \u00e8 avere un'unica fonte di verit\u00e0 (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">Da dove provengono i nuovi ingegneri SRE<\/b>Quindi, abbiamo deciso di coinvolgere nuovi ingegneri SRE, ma da dove trovarli? Il libro con le risposte corrette (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE Book<\/a><\/noindex>) ci dice: dai programmatori. Infatti, loro lavorano con il codice mentre voi raggiungete uno stato ideale.<\/p>\n<p>Abbiamo cercato a lungo e a fondo nel mercato del lavoro al di fuori della nostra azienda. Ma dobbiamo ammettere che non abbiamo trovato neanche uno che corrispondesse alle nostre richieste. Abbiamo dovuto dare un'occhiata tra i nostri. <\/p>\n<h2>Problemi dell'infrastruttura come codice<\/h2>\n<p>\nOra diamo un'occhiata a esempi su come l'infrastruttura pu\u00f2 essere incorporata nel codice. Il codice \u00e8 ben scritto, di qualit\u00e0, con commenti e rientri. <\/p>\n<p>Esempio di codice da Terraform.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: una prima introduzione\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEsempio di codice da Ansible.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: una prima introduzione\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSignori, ma se fosse tutto cos\u00ec semplice! Noi siamo nel mondo reale, e questo \u00e8 sempre pronto a sorprendervi con sorprese e problemi. Non mancano nemmeno qui.<\/p>\n<p><b>1. Il primo problema \u00e8 che, nella maggior parte dei casi, IaC \u00e8 un tipo di DSL.<\/b><\/p>\n<p>E un DSL, a sua volta, \u00e8 una descrizione della struttura. Pi\u00f9 precisamente, ci\u00f2 che dovrebbe esserci: Json, Yaml, modifiche da alcune grandi aziende che hanno creato il proprio DSL (in Terraform si usa HCL). <\/p>\n<p>Il problema \u00e8 che potrebbe facilmente mancare di quelle cose familiari come:<\/p>\n<ul>\n<li>variabili;<\/li>\n<li>condizioni;<\/li>\n<li>in alcuni casi mancano commenti, ad esempio in Json, non sono previsti per default;<\/li>\n<li>funzioni;<\/li>\n<li>e non parlo nemmeno di cose ad alto livello come classi, ereditariet\u00e0 e simili.<\/li>\n<\/ul>\n<p>\n <b>2. Il secondo problema di questo codice \u00e8 che, molto spesso, si tratta di un ambiente eterogeneo.<\/b>Di solito lavorate con C#, quindi con un linguaggio, uno stack, un ecosistema. Ma qui avete una vasta gamma di tecnologie. <\/p>\n<p>\u00c8 una situazione del tutto realistica quando un Bash con Python avvia un processo, nel quale viene iniettato un JSON. Lo analizzi, poi un altro generatore produce altri 30 file. Per tutto ci\u00f2, le variabili di input provengono da Azure Key Vault, estratte tramite un plugin per drone.io scritto in Go, e queste variabili vengono elaborate attraverso un YAML generato da un template jsonnet. \u00c8 abbastanza difficile avere un codice ben definito quando hai un ambiente cos\u00ec variegato. <\/p>\n<p>Nello sviluppo tradizionale, si lavora in un unico linguaggio per ogni compito. Qui, invece, ci occupiamo di un gran numero di linguaggi. <\/p>\n<p><b>3. Il terzo problema riguarda gli strumenti.<\/b>Siamo abituati a ottimi editor (Ms Visual Studio, Jetbrains Rider) che fanno quasi tutto per noi. E anche se commettiamo un errore, ci avviseranno che non abbiamo ragione. Sembra normale e naturale. <\/p>\n<p>Ma da qualche parte c'\u00e8 VSCode, che ha dei plugin che si installano e si supportano, oppure no. Sono uscite nuove versioni, e non sono state supportate. Un banale passaggio all'implementazione di una funzione (anche se esiste) diventa un problema complesso e non triviale. Un semplice rinominare una variabile significa effettuare un replace in un progetto di decine di file. Fortunatamente, se fa quello che deve riguardare il replace. Ci sono, ovviamente, alcuni posti con colorazione, ci sono delle completazioni automatiche, alcuni posti hanno il formattazione (anche se a me in Terraform su Windows non ha funzionato). <\/p>\n<p>Al momento della scrittura dell'articolo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">plugin vscode-terraform<\/a><\/noindex> non hanno ancora rilasciato il supporto per la versione 0.12, anche se \u00e8 stata rilasciata gi\u00e0 da 3 mesi.<\/p>\n<h2>\u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0431\u044b\u0442\u044c \u043e&#8230;<\/h2>\n<p><\/p>\n<ol>\n<li>Il debugging.<\/li>\n<li>Strumento di refactoring.<\/li>\n<li>Complettamento automatico.<\/li>\n<li>Rilevamento degli errori durante la compilazione.<\/li>\n<\/ol>\n<p>\n\u00c8 divertente, ma questo aumenta il tempo di sviluppo e aumenta il numero di errori che inevitabilmente si verificano. <\/p>\n<p>La cosa pi\u00f9 spaventosa \u00e8 che siamo costretti a pensare non a come progettare, organizzare file in cartelle, decomporre, rendere il codice mantenibile, leggibile e cos\u00ec via, ma a come scrivere correttamente questo comando, perch\u00e9 l'ho scritto in modo errato. <\/p>\n<p>Come principiante, stai cercando di comprendere Terraform, ma l'IDE non ti aiuta affatto. Quando c'\u00e8 documentazione, puoi andare a guardarla. Ma se stessi entrando in un nuovo linguaggio di programmazione, l'IDE ti indicherebbe che c'\u00e8 un certo tipo, mentre un altro non esiste. Almeno a livello di int o string. Questo \u00e8 spesso molto utile. <\/p>\n<h2>E per i test?<\/h2>\n<p>\nPotresti chiedere: \u00abE per i test, signori programmatori?\u00bb I professionisti seri testano tutto in produzione, e questo \u00e8 severo. Ecco un esempio di unit test per un modulo Terraform dal sito. <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/ru-ru\/azure\/terraform\/terratest-in-terraform-modules\">Microsoft<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: una prima introduzione\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHanno una buona documentazione. A Microsoft \u00e8 sempre piaciuto il loro approccio alla documentazione e all'istruzione. Ma non c'\u00e8 bisogno di essere zio Bob per capire che qui non c'\u00e8 un codice perfetto. Fai attenzione alla validazione, che \u00e8 spostata a destra. <\/p>\n<p>Il problema dell'unit test \u00e8 che possiamo verificare la correttezza del JSON in uscita. Ho passato 5 parametri e ho ottenuto un JSON di 2000 righe. Posso analizzare cosa sta succedendo qui, validare i risultati del test... <\/p>\n<p>\u00c8 difficile analizzare JSON in Go. Ma bisogna scrivere in Go, perch\u00e9 Terraform in Go \u00e8 una buona pratica per testare nel linguaggio in cui si scrive. L'organizzazione del codice \u00e8 molto debole. Tuttavia, \u00e8 la migliore libreria per i test. <\/p>\n<p>Anche Microsoft scrive i propri moduli testandoli in questo modo. Certo, \u00e8 Open Source. Tutto ci\u00f2 di cui parlo potete venire a ripararlo. Posso sedermi e sistemare tutto in una settimana, open source i plugin di VS Code, Terraform, creare un plugin per Rider. Potrei anche scrivere un paio di analizzatori, integrare i linter, contribuire a una libreria per i test. Posso fare tutto. Ma non \u00e8 questo su cui dovrei concentrarmi. <\/p>\n<h2>Le migliori pratiche Infrastructure as Code<\/h2>\n<p>\nAndiamo avanti. Se in IaC non ci sono test, si \u00e8 carenti in IDE e tooling, allora devono esserci almeno le migliori pratiche. Sono andato semplicemente a Google Analytics e ho fatto un confronto tra due query di ricerca: Terraform best practices e C# best practices. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: una prima introduzione\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCosa vediamo? Dati implacabili che non giocano a nostro favore. La quantit\u00e0 di materiale \u00e8 la stessa. Nello sviluppo C# siamo semplicemente sommersi da risorse, abbiamo le migliori pratiche, ci sono libri scritti da esperti e anche testi scritti da altri esperti che criticano quei libri. Un mare di documentazione ufficiale, articoli, corsi di formazione, e ora anche sviluppo open source.<\/p>\n<p>Per quanto riguarda la richiesta su IaC: qui stai cercando di raccogliere informazioni dai discorsi di HashiConf o da conferenze simili, dalla documentazione ufficiale e da numerosi issue su GitHub. Come distribuire questi moduli? Cosa farne? Sembra una vera problematica... C'\u00e8 una comunit\u00e0, signori, dove per ogni domanda ricevi 10 commenti su GitHub. Ma non \u00e8 garantito. <\/p>\n<p>Sfortunatamente, in questo momento gli esperti stanno appena iniziando a emergere. Sono ancora troppo pochi. E la comunit\u00e0 \u00e8 ancora a un livello embrionale. <\/p>\n<h2>Verso dove si sta muovendo tutto questo e cosa fare?<\/h2>\n<p>\nSi pu\u00f2 tutto abbandonare e tornare a C#, nel mondo di Rider. Ma no. Perch\u00e9 lo faresti mai se non per trovare una soluzione? Qui di seguito, le mie conclusioni soggettive. Puoi contestare nei commenti, sar\u00e0 interessante. <\/p>\n<p>Personalmente, punto su alcune cose:<\/p>\n<ol>\n<li>Lo sviluppo in questo settore avviene molto rapidamente. Ecco un grafico delle query su DevOps.\n<p><img decoding=\"async\" alt=\"Infrastructure as code: una prima introduzione\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPu\u00f2 sembrare un tema alla moda, ma il fatto stesso che il settore stia crescendo infonde una certa speranza. <\/p>\n<p>Se qualcosa cresce cos\u00ec rapidamente, arriveranno sicuramente persone intelligenti che diranno come fare e come non fare. L'aumento della popolarit\u00e0 porta a vedere che qualcuno avr\u00e0 finalmente il tempo di completare un plugin per jsonnet per vscode, che permetter\u00e0 di passare all'implementazione della funzione senza cercarla attraverso ctrl+shift+f. Quando tutto si sviluppa, ci sono pi\u00f9 materiali disponibili. Lo stesso rilascio del libro di Google su SRE \u00e8 un ottimo esempio.<\/li>\n<li>Esistono metodologie e pratiche consolidate nello sviluppo tradizionale che possiamo applicare con successo qui. Certo, ci sono alcune sfide legate al testing e all'ambiente eterogeneo, cos\u00ec come una carenza di strumenti, ma abbiamo accumulato un'enorme quantit\u00e0 di pratiche che possono rivelarsi utili.\n<p>Un esempio banale \u00e8 il lavoro collaborativo attraverso il pair programming. Questo metodo aiuta molto a comprendere meglio le problematiche. Quando hai vicino qualcuno che sta cercando di capire, insieme arriverete a delle soluzioni migliori.<\/p>\n<p> La comprensione del refactoring aiuta anche in queste situazioni a realizzarlo. Puoi scegliere di non cambiare tutto subito, ma prima di cambiare i nomi, poi riorganizzare, e infine isolare alcune parti; oh, e qui mancano dei commenti. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Conclusione<\/h2>\n<p>\nAnche se le mie riflessioni possono sembrare pessimistiche, guardo al futuro con speranza e spero sinceramente che noi (e voi) possiamo ottenere buoni risultati.<\/p>\n<blockquote><p>In seguito preparer\u00f2 la seconda parte dell'articolo. In essa parler\u00f2 di come abbiamo provato ad applicare le pratiche di sviluppo agile per migliorare il nostro processo di apprendimento e il lavoro con l'infrastruttura.<\/p><\/blockquote>\n<p>Fonte: <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 4.9.10 - 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. \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\" \/>\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\/it\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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. \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/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: primo incontro | ProHoster","description":"Nella nostra azienda \u00e8 in corso il processo di onboarding del team SRE. Sono entrato in questa storia dal lato dello sviluppo. Durante il percorso ho avuto pensieri e intuizioni che voglio condividere con altri sviluppatori. In questo articolo-riflessione parlo di ci\u00f2 che sta accadendo, di come sta accadendo e di come andare avanti con tutto questo. Continuazione di una serie di articoli scritti su","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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. \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","og:url":"https:\/\/prohoster.info\/it\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=37586"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/28211"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=37586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=37586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=37586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}