{"id":29696,"date":"2024-10-02T11:53:32","date_gmt":"2024-10-02T09:53:32","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=29696"},"modified":"2024-10-02T14:53:51","modified_gmt":"2024-10-02T12:53:51","slug":"el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/","title":{"rendered":"El futuro de DevOps es DevOps, Parte 2: Continuous Delivery vs. Site Reliability Engineering"},"content":{"rendered":"\n<p>En esta segunda parte sobre DevOps, hablar\u00e9 de la entrega continua o &#8220;Continuous Delivery&#8221; y de la ingenier\u00eda de fiabilidad de sitios o &#8220;Site Reliability Engineering&#8221;.<\/p>\n\n\n\n<p>Si DevOps nos gu\u00eda en la promesa de construir software que est\u00e1 siempre en estado entregable y que una vez que se entrega se mantiene estable y f\u00e1cil de operar, los principios DevOps se materializan mediante la adopci\u00f3n de ciertas pr\u00e1cticas de ingenier\u00eda de software y de herramientas de automatizaci\u00f3n. Estas pr\u00e1cticas son numerosas por lo que para estructurar mejor nuestro entendimiento las organizamos en dos grandes grupos, la entrega continua y la ingenier\u00eda de fiabilidad de sitios.<\/p>\n\n\n\n<p>Ambos conceptos se definieron por primera vez en los libros hom\u00f3nimos, considerados cl\u00e1sicos de la literatura de la ingenier\u00eda del software. Me refiero a los libros <em>&#8220;Continuous Delivery&#8221;<\/em><sup data-fn=\"d8f16f2e-bd7b-4aa5-955e-1e62b26f4363\" class=\"fn\"><a href=\"#d8f16f2e-bd7b-4aa5-955e-1e62b26f4363\" id=\"d8f16f2e-bd7b-4aa5-955e-1e62b26f4363-link\">1<\/a><\/sup> de Jezz Humble y David Farley, publicado en 2010 exponiendo los fundamentos de los procesos de entrega de software con bajo riesgo, r\u00e1pidos y fiables; y <em>&#8220;Site Reliability Engineering&#8221;<\/em><sup data-fn=\"ae127050-2811-4992-85dd-03c60be41a78\" class=\"fn\"><a href=\"#ae127050-2811-4992-85dd-03c60be41a78\" id=\"ae127050-2811-4992-85dd-03c60be41a78-link\">2<\/a><\/sup> editado en 2016 por Betsy Beyer, Chris Jones, Jennifer Petoff, y Niall Murphy reflejando la perspectiva de c\u00f3mo Google gestiona sus sistemas productivos.<\/p>\n\n\n\n<p>Una manera sencilla de definir la entrega continua es como la habilidad de una organizaci\u00f3n o equipo para mantener el software siempre en un estado entregable, a trav\u00e9s de cambios peque\u00f1os y frecuentes y un conjunto suficiente de validaciones autom\u00e1ticas que garantiza la calidad del software tras cada cambio, por peque\u00f1o que sea (se ponga o no ese cambio en producci\u00f3n).<br><br>La ingenier\u00eda de la fiabilidad de sitios se puede definir como la habilidad de una organizaci\u00f3n o equipo para mantener sistemas de software escalables y resistentes a los errores, adoptando pr\u00e1cticas propias de la ingenier\u00eda del software a las actividades de operaci\u00f3n de las soluciones y gesti\u00f3n de las infraestructuras.<\/p>\n\n\n\n<p>Es posible que hay\u00e1is le\u00eddo o escuchado que la entrega continua es DevOps desde el &#8220;lado Dev&#8221; y que la ingenier\u00eda de fiabilidad de sitios es DevOps desde el &#8220;lado Ops&#8221;, pero no solo es inapropiado hablar de lados en DevOps (recordad: sin silos) sino que esa visi\u00f3n tan simplista es muy inexacta.<\/p>\n\n\n\n<p>Eso es as\u00ed porque ambos conjuntos de pr\u00e1cticas son complementarios y est\u00e1n interrelacionados.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-por-que-son-complementarias-la-entrega-continua-y-la-fiabilidad-de-sitios\">\u00bfPor qu\u00e9 son complementarias la entrega continua y la fiabilidad de sitios?<\/h3>\n\n\n\n<p>No se puede ser una organizaci\u00f3n que cumple las expectativas de los principios DevOps si no se implementan armoniosamente las pr\u00e1cticas que promueven tanto la entrega continua como la ingenier\u00eda de fiabilidad de sitios. No tiene sentido ser una organizaci\u00f3n s\u00faper \u00e1gil en la manera en la que llevamos cambios de aplicaciones a producci\u00f3n si luego no podemos mantener un m\u00ednimo de estabilidad y operaci\u00f3n de esas aplicaciones.<\/p>\n\n\n\n<p>La entrega continua se centra en la cadencia del cambio y el tiempo a mercado. Se pone foco en tener una estrategia de puesta en producci\u00f3n clara con flujos de trabajo definidos, reducir las dependencias entre equipos, mantener la trazabilidad de todos los cambios, automatizar todas las tareas posibles mediante pipelines de integraci\u00f3n y despliegue continuos, y adelantar tanto como sea posible (shift-left) todas las validaciones de calidad y seguridad de las aplicaciones, datos, plataformas e infraestructuras.<\/p>\n\n\n\n<p>La ingenier\u00eda de fiabilidad de los sitios se centra en la disponibilidad de los sistemas. Se pone foco en el tiempo que el sistema est\u00e1 disponible, el rendimiento, la tolerancia a los fallos, la capacidad para degradarse gr\u00e1cilmente, la planificaci\u00f3n de capacidad frente a eventos, o los planes de respuesta a emergencias.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"825\" height=\"677\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img1.png\" alt=\"\" class=\"wp-image-29966\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img1.png 825w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img1-300x246.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img1-768x630.png 768w\" sizes=\"auto, (max-width: 825px) 100vw, 825px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-verse has-text-align-center\">Diagrama sobre la relaci\u00f3n entre la entrega continua y la fiabilidad de sitios.<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-como-se-interrelacionan-la-entrega-continua-y-la-fiabilidad-de-sitios\">\u00bfC\u00f3mo se interrelacionan la entrega continua y la fiabilidad de sitios?<\/h3>\n\n\n\n<p>Ambos conjuntos de pr\u00e1cticas tienen muchos puntos en com\u00fan, como no pod\u00eda ser menos, puesto que abogamos por la colaboraci\u00f3n constante entre desarrollo y operaciones, con objetivos y preocupaciones compartidas (sin silos; s\u00ed, ya s\u00e9 que soy &#8220;muy pesado&#8221; con eso).<\/p>\n\n\n\n<p>Un ejemplo de esas preocupaciones compartidas entre ambos conjuntos de pr\u00e1cticas es la capacidad para hacer pruebas en producci\u00f3n gracias a t\u00e9cnicas como las pruebas A\/B, la activaci\u00f3n de capacidades a demanda del negocio mediante &#8220;feature flags&#8221;, o los despliegues de tipo &#8220;canary&#8221;. Otro ejemplo habitual es la colaboraci\u00f3n en la detecci\u00f3n y resoluci\u00f3n de incidentes gracias a la telemetr\u00eda que se captura de los sistemas activos, la detecci\u00f3n temprana de problemas, y a las capacidades de auto-escalado y de auto-curaci\u00f3n de las aplicaciones, plataformas e infraestructura. Tambi\u00e9n es un ejemplo de preocupaci\u00f3n compartida el tener la habilidad para hacer despliegues de cambios sin ca\u00edda del servicio y con una estrategia de vuelta atr\u00e1s definida.<\/p>\n\n\n\n<p>En la pr\u00f3xima secci\u00f3n entrar\u00e9 en detalle en las pr\u00e1cticas de automatizaci\u00f3n, desarrollando brevemente en qu\u00e9 consisten, y c\u00f3mo est\u00e1n conectadas con la entrega continua y la ingenier\u00eda de fiabilidad de sitios.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-practicas-de-automatizacion-de-devops-vs-cd-vs-sre\">Pr\u00e1cticas de Automatizaci\u00f3n de DevOps vs. CD vs. SRE<\/h3>\n\n\n\n<p>Hay muchas formas de clasificar las pr\u00e1cticas de automatizaci\u00f3n de DevOps pero a m\u00ed me ayuda mucho estructurarlas en 6 grupos de pr\u00e1cticas de la siguiente forma:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gesti\u00f3n del ciclo de vida de las aplicaciones (Application Life-cycle Management).<\/li>\n\n\n\n<li>Integraci\u00f3n continua (Continuous Integration).<\/li>\n\n\n\n<li>Despliegue continuo (Continuous Deployment).<\/li>\n\n\n\n<li>Validaci\u00f3n o &#8220;testing&#8221; continuo (Continuous Testing).<\/li>\n\n\n\n<li>Infraestructura continua (Continuous Infrastructure).<\/li>\n\n\n\n<li>Operaciones continuas (Continuous Operations).<\/li>\n<\/ul>\n\n\n\n<p>En su mayor\u00eda, como pod\u00e9is ver, se pone \u00e9nfasis en &#8220;continuo&#8221; como sin\u00f3nimo de que son pr\u00e1cticas que se aplican, de forma consistente, para cada cambio en el sistema (idealmente cuanto m\u00e1s peque\u00f1o mejor), sin intervenci\u00f3n humana (o \u00e9sta es m\u00ednima) y sin disrupci\u00f3n en la prestaci\u00f3n de los servicios.<\/p>\n\n\n\n<p>Veamos ahora cada grupo con algo m\u00e1s de detalle.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-gestion-del-ciclo-de-vida-de-las-aplicaciones\">Gesti\u00f3n del ciclo de vida de las aplicaciones<\/h3>\n\n\n\n<p>La gesti\u00f3n del ciclo de vida se refiere a la habilidad de tener completa trazabilidad de las actividades relacionadas con el ciclo de vida de los desarrollos, desde requerimientos a entregas, as\u00ed como a las actividades de la operaci\u00f3n, desde tareas peri\u00f3dicas de mantenimiento a la resoluci\u00f3n de incidentes.<\/p>\n\n\n\n<p>Se fundamenta en una gesti\u00f3n de la configuraci\u00f3n exquisita, con estrategias de versionado y ramas consistentes, y que es inclusiva de todos los elementos del sistema, tanto aplicaciones como datos o piezas de la infraestructura (m\u00e1s sobre este \u00faltimo aspecto en el apartado sobre infraestructura continua).<\/p>\n\n\n\n<p>Tendremos una identificaci\u00f3n precisa sobre qui\u00e9n hizo qu\u00e9, cu\u00e1ndo y por qu\u00e9, independientemente de la capa o componente donde impactara el cambio. La gesti\u00f3n de dependencias ser\u00e1 clara y evitaremos sorpresas como las que suceden, a modo de ejemplo, cuando no se han identificados ciertos artefactos software y solo se descubre su falta en el momento de una entrega o cuando los cambios ya est\u00e1n desplegado en producci\u00f3n y suceden errores imprevistos.<\/p>\n\n\n\n<p>Por tanto, una gesti\u00f3n del ciclo de vida de las aplicaciones adecuada es imprescindible tanto para conseguir los objetivos de velocidad y \u00e9xito en las entregas como la fiabilidad, resiliencia y operabilidad de los sistemas.<\/p>\n\n\n\n<p>Ejemplos de herramientas de ciclo de vida son: GitHub, GitLab, Jira, BitBucket, Azure DevOps, Nexus Repository, o Artifactory.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-integracion-continua\">Integraci\u00f3n continua<\/h3>\n\n\n\n<p>La integraci\u00f3n continua fue definida en septiembre del a\u00f1o 2000 por Martin Fowler en un famoso blog considerado todo un cl\u00e1sico<sup data-fn=\"d72e2ea7-d543-46b2-9fe3-474598155c12\" class=\"fn\"><a href=\"#d72e2ea7-d543-46b2-9fe3-474598155c12\" id=\"d72e2ea7-d543-46b2-9fe3-474598155c12-link\">3<\/a><\/sup>. Desde entonces, aunque ha mantenido esa pieza en constante revisi\u00f3n (la \u00faltima de enero de 2024) y se ha expandido tanto en el libro hom\u00f3nimo como en m\u00faltiples otros lugares, se ha mantenido intacto el significado de lo que es y lo que no es integraci\u00f3n continua.<\/p>\n\n\n\n<p>En breve: la integraci\u00f3n continua es el proceso por el cual de forma frecuente (al menos una vez al d\u00eda) los miembros de un equipo integran los cambios de sus compa\u00f1eros sobre sus propios cambios, validan que el funcionamiento tras la integraci\u00f3n de esos cambios sigue siendo el esperado (&#8220;green tests&#8221;) y se comparte el c\u00f3digo al repositorio com\u00fan (&#8220;git push&#8221;) para que un entorno centralizado (el motor de integraci\u00f3n continua) realice un proceso de construcci\u00f3n autom\u00e1tico (lo que normalmente llamamos una &#8220;build&#8221;) y ejecutar\u00e1 de nuevo todas las pruebas concluyendo en un producto candidato para ser entregado (&#8220;shippable product&#8221;) o en un aviso a los desarrolladores de que algo no funciona como se espera.<\/p>\n\n\n\n<p>Practicar integraci\u00f3n continua implica, entre otras cosas, que los miembros de los equipos validan sus cambios e integran los cambios de sus compa\u00f1eros de forma frecuente para evitar que se acumulen los cambios pendientes de integrar. De forma impl\u00edcita promueve una estrategia de ramas sencilla con m\u00faltiples ramas de tipo &#8220;feature&#8221; de vida corta adem\u00e1s del tronco o &#8220;main&#8221; donde est\u00e1 la versi\u00f3n m\u00e1s actual del c\u00f3digo. Finalmente, practicar integraci\u00f3n continua implica que si una &#8220;build&#8221; falla, el equipo para todo el trabajo en curso para resolverlo, antes de retomar el trabajo planificado. De ese modo, el estado del tronco o &#8220;main&#8221; ser\u00e1 siempre estable (aunque no necesariamente entregable; m\u00e1s sobre esto cuando se trate la validaci\u00f3n continua).<\/p>\n\n\n\n<p>Mediante la integraci\u00f3n continua conseguimos detectar de forma temprana problemas derivados de la integraci\u00f3n de cambios que se han realizado de forma independiente por distintos miembros del equipo (o del mismo desarrollador para dos peticiones diferentes) sobre cualquier componente software del sistema. Se gana en calidad de los entregables y en productividad del equipo ya que resolver esas situaciones en peque\u00f1os lotes es mucho m\u00e1s \u00f3ptimo que integrar cientos de cambios a la vez.<\/p>\n\n\n\n<p>Si adem\u00e1s complementamos la integraci\u00f3n continua con otro tipo de validaciones como la inspecci\u00f3n de c\u00f3digo y configuraci\u00f3n, el an\u00e1lisis de dependencias o la identificaci\u00f3n de vulnerabilidades de seguridad, se consigue aumentar aun m\u00e1s la calidad del software mediante la detecci\u00f3n temprana de ese tipo de defectos.<\/p>\n\n\n\n<p>La integraci\u00f3n continua tiene adem\u00e1s otro beneficio adicional: el proceso que transforma c\u00f3digo y configuraci\u00f3n en software que funciona es un proceso bien conocido, repetible, autom\u00e1tico, mucho m\u00e1s fiable que los procesos manuales que suelen tener una alta tasa de fallo, que no est\u00e1n documentados o que directamente requieren del conocimiento &#8220;tribal&#8221; de algunos (pocos) miembros del equipo. A la secuencia que transforma el c\u00f3digo en un producto candidato es a lo que normalmente llamamos el &#8220;pipeline&#8221; de integraci\u00f3n continua.<\/p>\n\n\n\n<p>Por tanto, la integraci\u00f3n continua ayuda fundamentalmente a cumplir con los objetivos de la entrega continua.<\/p>\n\n\n\n<p>Ejemplos de herramientas de integraci\u00f3n continua son: Jenkins, GitHub Actions, GitLab CI\/CD, Azure Pipelines, o CircleCI.<\/p>\n\n\n\n<p>Tambi\u00e9n son muy relevantes para los &#8220;pipelines&#8221; de CI las herramientas que interact\u00faan con los distintos lenguajes y plataformas, ya sea para gestionar dependencias, compilar, transformar, empaquetar, validar la calidad del c\u00f3digo, ejecutar pruebas unitarias, o identificar vulnerabilidades. Por ejemplo: Maven, Gradle, Grunt, npm, webpack, pip, SonarQube, Checkstyle, SpotBugs, ESLint, OWASP Dependency Track, y un largo etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-despliegue-continuo\">Despliegue continuo<\/h3>\n\n\n\n<p>Consiste en la capacidad para desplegar cambios de forma autom\u00e1tica a todos los entornos incluido el productivo, de forma orquestada incluyendo dependencias (con otras aplicaciones, sistemas externos, datos), as\u00ed como cualquier tipo de umbral (&#8220;gate&#8221;) como son, por ejemplo: verificaci\u00f3n de momento del despliegue frente a las ventanas definidas, la validaci\u00f3n del \u00e9xito de pruebas de aceptaci\u00f3n y regresi\u00f3n en un entorno previo, o un paso de aprobaci\u00f3n manual por parte de un responsable de negocio.<\/p>\n\n\n\n<p>Una pr\u00e1ctica de despliegue continuo saludable adem\u00e1s cuenta con procesos de marcha atr\u00e1s (&#8220;rollback&#8221;) bien definidos y que se ejecutan ya sea autom\u00e1ticamente o de forma manual. Un ejemplo de &#8220;rollback&#8221; autom\u00e1tico ser\u00eda el que se hace sin intervenci\u00f3n cuando fallan las pruebas realizadas en producci\u00f3n post-despliegue, como pruebas operacionales o pruebas de humo.<\/p>\n\n\n\n<p>Desplegar continuamente es m\u00e1s que tener un automatismo. Un &#8220;shell script&#8221; que sube un fichero por scp y ejecuta un comando de reinicio por ssh es f\u00e1cil de hacer. La dificultad, en algunos casos m\u00e1xima, reside en orquestar procesos complejos, aplicaciones con muchos componentes, dependencias con librer\u00edas de terceros o con otras aplicaciones, ser consistentes en el despliegue de cambios de la aplicaci\u00f3n junto con cambios en datos (y que se pueda hacer un &#8220;rollback&#8221; seguro de la aplicaci\u00f3n considerando que seguramente no se podr\u00e1 hacer marcha atr\u00e1s de los cambios en los datos), o ser capaces de implantar un proceso de despliegue que no suponga interrupciones al servicio (como pueden ser despliegues &#8220;canary&#8221;, &#8220;azul\/verde&#8221; o &#8220;rolling&#8221;).<\/p>\n\n\n\n<p>La pr\u00e1ctica de despliegue continuo es terreno colaborativo tanto de Dev como de Ops, una preocupaci\u00f3n de la entrega continua y de la fiabilidad de los sitios, y es por tanto de esperar que sea una de las pr\u00e1cticas donde mayor colaboraci\u00f3n e interacci\u00f3n exista entre ambos grupos.<\/p>\n\n\n\n<p>Disponer de un proceso autom\u00e1tico y desatendido facilita en gran medida la trazabilidad de los cambios desplegados a trav\u00e9s de todos los entornos, as\u00ed como disponer de artefactos firmados digitalmente con los que podamos prevenir cambios no deseados por ataques en la &#8220;cadena de suministro&#8221; del software (&#8220;secure software supply chain&#8221;).<\/p>\n\n\n\n<p>Ejemplos de herramientas de despliegue continuo (y de orquestaci\u00f3n de aplicaciones) son: Jenkins, CloudBees CD\/RO, AutoRABIT, Flyway, Liquibase, Helm, Terraform, o Ansible. Y muchas, muchas, l\u00edneas de &#8220;shell script&#8221;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-validacion-continua\">Validaci\u00f3n continua<\/h3>\n\n\n\n<p>O como algunas veces me gusta llamarla: &#8220;esa gran desconocida&#8221;.<\/p>\n\n\n\n<p>Iron\u00edas aparte, en mi experiencia es una pr\u00e1ctica muchas veces denostada, arrinconada o adoptada de forma muy incompleta en los proyectos del mundo real. \u00bfQu\u00e9 pasa cuando un proyecto va mal en fecha? \u00bfQu\u00e9 suele verse sacrificado lo primero? \u00bfRecortamos alcance? No; con mucha frecuencia, se reduce la carga de trabajo en tareas de aseguramiento de la calidad. Es aun muy com\u00fan ver proyectos, incluso tecnol\u00f3gicamente punteros, con m\u00ednimas o ninguna pruebas unitarias autom\u00e1ticas, pruebas que &#8220;van de visita&#8221; sin validar ning\u00fan resultado, pruebas de aceptaci\u00f3n testimoniales, o pruebas de regresi\u00f3n limitadas al &#8220;voy a darle una vuelta&#8221; de forma manual.<\/p>\n\n\n\n<p>Sin validaci\u00f3n continua no puede haber entrega continua. No importa cu\u00e1nto y bueno sean la integraci\u00f3n continua y el despliegue continuo, que sin un conjunto suficiente de pruebas de validaci\u00f3n del software no podemos considerar si \u00e9ste est\u00e1 o no en estado entregable. Y garantizar el estado entregable del software es la pieza angular de la entrega continua: ser capaces de llevar cambios a producci\u00f3n con bajo riesgo, r\u00e1pida y consistentemente.<\/p>\n\n\n\n<p>La validaci\u00f3n continua implica la ejecuci\u00f3n de pruebas autom\u00e1ticas de forma temprana y frecuente en entornos equivalentes al de producci\u00f3n. Debido al \u00e9nfasis en que la validaci\u00f3n es continua, de forma frecuente significa que las ejecutaremos tras cada cambio, o como m\u00ednimo una vez al d\u00eda alineados a la pr\u00e1ctica de integraci\u00f3n continua. Que se hagan de forma temprana implica que desde la primera l\u00ednea de c\u00f3digo existen las pruebas necesarias para la validaci\u00f3n. Se puede practicar TDD, BDD o no, pero todo cambio lleva emparejado el cambio en scripts y datos de prueba. Entornos equivalente al de producci\u00f3n significa que podemos aprovisionar un entorno ef\u00edmero a partir de la misma definici\u00f3n del productivo, con las mismas piezas de infraestructura y versiones, cargarlo con datos significativos, y una vez ya no es necesario, eliminarlo para ahorrar en recursos.<\/p>\n\n\n\n<p>Ejemplos de herramientas de validaci\u00f3n continua son: JUnit, JaCoCo, Pitest, Karma, Mocha, Jasmine, Cypress, Selenium, SoapUI, JMeter, Gatling, y otro largo etc\u00e9tera. Muchas de estas herramientas ya se habr\u00e1n utilizado como parte de los &#8220;pipelines&#8221; de integraci\u00f3n continua para la ejecuci\u00f3n y validaci\u00f3n de las pruebas unitarias, por lo que su uso es transversal y encajar\u00e1 m\u00e1s all\u00e1 o ac\u00e1 seg\u00fan el tipo de pruebas que se automatizan y su lugar dentro de la pir\u00e1mide del &#8220;testing&#8221;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-infraestructura-continua\">Infraestructura continua<\/h3>\n\n\n\n<p>La infraestructura continua se basa en tres pilares: la infraestructura como c\u00f3digo (o infraestructura definida por software); la integraci\u00f3n de las capacidades de resiliencia, disponibilidad, o escalabilidad, en la propia definici\u00f3n de la infraestructura y no como una consideraci\u00f3n posterior; y la capacidad de validar continuamente cambios en la infraestructura de modo an\u00e1logo a como la integraci\u00f3n continua lo hace para los componentes software (para que sea realmente continua).<\/p>\n\n\n\n<p>La infraestructura como c\u00f3digo nos permite generar entornos completamente funcionales a partir de la nada. Mediante herramientas especializadas y scripts somos capaces de validar pre-requisitos y generar todas las capas de la infraestructura como son: redes, discos, computaci\u00f3n, bases de datos, servicios &#8220;serverless&#8221;, y un largo etc\u00e9tera. La definici\u00f3n asume pocas o ninguna dependencias externas, idealmente agrupando consideraciones comunes en capas de abstracci\u00f3n como puede ser una &#8220;landing zone&#8221; de la que heredan propiedades el resto de entornos, o una estructura modular alineada con las capas conceptuales de la arquitectura.<\/p>\n\n\n\n<p>La infraestructura como c\u00f3digo permite adoptar estrategias de entornos ef\u00edmeros, que existen solo cuando son necesarios lo que permite ahorrar en costes si lo comparamos con tener entornos 24&#215;7 operativos se est\u00e9n usando o no. Es clave para tener entornos equivalentes al de producci\u00f3n lo que facilita la detecci\u00f3n temprana de problemas y la repetibilidad de incidentes en la producci\u00f3n cuando se repiten en entornos previos o creados espec\u00edficamente para investigar el suceso.<\/p>\n\n\n\n<p>Emparejada con el control de versiones, la infraestructura como c\u00f3digo facilita las necesidades de trazabilidad y gobierno, incluyendo el mantenimiento de inventarios completos (SBOM o &#8220;software bill of materials&#8221;) y la certificaci\u00f3n de soluciones (clave en entornos regulados como son las infraestructuras cr\u00edticas de un pa\u00eds).<\/p>\n\n\n\n<p>Otro beneficio es que habilita la pr\u00e1ctica de GitOps: la validaci\u00f3n y despliegue de nuevas versiones de las infraestructuras y plataformas a partir de cambios en los repositorios, validar y propagar los cambios a trav\u00e9s de tantos entornos como sea necesario. Es la fusi\u00f3n perfecta entre la integraci\u00f3n continua y la validaci\u00f3n continua pero para los componentes de infraestructura y plataforma.<\/p>\n\n\n\n<p>Una pr\u00e1ctica de infraestructura continua aporta una capa adicional de tranquilidad respecto a la estabilidad de los negocios. Poder generar un entorno productivo al completo desde cero, con todos los componentes necesarios en las versiones correctas (porque todo est\u00e1 bajo control de versiones y trazado) y con la \u00faltima versi\u00f3n de los datos, y poder hacerlo en pocas horas, significa minimizar disrupciones incluso en casos severos de p\u00e9rdidas de disponibilidad de servicios. Sobrevivir incluso a la p\u00e9rdida completa de un centro de datos moviendo la producci\u00f3n a una regi\u00f3n alternativa. Es decir: la &#8220;red de seguridad&#8221; definitiva.<\/p>\n\n\n\n<p>Esta pr\u00e1ctica es fundamental para los objetivos de SRE pero es tambi\u00e9n importante para la entrega continua al facilitar las actividades de validaci\u00f3n de los cambios en entornos equivalentes al de producci\u00f3n y garantizar el estado entregable de una soluci\u00f3n.<\/p>\n\n\n\n<p>Ejemplos de herramientas de infraestructura continua son: VirtualBox, Vagrant, Docker, Kubernetes, Rancher, Terraform, Ansible, etc. Y, por supuesto, los proveedores de servicios de infraestructura y plataformas como: VMware, Amazon Web Services, Google Cloud, Microsoft Azure, OVHcloud, etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-operaciones-continuas\">Operaciones continuas<\/h3>\n\n\n\n<p>Las operaciones continuas se basan en tres pilares: la observabilidad, o capacidad de recolectar informaci\u00f3n a trav\u00e9s de todos los entornos y funciones de un sistema y tomar una posici\u00f3n proactiva en la detecci\u00f3n y resoluci\u00f3n de incidentes; la ingenier\u00eda del caos, que nos permite abordar la detecci\u00f3n temprana de problemas de infraestructura de forma estructurada (y cient\u00edfica) en base a la ideaci\u00f3n de experimentos y validaci\u00f3n de las hip\u00f3tesis sobre el comportamiento esperado del sistema; y los planos de control de la infraestructura que permiten a los sistemas auto-monitorizarse y actuar sin intervenci\u00f3n humana para resolver situaciones de disponibilidad, escalado, degradaci\u00f3n de servicios, contenci\u00f3n de fallos, etc.<\/p>\n\n\n\n<p>Mediante la introducci\u00f3n de una estrategia de observabilidad y herramientas de monitorizaci\u00f3n modernas podemos realizar una recopilaci\u00f3n exhaustiva de telemetr\u00eda de todos los componentes de un sistema y dejar de ser reactivos a incidentes. Estableciendo objetivos de nivel de servicio (&#8220;service-level objectives&#8221;, SLOs) e indicadores de nivel de servicio (&#8220;service-level indicators&#8221;, SLIs), podemos tener el control continuo sobre el rendimiento y disponibilidad del sistema, entender qu\u00e9 margen de actuaci\u00f3n tenemos (la diferencia entre el SLO y el SLI, tambi\u00e9n conocido como el &#8220;error budget&#8221;) y actuar proactivamente ante cualquier riesgo de que no pueda cumplirse el SLO.<\/p>\n\n\n\n<p>Una estrategia adecuada de observabilidad tambi\u00e9n nos permite obtener m\u00e9tricas relevantes para el an\u00e1lisis del rendimiento del negocio como son: comportamiento de usuarios, uso de caracter\u00edsticas espec\u00edficas (muy potente si se alinea con pruebas A\/B o la activaci\u00f3n de caracter\u00edsticas o &#8220;feature flags&#8221;), informaci\u00f3n en tiempo real de KPIs de negocio, etc.<\/p>\n\n\n\n<p>Es posible optimizar los costes de las infraestructuras monitorizando el uso y adaptando en tiempo real los recursos a las necesidades reales, escalando en ambos sentidos seg\u00fan el momento, as\u00ed como identificar caracter\u00edsticas poco o nunca utilizadas y considerar su eliminaci\u00f3n del sistema.<\/p>\n\n\n\n<p>Los experimentos de ingenier\u00eda del caos nos facilitan validar el dise\u00f1o de la resiliencia de nuestros sistemas comenzando por lo que sabemos o creemos saber (&#8220;known knowns&#8221;), aumentando progresivamente la dificultad y alcance de los experimentos hasta cubrir todo lo que no sabemos o no hemos medido antes (&#8220;known unknowns&#8221;, &#8220;unknown unknowns&#8221;).<\/p>\n\n\n\n<p>Un ejemplo de experimento sobre una base conocida es: si una r\u00e9plica del servicio de autentificaci\u00f3n falla no habr\u00e1 p\u00e9rdida de servicio porque el resto de r\u00e9plicas podr\u00e1n absorber la carga hasta 1.000 usuarios por minuto. O tambi\u00e9n: si un nodo de nuestro cl\u00faster Kubernetes falla otro nodo estar\u00e1 disponible y los servicios de vuelta en funcionamiento en menos de 2 minutos.<\/p>\n\n\n\n<p>Un ejemplo de experimento sobre una base desconocidos puede ser: el tiempo de recuperaci\u00f3n de servicios en caso de que sufri\u00e9ramos la p\u00e9rdida completa del centro de datos de Europa Sur deber\u00eda ser inferior a las 4 horas para cumplir el objetivo (RTO o &#8220;recovery time objective&#8221;), pero no estamos seguros de ello ya que nunca se ha ejecutado ese escenario. No solo deber\u00edamos validar los tiempos de recuperaci\u00f3n sino si la monitorizaci\u00f3n es capaz de hacer detecci\u00f3n temprana de un suceso de esa envergadura o si la automatizaci\u00f3n disponible actualmente puede recrear el entorno al completo sin intervenci\u00f3n manual.<\/p>\n\n\n\n<p>Contar con unas operaciones de este nivel es preocupaci\u00f3n fundamental de SRE pero con enorme colaboraci\u00f3n de los equipos de desarrollo en consideraciones de dise\u00f1o de la resiliencia, exportar  y disponibilizar los datos de telemetr\u00eda, contar con registros operacionales como los logs de las aplicaciones, o la resoluci\u00f3n r\u00e1pida de incidentes.<\/p>\n\n\n\n<p>Ejemplos de plataformas y herramientas ampliamente utilizadas en estas pr\u00e1cticas son: Elastic, Dynatrace, Grafana, Prometheus, New Relic, influxdata, DataDog, AppDynamics, Viewtinet, Nagios, Litmus Chaos, Gremlin, etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-conclusiones\">Conclusiones<\/h3>\n\n\n\n<p>Cerrando el c\u00edrculo, el siguiente diagrama trata de recoger de un vistazo la relaci\u00f3n entre las pr\u00e1cticas de automatizaci\u00f3n de DevOps y su impacto en conseguir los objetivos tanto de la entrega continua como de la ingenier\u00eda de fiabilidad de sitios.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"385\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img2-1024x385.png\" alt=\"\" class=\"wp-image-29964\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img2-1024x385.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img2-300x113.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img2-768x289.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/arti2-img2.png 1216w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-verse has-text-align-center\">Diagrama con la relaci\u00f3n entre los grupos de pr\u00e1cticas de DevOps,<br>la entrega continua y la fiabilidad de sitios.<\/pre>\n\n\n\n<p>En el pr\u00f3ximo art\u00edculo de la serie continuar\u00e9 profundizando en aspectos relacionados con DevOps hablando de la experiencia del desarrollador, o &#8220;Developer Experience&#8221;.<\/p>\n\n\n\n<p>\u00a1Hasta pronto!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sobre-el-autor\">Sobre el autor<\/h3>\n\n\n\n<p>Jorge Hidalgo es director de ingenier\u00eda de software en Accenture, responsable de DevOps en Accenture Iberia y de la unidad de Arquitectura y Plataformas Cloud y DevOps en Accenture EMEA South Advanced Technology Center. Es tambi\u00e9n responsable en Accenture globalmente de la comunidad de pr\u00e1ctica Java y Java Champion desde 2023.<\/p>\n\n\n\n<p>Jorge cuenta con m\u00e1s de 25 a\u00f1os de experiencia en la industria, principalmente con tecnolog\u00edas Java, web, cloud, DevOps, agilidad y ciberseguridad. Adem\u00e1s de desarrollar su actividad profesional con clientes, es una figura activa en las comunidades tecnol\u00f3gicas, tanto como ponente en numerosos eventos locales e internacionales, como liderando la actividad de comunidades como M\u00e1laga JUG, M\u00e1laga Scala Developers y Boquer\u00f3nSec, as\u00ed como colaborando en la organizaci\u00f3n de eventos como OpenSouthCode o Codemotion.<\/p>\n\n\n\n<p><a href=\"https:\/\/deors.wordpress.com\">https:\/\/deors.wordpress.com<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/x.com\/deors314\">https:\/\/x.com\/deors314<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/www.linkedin.com\/in\/deors\">https:\/\/www.linkedin.com\/in\/deors<\/a><\/p>\n\n\n<ol class=\"wp-block-footnotes\"><li id=\"d8f16f2e-bd7b-4aa5-955e-1e62b26f4363\"><a href=\"https:\/\/www.oreilly.com\/library\/view\/continuous-delivery-reliable\/9780321670250\/\">Libro &#8220;Continuous Delivery&#8221;, por Jez Humble y David Farley<\/a> <a href=\"#d8f16f2e-bd7b-4aa5-955e-1e62b26f4363-link\" aria-label=\"Jump to footnote reference 1\">\u21a9\ufe0e<\/a><\/li><li id=\"ae127050-2811-4992-85dd-03c60be41a78\"><a href=\"https:\/\/sre.google\/sre-book\/table-of-contents\/\">Libro &#8220;Site Reliability Engineering&#8221;, de Google<\/a> <a href=\"#ae127050-2811-4992-85dd-03c60be41a78-link\" aria-label=\"Jump to footnote reference 2\">\u21a9\ufe0e<\/a><\/li><li id=\"d72e2ea7-d543-46b2-9fe3-474598155c12\"><a href=\"https:\/\/martinfowler.com\/articles\/continuousIntegration.html\">Art\u00edculo que introdujo la integraci\u00f3n continua, por Martin Fowler<\/a> <a href=\"#d72e2ea7-d543-46b2-9fe3-474598155c12-link\" aria-label=\"Jump to footnote reference 3\">\u21a9\ufe0e<\/a><\/li><\/ol>","protected":false},"excerpt":{"rendered":"<p>En esta segunda parte sobre DevOps, hablar\u00e9 de la entrega continua o &#8220;Continuous Delivery&#8221; y de la ingenier\u00eda de fiabilidad de sitios o &#8220;Site Reliability Engineering&#8221;. Si DevOps nos gu\u00eda en la promesa de construir software que est\u00e1 siempre en estado entregable y que una vez que se entrega se mantiene estable y f\u00e1cil de&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/\">Read more<\/a><\/p>\n","protected":false},"author":248,"featured_media":27140,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":"[{\"id\":\"d8f16f2e-bd7b-4aa5-955e-1e62b26f4363\",\"content\":\"<a href=\\\"https:\\\/\\\/www.oreilly.com\\\/library\\\/view\\\/continuous-delivery-reliable\\\/9780321670250\\\/\\\">Libro \\\"Continuous Delivery\\\", por Jez Humble y David Farley<\\\/a>\"},{\"id\":\"ae127050-2811-4992-85dd-03c60be41a78\",\"content\":\"<a href=\\\"https:\\\/\\\/sre.google\\\/sre-book\\\/table-of-contents\\\/\\\">Libro \\\"Site Reliability Engineering\\\", de Google<\\\/a>\"},{\"id\":\"d72e2ea7-d543-46b2-9fe3-474598155c12\",\"content\":\"<a href=\\\"https:\\\/\\\/martinfowler.com\\\/articles\\\/continuousIntegration.html\\\">Art\\u00edculo que introdujo la integraci\\u00f3n continua, por Martin Fowler<\\\/a>\"}]"},"categories":[10626],"tags":[10747],"collections":[],"class_list":{"0":"post-29696","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-devops-es","8":"tag-desarrollo-web","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>El futuro de DevOps: Continuous Delivery vs. Site Reliability Engineering<\/title>\n<meta name=\"description\" content=\"En esta segunda entrega sobre el futuro del DevOps, Jorge Hidalgo explora conceptos clave como Continuous Delivery y SRE.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"El futuro de DevOps es DevOps, Parte 2: Continuous Delivery vs. Site Reliability Engineering\" \/>\n<meta property=\"og:description\" content=\"En esta segunda entrega sobre el futuro del DevOps, Jorge Hidalgo explora conceptos clave como Continuous Delivery y SRE.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-02T09:53:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-02T12:53:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"340\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"deors\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@deors314\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"deors\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/\"},\"author\":{\"name\":\"deors\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/cb131b3b6b3bdbead4f06a0df187577d\"},\"headline\":\"El futuro de DevOps es DevOps, Parte 2: Continuous Delivery vs. Site Reliability Engineering\",\"datePublished\":\"2024-10-02T09:53:32+00:00\",\"dateModified\":\"2024-10-02T12:53:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/\"},\"wordCount\":4163,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png\",\"keywords\":[\"Desarrollo web\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/\",\"name\":\"El futuro de DevOps: Continuous Delivery vs. Site Reliability Engineering\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png\",\"datePublished\":\"2024-10-02T09:53:32+00:00\",\"dateModified\":\"2024-10-02T12:53:51+00:00\",\"description\":\"En esta segunda entrega sobre el futuro del DevOps, Jorge Hidalgo explora conceptos clave como Continuous Delivery y SRE.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png\",\"width\":600,\"height\":340},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"El futuro de DevOps es DevOps, Parte 2: Continuous Delivery vs. Site Reliability Engineering\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/cb131b3b6b3bdbead4f06a0df187577d\",\"name\":\"deors\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/1692192746991-100x100.jpeg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/1692192746991-100x100.jpeg\",\"caption\":\"deors\"},\"description\":\"Director of Software Engineering, Head or DevOps - Accenture Iberia | Java Champion | MalagaJUG organizer\",\"sameAs\":[\"https:\/\/deors.wordpress.com\",\"https:\/\/www.linkedin.com\/in\/deors\",\"https:\/\/x.com\/deors314\",\"https:\/\/www.youtube.com\/@deors\",\"https:\/\/mastodon.social\/@deors\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/deors\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"El futuro de DevOps: Continuous Delivery vs. Site Reliability Engineering","description":"En esta segunda entrega sobre el futuro del DevOps, Jorge Hidalgo explora conceptos clave como Continuous Delivery y SRE.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/","og_locale":"en_US","og_type":"article","og_title":"El futuro de DevOps es DevOps, Parte 2: Continuous Delivery vs. Site Reliability Engineering","og_description":"En esta segunda entrega sobre el futuro del DevOps, Jorge Hidalgo explora conceptos clave como Continuous Delivery y SRE.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-10-02T09:53:32+00:00","article_modified_time":"2024-10-02T12:53:51+00:00","og_image":[{"width":600,"height":340,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png","type":"image\/png"}],"author":"deors","twitter_card":"summary_large_image","twitter_creator":"@deors314","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"deors","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/"},"author":{"name":"deors","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/cb131b3b6b3bdbead4f06a0df187577d"},"headline":"El futuro de DevOps es DevOps, Parte 2: Continuous Delivery vs. Site Reliability Engineering","datePublished":"2024-10-02T09:53:32+00:00","dateModified":"2024-10-02T12:53:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/"},"wordCount":4163,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png","keywords":["Desarrollo web"],"articleSection":["DevOps"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/","name":"El futuro de DevOps: Continuous Delivery vs. Site Reliability Engineering","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png","datePublished":"2024-10-02T09:53:32+00:00","dateModified":"2024-10-02T12:53:51+00:00","description":"En esta segunda entrega sobre el futuro del DevOps, Jorge Hidalgo explora conceptos clave como Continuous Delivery y SRE.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png","width":600,"height":340},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/el-futuro-de-devops-es-devops-parte-2-continuous-delivery-vs-site-reliability-engineering\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.codemotion.com\/magazine\/es\/devops-es\/"},{"@type":"ListItem","position":3,"name":"El futuro de DevOps es DevOps, Parte 2: Continuous Delivery vs. Site Reliability Engineering"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/cb131b3b6b3bdbead4f06a0df187577d","name":"deors","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/1692192746991-100x100.jpeg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/1692192746991-100x100.jpeg","caption":"deors"},"description":"Director of Software Engineering, Head or DevOps - Accenture Iberia | Java Champion | MalagaJUG organizer","sameAs":["https:\/\/deors.wordpress.com","https:\/\/www.linkedin.com\/in\/deors","https:\/\/x.com\/deors314","https:\/\/www.youtube.com\/@deors","https:\/\/mastodon.social\/@deors"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/deors\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png","author_info":{"display_name":"deors","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/deors\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png",600,340,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1-300x170.png",300,170,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png",600,340,false],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png",600,340,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png",600,340,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png",600,340,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1-100x100.png",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png",600,340,false],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png",600,340,false],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/devops-toolchain-edit-es-1.png",600,340,false]},"uagb_author_info":{"display_name":"deors","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/deors\/"},"uagb_comment_info":0,"uagb_excerpt":"En esta segunda parte sobre DevOps, hablar\u00e9 de la entrega continua o &#8220;Continuous Delivery&#8221; y de la ingenier\u00eda de fiabilidad de sitios o &#8220;Site Reliability Engineering&#8221;. Si DevOps nos gu\u00eda en la promesa de construir software que est\u00e1 siempre en estado entregable y que una vez que se entrega se mantiene estable y f\u00e1cil de&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/29696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/248"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=29696"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/29696\/revisions"}],"predecessor-version":[{"id":29970,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/29696\/revisions\/29970"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/27140"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=29696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=29696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=29696"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=29696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}