{"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\/es\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","title":{"rendered":"Infrastructure as code: primer encuentro","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>En nuestra empresa se est\u00e1 llevando a cabo el proceso de incorporaci\u00f3n del equipo SRE. Yo entr\u00e9 en toda esta historia desde el lado del desarrollo. Durante el proceso, surgieron pensamientos e ideas que quiero compartir con otros desarrolladores. En este art\u00edculo reflexivo, hablo sobre lo que est\u00e1 sucediendo, c\u00f3mo est\u00e1 sucediendo y c\u00f3mo todos pueden seguir con esto. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: primer encuentro\" 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>Continuaci\u00f3n de la serie de art\u00edculos escritos a partir de las presentaciones en nuestro 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. El gato de Schr\u00f6dinger sin caja: el problema del consenso en sistemas distribuidos.<\/a><\/noindex><br \/>\n2. Infrastructure as code. (Est\u00e1s aqu\u00ed)<br \/>\n3. Generaci\u00f3n de contratos Typescript a partir de modelos C#. (En progreso\u2026)<br \/>\n4. Introducci\u00f3n al algoritmo de consenso Raft. (En progreso\u2026)<br \/>\n\u2026<\/p><\/blockquote>\n<p>\nDecidimos formar un equipo SRE, implementando las ideas de <noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">google sre<\/a><\/noindex>. Contratamos a programadores de nuestros propios desarrolladores y los enviamos a capacitaciones durante varios meses. <\/p>\n<p>El equipo enfrent\u00f3 las siguientes tareas de capacitaci\u00f3n:<\/p>\n<ul>\n<li>Describir nuestra infraestructura, que en su mayor\u00eda se encuentra en Microsoft Azure, en forma de c\u00f3digo (Terraform y todo lo relacionado). <\/li>\n<li>Ense\u00f1ar a los desarrolladores a trabajar con la infraestructura. <\/li>\n<li>Preparar a los desarrolladores para turnos de guardia.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Introducimos el concepto de Infrastructure as code.<\/h2>\n<p>\nEn el modelo habitual (administraci\u00f3n cl\u00e1sica), el conocimiento sobre la infraestructura se encuentra en dos lugares:<\/p>\n<ol>\n<li>O bien en la mente de los expertos.<img decoding=\"async\" alt=\"Infrastructure as code: primer encuentro\" src=\"\/wp-content\/uploads\/2019\/08\/2400dea0a90c24b05c275b709bbd2057.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<li>O bien, esta informaci\u00f3n se encuentra en algunas m\u00e1quinas, de las cuales solo una parte son conocidas por los expertos. Pero no es seguro que una persona externa (en caso de que nuestro equipo entero muera repentinamente) pueda entender qu\u00e9 y c\u00f3mo funciona. En la m\u00e1quina puede haber mucha informaci\u00f3n: accesos, trabajos programados, un disco montado (ver <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Mount_(computing)\">disk mounting<\/a><\/noindex>) y simplemente una lista interminable de lo que puede estar sucediendo. Es dif\u00edcil entender qu\u00e9 est\u00e1 sucediendo realmente.<img decoding=\"async\" alt=\"Infrastructure as code: primer encuentro\" src=\"\/wp-content\/uploads\/2019\/08\/37bafea85a641c48683c35975f67f24d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/li>\n<\/ol>\n<p>\nEn ambos casos, nos encontramos atrapados, volvi\u00e9ndonos dependientes:<\/p>\n<ul>\n<li>ya sea de una persona, que es mortal, susceptible a enfermedades, enamoramientos, cambios de humor y, simplemente, despidos;<\/li>\n<li>o de una m\u00e1quina f\u00edsica que tambi\u00e9n puede fallar, ser robada, presentar sorpresas y generar inconvenientes. <\/li>\n<\/ul>\n<p>\nPor supuesto, surge la soluci\u00f3n de que, idealmente, todo debe ser trasladado a un c\u00f3digo legible, mantenible y bien escrito. <\/p>\n<p>La infraestructura como c\u00f3digo (Infrastructure as Code \u2013 IaC) es la descripci\u00f3n de toda la infraestructura disponible en forma de c\u00f3digo, as\u00ed como las herramientas asociadas para trabajar con ella y materializarla en infraestructura real.<\/p>\n<p><b class=\"spoiler_title\">\u00bfPor qu\u00e9 traducir todo a c\u00f3digo?<\/b>Las personas no son m\u00e1quinas. No pueden recordar todo. La reacci\u00f3n de un ser humano y una m\u00e1quina es diferente. Todo lo que est\u00e1 automatizado tiene el potencial de funcionar m\u00e1s r\u00e1pido que cualquier cosa que haga un humano. Lo m\u00e1s importante es tener una \u00fanica fuente de verdad (single source of truth). <\/p>\n<p><b class=\"spoiler_title\">\u00bfDe d\u00f3nde provienen los nuevos ingenieros SRE?<\/b>As\u00ed que decidimos incorporar nuevos ingenieros SRE, \u00bfpero de d\u00f3nde los conseguimos? El libro con las respuestas correctas (<noindex><a rel=\"nofollow\" href=\"https:\/\/landing.google.com\/sre\/books\/\">Google SRE Book<\/a><\/noindex>) nos dice: de los desarrolladores. Ellos ya trabajan con c\u00f3digo, y t\u00fa logras alcanzar el estado ideal.<\/p>\n<p>Buscamos intensamente y durante mucho tiempo en el mercado laboral fuera de nuestra empresa. Pero hemos de reconocer que no encontramos a nadie que cumpliera con nuestros requisitos. Tuvimos que buscar entre nuestros propios empleados. <\/p>\n<h2>Problemas de la infraestructura como c\u00f3digo<\/h2>\n<p>\nAhora veamos ejemplos de c\u00f3mo la infraestructura puede estar incorporada en el c\u00f3digo. El c\u00f3digo est\u00e1 bien escrito, de calidad, con comentarios y sangr\u00edas. <\/p>\n<p>Ejemplo de c\u00f3digo de Terraform.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: primer encuentro\" src=\"\/wp-content\/uploads\/2019\/08\/1a0bbca47e88fb12e97c0f270efba177.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEjemplo de c\u00f3digo de Ansible.<\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: primer encuentro\" src=\"\/wp-content\/uploads\/2019\/08\/358fad8f5944bca1b97b2d6e37b2ee5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSe\u00f1ores, pero si todo fuera as\u00ed de simple. Estamos en el mundo real, y siempre est\u00e1 listo para sorprenderte, presentarte sorpresas y problemas. No se puede evitar eso aqu\u00ed.<\/p>\n<p><b>1. El primer problema es que en la mayor\u00eda de los casos, IaC es alg\u00fan tipo de DSL.<\/b><\/p>\n<p>Y un DSL, por su parte, es una descripci\u00f3n de la estructura. M\u00e1s precisamente, de lo que debes tener: Json, Yaml, modificaciones de algunas grandes empresas que han creado su propio DSL (en Terraform se utiliza HCL). <\/p>\n<p>El problema es que puede f\u00e1cilmente no incluir cosas tan familiares como:<\/p>\n<ul>\n<li>variables;<\/li>\n<li>condiciones;<\/li>\n<li>a veces faltan comentarios, por ejemplo, en Json no est\u00e1n previstos por defecto;<\/li>\n<li>funciones;<\/li>\n<li>y ni siquiera he mencionado cosas de alto nivel como clases, herencia y todo eso.<\/li>\n<\/ul>\n<p>\n <b>2. El segundo problema de este c\u00f3digo es que a menudo se trata de un entorno heterog\u00e9neo.<\/b>Por lo general, trabajas con C#, es decir, con un solo lenguaje, un solo stack, un solo ecosistema. Y aqu\u00ed tienes una gran diversidad de tecnolog\u00edas. <\/p>\n<p>Es una situaci\u00f3n bastante real cuando un bash con Python ejecuta un proceso en el que se inyecta un JSON. Lo analizas, luego otro generador produce 30 archivos m\u00e1s. Para todo esto, se reciben variables de entrada desde Azure Key Vault, que son extra\u00eddas por un plugin de drone.io, escrito en Go, y estas variables pasan por un YAML, el cual fue generado a partir de un template de jsonnet. Es bastante complicado tener un c\u00f3digo estrictamente bien descrito cuando tienes un entorno tan diverso. <\/p>\n<p>El desarrollo tradicional para una \u00fanica tarea se realiza con un solo idioma. Aqu\u00ed, sin embargo, trabajamos con muchos idiomas. <\/p>\n<p><b>3. El tercer problema es la herramienta<\/b>. Estamos acostumbrados a editores excelentes (Ms Visual Studio, Jetbrains Rider) que hacen todo por nosotros. Y incluso si cometemos un error, ellos nos lo dir\u00e1n. Parece que esto es normal y natural. <\/p>\n<p>Pero est\u00e1 ah\u00ed VSCode, que tiene algunos plugins que se instalan, son mantenidos o no. Salen nuevas versiones y no son soportadas. Una transici\u00f3n banal a la implementaci\u00f3n de una funci\u00f3n (incluso si existe) se convierte en un problema complicado y no trivial. Un simple cambio de nombre de una variable implica un reemplazo en el proyecto de una decena de archivos. Tendr\u00e1s suerte si reemplaza lo que se necesita. Por supuesto, hay iluminaci\u00f3n en alg\u00fan lugar, hay autocompletado, y en algunos casos hay formateo (aunque en mi Terraform en Windows no funciona). <\/p>\n<p>En el momento de escribir este art\u00edculo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/mauve\/vscode-terraform\">plugin vscode-terraform<\/a><\/noindex> no han lanzado a\u00fan para soportar la versi\u00f3n 0.12, aunque ya se ha publicado hace 3 meses.<\/p>\n<h2>Ha llegado el momento de olvidar\u2026<\/h2>\n<p><\/p>\n<ol>\n<li>La depuraci\u00f3n.<\/li>\n<li>Herramienta de refactorizaci\u00f3n.<\/li>\n<li>Autocompletado.<\/li>\n<li>Detecci\u00f3n de errores en la compilaci\u00f3n.<\/li>\n<\/ol>\n<p>\nEs gracioso, pero esto aumenta el tiempo de desarrollo y tambi\u00e9n incrementa la cantidad de errores que inevitablemente ocurren. <\/p>\n<p>Lo m\u00e1s aterrador es que estamos obligados a pensar no en c\u00f3mo dise\u00f1ar, organizar los archivos en carpetas, descomponer, hacer el c\u00f3digo mantenible, legible, etc., sino en c\u00f3mo escribir correctamente este comando, porque lo escrib\u00ed de manera incorrecta. <\/p>\n<p>Como novato, intentas comprender Terraform, y el IDE no te ayuda en absoluto. Cuando hay documentaci\u00f3n, entras y miras. Pero si estuvieras aprendiendo un nuevo lenguaje de programaci\u00f3n, el IDE te sugerir\u00eda que hay un tipo as\u00ed, y que otro no. Al menos, a nivel de int o string. Esto puede ser muy \u00fatil. <\/p>\n<h2>\u00bfY qu\u00e9 pasa con las pruebas?<\/h2>\n<p>\nUsted puede preguntar: \"\u00bfC\u00f3mo est\u00e1n las pruebas, se\u00f1ores programadores?\" Los tipos serios lo prueban todo en producci\u00f3n, y es contundente. Aqu\u00ed hay un ejemplo de una prueba unitaria para un m\u00f3dulo de Terraform desde el sitio. <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: primer encuentro\" src=\"\/wp-content\/uploads\/2019\/08\/b9391409941e14f7e3cf6f8d964a2668.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTienen buena documentaci\u00f3n. A Microsoft siempre le he apreciado su enfoque hacia la documentaci\u00f3n y la ense\u00f1anza. Pero no hay que ser t\u00edo Bob para darse cuenta de que aqu\u00ed no hay c\u00f3digo perfecto. F\u00edjese en la validaci\u00f3n, que se ha llevado a la derecha. <\/p>\n<p>El problema de la prueba unitaria es que nosotros podemos verificar la correcci\u00f3n del Json en la salida. Introduje 5 par\u00e1metros y obtuve un mont\u00f3n de Json de 2000 l\u00edneas. Puedo analizar lo que est\u00e1 sucediendo aqu\u00ed, validar el resultado de la prueba... <\/p>\n<p>Es complicado analizar Json en Go. Y hay que escribir en Go, porque Terraform en Go es una buena pr\u00e1ctica de probar en el mismo lenguaje en el que se escribe. La organizaci\u00f3n del c\u00f3digo es muy d\u00e9bil. Sin embargo, esta es la mejor biblioteca para pruebas. <\/p>\n<p>Microsoft mismo escribe sus m\u00f3dulos prob\u00e1ndolos de esta manera. Por supuesto, esto es Open Source. Todo lo que menciono puede ser sometido a reparaci\u00f3n. Puedo sentarme y arreglar todo en una semana, open source los plugins de VS Code, Terraform, hacer un plugin para Rider. Tal vez, escribir un par de analizadores, agregar linters, contribuir a la biblioteca de pruebas. Puedo hacerlo todo. Pero no deber\u00eda estar ocupado con eso. <\/p>\n<h2>Mejores pr\u00e1cticas de Infrastructure as Code<\/h2>\n<p>\nSigamos adelante. Si no hay pruebas en IaC, la IDE y las herramientas son deficientes, al menos deben existir las mejores pr\u00e1cticas. Simplemente fui a Google Analytics y compar\u00e9 dos b\u00fasquedas: Terraform best practices y c# best practices. <\/p>\n<p><img decoding=\"async\" alt=\"Infrastructure as code: primer encuentro\" src=\"\/wp-content\/uploads\/2019\/08\/3d0e8cd626596deea99324285321a0ab.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00bfQu\u00e9 vemos? Estad\u00edsticas implacables en nuestra contra. En t\u00e9rminos de cantidad de material, es lo mismo. En el desarrollo de C#, simplemente estamos ba\u00f1ados en materiales, tenemos super mejores pr\u00e1cticas, hay libros escritos por expertos, y tambi\u00e9n libros escritos sobre esos libros por otros expertos que critican esos libros. Un mar de documentaci\u00f3n oficial, art\u00edculos, cursos de formaci\u00f3n, y ahora incluso desarrollo open source.<\/p>\n<p>En cuanto a la b\u00fasqueda sobre IaC: aqu\u00ed est\u00e1 intentando reunir la informaci\u00f3n fragmentariamente a partir de conferencias de high load o HashiConf, de la documentaci\u00f3n oficial y numerosos problemas en GitHub. \u00bfC\u00f3mo se supone que debemos distribuir estos m\u00f3dulos, qu\u00e9 debemos hacer con ellos? Parece un problema real... Sin embargo, hay una comunidad, se\u00f1ores, donde a cualquier pregunta le dar\u00e1n 10 comentarios en GitHub. Pero eso no es seguro. <\/p>\n<p>Desafortunadamente, en este momento los expertos apenas est\u00e1n empezando a aparecer. Por ahora son demasiado pocos. Y la comunidad se encuentra en un nivel inicial. <\/p>\n<h2>\u00bfHacia d\u00f3nde se dirige todo esto y qu\u00e9 hacer?<\/h2>\n<p>\nSe podr\u00eda abandonar todo y volver a C#, al mundo de Rider. Pero no. \u00bfPor qu\u00e9 har\u00edas eso si no es para encontrar una soluci\u00f3n? A continuaci\u00f3n, presento mis conclusiones subjetivas. Puedes debatir conmigo en los comentarios, ser\u00e1 interesante. <\/p>\n<p>Personalmente, apuesto por varias cosas:<\/p>\n<ol>\n<li>El desarrollo en este campo avanza muy r\u00e1pido. Presento un gr\u00e1fico de b\u00fasquedas sobre DevOps.\n<p><img decoding=\"async\" alt=\"Infrastructure as code: primer encuentro\" src=\"\/wp-content\/uploads\/2019\/08\/068276f040f17c84a4c7eb9e11703c5c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPuede que sea un tema de moda, pero el hecho de que el \u00e1rea est\u00e9 en crecimiento ofrece cierta esperanza. <\/p>\n<p>Si algo crece tan r\u00e1pido, definitivamente aparecer\u00e1n personas inteligentes que nos dir\u00e1n c\u00f3mo hacerlo correctamente y c\u00f3mo no. El aumento de la popularidad lleva a que tal vez alguien tenga el tiempo de finalmente escribir un plugin para jsonnet para vscode, que permita ir directamente a la implementaci\u00f3n de una funci\u00f3n, en lugar de buscarla a trav\u00e9s de ctrl+shift+f. Cuando todo avanza, hay m\u00e1s materiales. La reciente publicaci\u00f3n de un libro de Google sobre SRE es un excelente ejemplo de esto.<\/li>\n<li>Existen metodolog\u00edas y pr\u00e1cticas en el desarrollo tradicional que podemos aplicar con \u00e9xito aqu\u00ed. S\u00ed, hay matices en las pruebas y un entorno heterog\u00e9neo, falta de herramientas, pero se han acumulado una gran cantidad de pr\u00e1cticas \u00fatiles que pueden servir y ayudar.\n<p>Un ejemplo simple: el trabajo colaborativo a trav\u00e9s de pair programming. Esto ayuda mucho a aclarar las cosas. Cuando tienes un compa\u00f1ero al lado que tambi\u00e9n est\u00e1 tratando de entender algo, juntos comprender\u00e1n mejor.<\/p>\n<p> Entender c\u00f3mo se realiza el refactoring ayuda incluso en situaciones como esta. Es decir, puedes no cambiar todo de una vez, sino cambiar el nombramiento, luego cambiar la ubicaci\u00f3n, y quiz\u00e1s luego destacar una parte; oh, aqu\u00ed faltan comentarios. <\/li>\n<\/ol>\n<p><\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>\nA pesar de que mis reflexiones pueden parecer pesimistas, miro al futuro con esperanza y sinceramente deseo que todos (incluy\u00e9ndonos) tengamos \u00e9xito.<\/p>\n<blockquote><p>Pronto se publicar\u00e1 la segunda parte del art\u00edculo. En ella contar\u00e9 c\u00f3mo intentamos aplicar pr\u00e1cticas de desarrollo \u00e1gil para mejorar nuestro proceso de aprendizaje y trabajo con la infraestructura.<\/p><\/blockquote>\n<p>Fuente: <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\/es\/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=\"es_ES\" \/>\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\/es\/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\udd47Infraestructura como c\u00f3digo: primer encuentro | ProHoster","description":"En nuestra empresa est\u00e1 en marcha el proceso de incorporaci\u00f3n del equipo SRE. Me he involucrado en toda esta historia desde el lado del desarrollo. A lo largo del proceso, he tenido pensamientos e intuiciones que quiero compartir con otros desarrolladores.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/infrastructure-as-code-pervoe-znakomstvo","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/37586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=37586"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/37586\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/28211"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=37586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=37586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=37586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}