{"id":33504,"date":"2019-10-31T21:52:58","date_gmt":"2019-10-31T18:52:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom\/"},"modified":"2019-10-31T21:52:58","modified_gmt":"2019-10-31T18:52:58","slug":"rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","title":{"rendered":"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/2f9db2f057c4bcb3f2e57a484dd30c8c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Creaci\u00f3n de la primera cadena DevOps en cinco pasos para principiantes.<\/em><\/p>\n<p><\/p>\n<p>DevOps se ha convertido en la soluci\u00f3n para procesos de desarrollo demasiado lentos, desarticulados y otros problemas. Pero se necesitan conocimientos m\u00ednimos sobre DevOps. Se abordar\u00e1n conceptos como la cadena DevOps y c\u00f3mo crearla en cinco pasos. Esto no es una gu\u00eda completa, sino solo una 'base' que se puede expandir. Comencemos con la historia.<\/p>\n<p><\/p>\n<h3 id=\"moe-znakomstvo-s-devops\">Mi introducci\u00f3n a DevOps<\/h3>\n<p><\/p>\n<p>En alg\u00fan momento trabaj\u00e9 con nubes en Citi Group y desarroll\u00e9 una aplicaci\u00f3n web IaaS para gestionar la infraestructura en la nube de Citi, pero siempre me interes\u00f3 c\u00f3mo optimizar la cadena de desarrollo y mejorar la cultura entre los desarrolladores. Greg Lavender, nuestro director t\u00e9cnico de arquitectura e infraestructura en la nube, me recomend\u00f3 un libro <noindex><a rel=\"nofollow\" href=\"https:\/\/www.amazon.com\/dp\/B078Y98RG8\/\">Proyecto 'F\u00e9nix'<\/a><\/noindex>. Explica perfectamente los principios de DevOps, y se lee como una novela.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>En la tabla del reverso se muestra con qu\u00e9 frecuencia las empresas lanzan nuevas versiones:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/bf\/1e\/2_\/bf1e2_l0g8wnb5nojb1n5ruwlsi.png\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/a723283e54f7614b6b92eab78509985d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>\u00bfC\u00f3mo logran Amazon, Google y Netflix lanzar tantas versiones? La respuesta es simple: entendieron c\u00f3mo crear una cadena DevOps casi perfecta.<\/p>\n<p><\/p>\n<p>En Citi, la situaci\u00f3n era completamente diferente antes de adoptar DevOps. Mi equipo ten\u00eda diferentes entornos, pero la entrega al servidor de desarrollo la hac\u00edamos manualmente. Todos los desarrolladores ten\u00edan acceso solo a un servidor de desarrollo basado en IBM WebSphere Application Server Community Edition. Cuando intent\u00e1bamos hacer la entrega simult\u00e1neamente, el servidor 'ca\u00eda', y ten\u00edamos que negociar 'dolorosamente' cada vez. Adem\u00e1s, ten\u00edamos una cobertura de c\u00f3digo insuficiente en las pruebas, un proceso de entrega manual laborioso y ninguna forma de rastrear la entrega del c\u00f3digo con respecto a alguna tarea o requerimiento del cliente.<\/p>\n<p><\/p>\n<p>Era evidente que necesit\u00e1bamos actuar de inmediato, as\u00ed que encontr\u00e9 a un colega af\u00edn. Decidimos juntos crear la primera cadena DevOps: \u00e9l configur\u00f3 una m\u00e1quina virtual y un servidor de aplicaciones Tomcat, mientras que yo me ocup\u00e9 de Jenkins, la integraci\u00f3n con Atlassian Jira y BitBucket, as\u00ed como de la cobertura de c\u00f3digo en las pruebas. El proyecto fue exitoso: automatizamos completamente la cadena de desarrollo, logramos casi un 100% de disponibilidad del servidor de desarrollo, pudimos rastrear y mejorar la cobertura de c\u00f3digo en las pruebas, y la rama de Git se pod\u00eda vincular a la entrega y a la tarea de Jira. Y casi todas las herramientas que usamos para construir la cadena DevOps eran de c\u00f3digo abierto.<\/p>\n<p><\/p>\n<p>De hecho, la cadena fue simplificada, ya que ni siquiera utilizamos configuraciones avanzadas con Jenkins o Ansible. Pero nos funcion\u00f3. Quiz\u00e1s esto sea consecuencia del principio <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Pareto_principle\">Pareto<\/a><\/noindex> (tambi\u00e9n conocido como regla 80\/20).<\/p>\n<p><\/p>\n<h3 id=\"kratkoe-opisanie-cepochki-devops-i-cicd\">Descripci\u00f3n breve de la cadena DevOps y CI\/CD<\/h3>\n<p><\/p>\n<p>DevOps tiene varias definiciones. Al igual que Agile, DevOps incluye diferentes disciplinas. Pero la mayor\u00eda estar\u00e1 de acuerdo con la siguiente definici\u00f3n: DevOps es un m\u00e9todo, o ciclo de vida, de desarrollo de software, cuyo principio principal es crear una cultura donde los desarrolladores y otros empleados est\u00e9n 'en la misma sinton\u00eda', el trabajo manual est\u00e9 automatizado, cada uno se encargue de lo que mejor sabe hacer, aumente la frecuencia de entregas, mejore la productividad y aumente la flexibilidad.<\/p>\n<p><\/p>\n<p>Y aunque solo los herramientas no son suficientes para crear un entorno DevOps, son indispensables. La m\u00e1s importante de ellas es la integraci\u00f3n continua y la entrega continua (CI\/CD). En la cadena, para cada entorno hay diferentes etapas (por ejemplo, DEV (desarrollo), INT (integraci\u00f3n), TST (pruebas), QA (control de calidad), UAT (pruebas de aceptaci\u00f3n por usuarios), STG (preparaci\u00f3n), PROD (uso)), las tareas manuales est\u00e1n automatizadas, los desarrolladores pueden escribir c\u00f3digo de calidad, entregarlo y pueden reestructurarse f\u00e1cilmente.<\/p>\n<p><\/p>\n<p>Esta nota describe c\u00f3mo crear una cadena DevOps en cinco pasos, como se muestra en la imagen a continuaci\u00f3n, utilizando herramientas de c\u00f3digo abierto.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/da\/zq\/qo\/dazqqoyxn3vv-o6p9crpsm9m_eu.jpeg\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/da2a6d8ed039f0b8e1ea8e1ba562696d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Vamos al grano.<\/p>\n<p><\/p>\n<h3 id=\"shag-1-platforma-cicd\">Paso 1: Plataforma CI\/CD<\/h3>\n<p><\/p>\n<p>Primero, necesitas una herramienta CI\/CD. Jenkins es una herramienta de CI\/CD de c\u00f3digo abierto escrita en Java con licencia MIT, que inici\u00f3 la popularizaci\u00f3n del movimiento DevOps y que de facto se convirti\u00f3 en el est\u00e1ndar para CI\/CD.<\/p>\n<p><\/p>\n<p>\u00bfY qu\u00e9 es Jenkins? Imagina que tienes un control remoto m\u00e1gico para una variedad de servicios y herramientas. La herramienta CI\/CD, como Jenkins, en s\u00ed misma es in\u00fatil, pero con diferentes herramientas y servicios se vuelve todopoderosa.<\/p>\n<p><\/p>\n<p>Adem\u00e1s de Jenkins, hay muchas otras herramientas de c\u00f3digo abierto, elige cualquiera. <\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/fb\/ov\/dd\/fbovdd2kb_e8jkj1atm1ycuw3so.png\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/2bbe6af719b90da0eb0d367aae66d779.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>As\u00ed es como se ve el proceso DevOps con una herramienta CI\/CD<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/es\/-3\/dj\/es-3djmmligdmtcuvicigopzt8e.jpeg\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/2410013c9e6030596a59f3ed7ae3a7e7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Tienes una herramienta CI\/CD en localhost, pero por ahora no hay mucho que hacer. Vamos al siguiente paso.<\/p>\n<p><\/p>\n<h3 id=\"shag-2-upravlenie-versiyami\">Paso 2: gesti\u00f3n de versiones<\/h3>\n<p><\/p>\n<p>La mejor (y quiz\u00e1s la m\u00e1s simple) manera de verificar la magia de la herramienta CI\/CD es integrarla con una herramienta de control de versiones (source control management, SCM). \u00bfPara qu\u00e9 sirve el control de versiones? Supongamos que est\u00e1s creando una aplicaci\u00f3n. La escribes en Java, Python, C++, Go, Ruby, JavaScript o en cualquier otro idioma, que son muchos. Lo que escribes se llama c\u00f3digo fuente. Al principio, especialmente si trabajas solo, puedes almacenar todo en un directorio local. Pero cuando el proyecto crece y se une m\u00e1s gente, necesitas una forma de compartir los cambios en el c\u00f3digo, pero al mismo tiempo evitar conflictos al fusionar cambios. Adem\u00e1s, necesitas alguna forma de restaurar versiones anteriores sin usar copias de seguridad y sin aplicar el m\u00e9todo de copiar y pegar en los archivos de c\u00f3digo.<\/p>\n<p><\/p>\n<p>Y aqu\u00ed es donde no se puede prescindir del SCM. El SCM almacena el c\u00f3digo en repositorios, gestiona sus versiones y lo coordina entre los desarrolladores.<\/p>\n<p><\/p>\n<p>Hay muchas herramientas de SCM, pero el est\u00e1ndar de facto se ha convertido merecidamente en Git. Te recomiendo usarlo, aunque hay otras alternativas.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/37555a476c27f7066e5648b9e9e4d90b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>As\u00ed es como se ve el pipeline de DevOps despu\u00e9s de a\u00f1adir el SCM.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/am\/4o\/39\/am4o39ooera5tweytt3uyh80wlu.jpeg\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/040819b00dc608a9131856dd6a7d4a19.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>La herramienta CI\/CD puede automatizar la carga y descarga del c\u00f3digo fuente y la colaboraci\u00f3n en equipo. \u00bfNo est\u00e1 mal? Pero, \u00bfc\u00f3mo convertir esto en una aplicaci\u00f3n funcional, querida por miles de millones de usuarios?<\/p>\n<p><\/p>\n<h3 id=\"shag-3-instrument-avtomatizacii-sborki\">Paso 3: Herramienta de automatizaci\u00f3n de compilaci\u00f3n<\/h3>\n<p><\/p>\n<p>Todo va como se esperaba. Puedes subir el c\u00f3digo y registrar cambios en el sistema de control de versiones, as\u00ed como invitar a amigos a trabajar contigo. Pero a\u00fan no tienes una aplicaci\u00f3n. Para que esto sea una aplicaci\u00f3n web, necesita ser compilada y empaquetada para su entrega o ejecutada como un archivo ejecutable. (No es necesario compilar un lenguaje de programaci\u00f3n interpretado, como JavaScript o PHP).<\/p>\n<p><\/p>\n<p>Usa una herramienta de automatizaci\u00f3n de compilaci\u00f3n. Cualquiera que elijas, recoger\u00e1 el c\u00f3digo en el formato necesario y automatizar\u00e1 la limpieza, compilaci\u00f3n, prueba y entrega. Hay varias herramientas de compilaci\u00f3n dependiendo del lenguaje, pero generalmente se utilizan las siguientes opciones de c\u00f3digo abierto.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/cc6e958a82ac0676429da6c48e66910f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00a1Excelente! Ahora insertemos los archivos de configuraci\u00f3n de la herramienta de automatizaci\u00f3n de compilaci\u00f3n en el sistema de control de versiones para que la herramienta CI\/CD los recoja.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/gl\/t1\/ii\/glt1ii73wdg2roq5fus-fzd0ury.jpeg\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/bba539d128425e7e3ddacdc6028d3604.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Parece que todo est\u00e1 bien. Pero, \u00bfd\u00f3nde vamos a desplegar todo esto ahora?<\/p>\n<p><\/p>\n<h3 id=\"shag-4-server-veb-prilozheniy\">Paso 4: Servidor de aplicaciones web<\/h3>\n<p><\/p>\n<p>Entonces, tienes un archivo empaquetado que puede ser ejecutable o desplegable. Para que la aplicaci\u00f3n realmente sea \u00fatil, debe tener alg\u00fan servicio o interfaz, pero necesitas un lugar donde alojar todo esto.<\/p>\n<p><\/p>\n<p>Una aplicaci\u00f3n web se puede alojar en un servidor de aplicaciones. Un servidor de aplicaciones proporciona el entorno para ejecutar la l\u00f3gica de programaci\u00f3n del paquete, realizar el rendering de la interfaz y abrir servicios web a trav\u00e9s de un socket. Necesitas un servidor HTTP y otros entornos (como una m\u00e1quina virtual, por ejemplo) para instalar el servidor de aplicaciones. Por ahora, supongamos que est\u00e1s manejando todo esto en el proceso (aunque hablar\u00e9 sobre contenedores m\u00e1s adelante).<\/p>\n<p><\/p>\n<p>Existen varios servidores de aplicaciones web de c\u00f3digo abierto.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/v7\/-q\/tq\/v7-qtqzlpp5nvxlqz1oshw4mw1i.png\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/7802afe041a9d56c20ddbe2885b5cf37.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Ya hemos creado una cadena de DevOps casi funcional. \u00a1Gran trabajo!<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/lf\/wm\/rx\/lfwmrx3grlcbwb5s_olj33npn7o.jpeg\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/3d1e524b63fecebf4973cc34a40c160d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>En principio, aqu\u00ed se puede detener, luego te las arreglar\u00e1s solo, pero vale la pena hablar tambi\u00e9n sobre la calidad del c\u00f3digo.<\/p>\n<p><\/p>\n<h3 id=\"shag-5-testovoe-pokrytie\">Paso 5: Cobertura de pruebas<\/h3>\n<p><\/p>\n<p>Las pruebas consumen mucho tiempo y esfuerzo, pero es mejor encontrar errores y mejorar el c\u00f3digo de inmediato para complacer a los usuarios finales. Hay muchas herramientas de c\u00f3digo abierto para este prop\u00f3sito, que no solo prueban el c\u00f3digo, sino que tambi\u00e9n sugieren c\u00f3mo mejorarlo. La mayor\u00eda de las herramientas de CI\/CD pueden conectarse a estas herramientas y automatizar el proceso.<\/p>\n<p><\/p>\n<p>Las pruebas se dividen en dos partes: marcos de pruebas para escribir y ejecutar pruebas, y herramientas con sugerencias para mejorar la calidad del c\u00f3digo.<\/p>\n<p><\/p>\n<h3 id=\"freymvorki-testirovaniya\">Marcos de pruebas<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/cu\/4l\/pn\/cu4lpnpdqa7yd9f5zwsxrrlbylg.png\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/c17426a30a4f140be87489d2c8b0d0b9.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Herramientas con sugerencias sobre calidad<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ab\/g_\/oh\/abg_ohfxhtbprzhcicxos3jx4yg.png\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/bc65784b8bf5ccaaeef96a0c6ee4422e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>La mayor\u00eda de estas herramientas y marcos est\u00e1n escritos para Java, Python y JavaScript, porque C++ y C# son propietarios (aunque GCC tiene c\u00f3digo abierto).<\/p>\n<p><\/p>\n<p>Hemos aplicado herramientas de cobertura de pruebas y ahora el pipeline de DevOps deber\u00eda lucir como en la imagen al inicio de la gu\u00eda.<\/p>\n<p><\/p>\n<h2 id=\"dopolnitelnye-shagi\">Pasos adicionales<\/h2>\n<p><\/p>\n<h3 id=\"konteynery\">Contenedores<\/h3>\n<p><\/p>\n<p>Como mencion\u00e9, el servidor de aplicaciones se puede alojar en una m\u00e1quina virtual o un servidor, pero los contenedores son m\u00e1s populares.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-are-linux-containers\">\u00bfQu\u00e9 son los contenedores?<\/a><\/noindex>? \u0412\u043a\u0440\u0430\u0442\u0446\u0435, \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u0435\u0441\u0442\u0430, \u0447\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0443 \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0431\u0435\u0437 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043d\u0435 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c, \u043d\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432\u043c\u0435\u0449\u0430\u0435\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0437\u0430\u0442\u0440\u0430\u0442.<\/p>\n<p><\/p>\n<p>Para contenedores, generalmente se utiliza Docker y Kubernetes, aunque hay otras opciones.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/6n\/wc\/rc\/6nwcrcuhk9swwjxdddudr1cqpzc.png\"><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/8749b7044102ff7f23f2c970d6939246.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Lee los art\u00edculos sobre Docker y Kubernetes en <noindex><a rel=\"nofollow\" href=\"http:\/\/opensource.com\/\">Opensource.com<\/a><\/noindex>:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-docker\">\u00bfQu\u00e9 es Docker?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/business\/15\/1\/introduction-docker\">Introducci\u00f3n a Docker<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/what-is-kubernetes\">\u00bfQu\u00e9 es Kubernetes?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/17\/11\/kubernetes-lightning-talk\">Kubernetes desde cero<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"instrumenty-avtomatizacii-promezhutochnogo-po\">Herramientas de automatizaci\u00f3n de middleware<\/h3>\n<p><\/p>\n<p>Nuestra cadena DevOps est\u00e1 dise\u00f1ada para la colaboraci\u00f3n en el desarrollo y entrega de aplicaciones, pero con herramientas de DevOps tambi\u00e9n se pueden hacer cosas interesantes. Por ejemplo, se pueden utilizar herramientas de \"infraestructura como c\u00f3digo\" (IaC), que tambi\u00e9n se conocen como herramientas de automatizaci\u00f3n de middleware. Estas herramientas ayudan a automatizar la instalaci\u00f3n, gesti\u00f3n y otras tareas para el middleware. Por ejemplo, una herramienta de automatizaci\u00f3n puede tomar aplicaciones (servidor de aplicaciones web, base de datos, herramientas de monitoreo) con las configuraciones correctas y desplegarlas en el servidor de aplicaciones.<\/p>\n<p><\/p>\n<p>Aqu\u00ed hay algunas opciones de herramientas de automatizaci\u00f3n de middleware de c\u00f3digo abierto:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto.\" src=\"\/wp-content\/uploads\/2019\/05\/23bb3259f336a3f0ebf11ab4aa5471ea.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Detalles en los art\u00edculos de <noindex><a rel=\"nofollow\" href=\"http:\/\/opensource.com\/\">Opensource.com<\/a><\/noindex>:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/quickstart-guide-ansible\">Gu\u00eda para comenzar con Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/automating-deployment-strategies-ansible\">Estrategias de automatizaci\u00f3n de despliegues con Ansible<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/12\/configuration-management-tools\">5 mejores herramientas de gesti\u00f3n de configuraci\u00f3n<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"i-chto-teper\">\u00bfY ahora qu\u00e9?<\/h3>\n<p><\/p>\n<p>Esto es solo la punta del iceberg. La cadena DevOps puede hacer mucho m\u00e1s. Comienza con una herramienta de CI\/CD y descubre qu\u00e9 m\u00e1s puedes automatizar para facilitar tu trabajo. No te olvides de <noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/alternatives\/slack\">herramientas de comunicaci\u00f3n de c\u00f3digo abierto<\/a><\/noindex> para una colaboraci\u00f3n efectiva.<\/p>\n<p><\/p>\n<p>Aqu\u00ed hay algunos buenos art\u00edculos sobre DevOps para principiantes:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/resources\/devops\">\u00bfQu\u00e9 es DevOps?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/master-devops-engineer\">5 habilidades de un desarrollador DevOps<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/11\/how-non-engineer-got-devops\">DevOps para todos<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/1\/getting-started-predictive-analytics-devops\">Introducci\u00f3n al an\u00e1lisis predictivo en DevOps<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p>Tambi\u00e9n puedes integrar DevOps con herramientas de c\u00f3digo abierto para agile:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/18\/10\/what-agile\">\u00bfQu\u00e9 es agile?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/opensource.com\/article\/19\/2\/steps-agile-developer\">4 pasos para dominar agile<\/a><\/noindex><\/li>\n<\/ul>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/451508\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 DevOps \u0437\u0430 \u043f\u044f\u0442\u044c \u0448\u0430\u0433\u043e\u0432 \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432. DevOps \u0441\u0442\u0430\u043b \u043f\u0430\u043d\u0430\u0446\u0435\u0435\u0439 \u0434\u043b\u044f \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0445, \u0440\u0430\u0437\u043e\u0431\u0449\u0435\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041d\u043e \u043d\u0443\u0436\u043d\u044b \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0437\u043d\u0430\u043d\u0438\u044f \u0432 DevOps. \u0417\u0434\u0435\u0441\u044c \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0442\u0430\u043a\u0438\u0435 \u043f\u043e\u043d\u044f\u0442\u0438\u044f, \u043a\u0430\u043a \u0446\u0435\u043f\u043e\u0447\u043a\u0430 DevOps \u0438 \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0435 \u0437\u0430 \u043f\u044f\u0442\u044c \u0448\u0430\u0433\u043e\u0432. \u042d\u0442\u043e \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u201c\u0440\u044b\u0431\u0430\u201d, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0438\u0441\u0442\u043e\u0440\u0438\u0438. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25204,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-33504","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=\"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\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom\" \/>\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\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0447\u0430\u0439\u043d\u0438\u043a\u043e\u0432: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0446\u0435\u043f\u043e\u0447\u0435\u043a DevOps \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom\" \/>\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-31T18:52:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:52:58+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\udd47Gu\u00eda para principiantes: creaci\u00f3n de cadenas DevOps con herramientas de c\u00f3digo abierto | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","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\udd47\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0447\u0430\u0439\u043d\u0438\u043a\u043e\u0432: \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0446\u0435\u043f\u043e\u0447\u0435\u043a DevOps \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c | ProHoster","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/rukovodstvo-dlya-chajnikov-sozdanie-tsepochek-devops-s-pomoshhyu-instrumentov-s-otkrytym-ishodnym-kodom","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-31T18:52:58+00:00","article:modified_time":"2019-10-31T18:52:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"33504","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-21 15:33:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:39:23","updated":"2026-01-21 15:33: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\/33504","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=33504"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/33504\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/25204"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=33504"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=33504"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=33504"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}