SRE vs DevOps: Dos enfoques colaborativos para una entrega y gestión de software eficiente

SER vs DevOps

Diferencia entre DevOps y SRE

Una de las diferencias más importantes entre la forma en que la mayoría de las organizaciones abordan la entrega y gestión de software hoy en día, y la forma en que lo hacían hasta alrededor de 2010, es que los roles de desarrollo y gestión de aplicaciones se han difuminado. Aunque en el pasado los desarrolladores y los equipos de operaciones de IT rara vez trabajaban conjuntamente, a medida que va pasando el tiempo están apareciendo más prácticas de trabajo conjunto entre ambos.

Sin embargo, la forma en que las organizaciones logran esta colaboración puede variar. Algunas se centran en DevOps, una filosofía que fomenta una estrecha coordinación entre los desarrolladores y los equipos de operaciones de IT. Otras recurren a la ingeniería de fiabilidad del sitio, o SRE, que también combina las funciones de desarrollo de software y operaciones de IT en algunos aspectos, pero no de la misma manera que DevOps. Y algunas organizaciones utilizan ambas prácticas, SRE y DevOps, a la vez.

¿En qué se parecen y cuál es la diferencia entre DevOps y SRE? ¿Por qué una empresa decide adoptar una práctica o la otra? ¿Debería utilizarse SRE y DevOps al mismo tiempo? ¡Vamos a descubrirlo!

SRE vs DevOps, ¿qué son?

DevOps es una filosofía que, en esencia, anima a los desarrolladores y a los equipos de operaciones de IT a colaborar estrechamente. La idea que subyace a DevOps es que cuando los desarrolladores tienen visibilidad de los problemas que los equipos de operaciones de TI experimentan, así como los equipos de operaciones de TI tienen visibilidad de lo que los desarrolladores están construyendo a medida que lanzan nuevas versiones de aplicaciones, el resultado final es una mayor eficiencia, mayor cohesión y menos problemas para todos. 

Por separado, el equipo de operaciones IT velará porque su trabajo sea lo menos disruptivo posible, mientras que el equipo de desarrollo querrá sacar más y más funcionalidades a producción. Pero si se contextualizan mutuamente, si ganan visibilidad y entendimiento sobre el trabajo del otro, podrán valorarlo y entenderlo como una extensión del suyo propio. En ese momento nace un tercer equipo, híbrido de ambos, y que velará por los intereses del conjunto. En ocasiones este equipo contará con profesionales del desarrollo y con profesionales de las operaciones, e incluso pueden encontrarse perfiles de profesionales que tengan un amplio conocimiento de los dos campos por igual.

Por su parte, SRE  se traduce como “ingeniería de fiabilidad del sitio” y, en esencia, es una estrategia que utiliza principios fundamentados en la ingeniería del software para hacer que los sistemas sean lo más estables posible. Para ello, los equipos de SRE se encargan de solucionar problemas operativos (como DevOps), de escala o de fiabilidad, y una vez logran el objetivo principal de fiabilidad, es cuando pasan a enfocarse en añadir nuevas funcionalidades o construir nuevos productos. Debido a esta versatilidad, los equipos de SRE suelen estar compuestos por desarrolladores con nociones de operaciones IT, o bien por operadores IT con habilidades para el desarrollo. Y a esas dos facetas principales se les añade la Observabilidad, la Automatización y la Arquitectura de software.

SRE facilita adquirir una mentalidad y unas herramientas, como pueden ser la Observabilidad, el QA o los automatismos, que serán compartidas entre el desarrollo de software y las operaciones de IT con el objetivo de conseguir que todo el mecanismo organizativo en su conjunto, así como los sistemas y aplicaciones, se optimicen.

SRE vs DevOps, ¿cómo se relacionan entre sí?

SRE y DevOps no son contrincantes, de hecho, SRE proporciona un enfoque práctico para resolver la mayoría de los problemas de DevOps y ampliarlos con conceptos proactivos, de prevención.

SRE vs DevOps: uso de instrumentos y automatización:

SRE y DevOps utilizan la automatización para mejorar los procesos y la prestación de servicios. Mientras que DevOps fomenta la adopción de herramientas de automatización, SRE garantiza que cada miembro del equipo pueda acceder a instrumentos y tecnologías de automatización actualizados.

SRE vs DevOps: implementación de cambios incrementales:

DevOps implica cambios lentos e incrementales para garantizar la mejora continua. SRE apoya esto permitiendo a los equipos realizar actualizaciones pequeñas y frecuentes que disminuyen la influencia de los cambios en la disponibilidad y estabilidad.

 

SRE vs DevOps: implementación de cambios incrementales

La tarea de DevOps garantiza que los diferentes departamentos o equipos de desarrollo de software trabajen en armonía en un objetivo común. SRE lo consigue al compartir la propiedad de los proyectos entre equipos. Con SRE, cada equipo utiliza los mismos instrumentos y métodos para apoyar la uniformidad y la cooperación fluida.

¿Por qué se oye hablar más de DevOps que de SRE?

En general, es común que se hable más de DevOps que de SRE hoy en día. Aunque se podrían debatir las razones, probablemente hay dos factores principales en juego.

En primer lugar, SRE es un concepto estrechamente asociado a Google, donde se originó su papel. En cambio, DevOps no está vinculado a ninguna empresa u organización. Eso hace que DevOps sea un concepto algo menos «polémico», por así decirlo. Las empresas que no utilizan Google pueden adoptar más fácilmente DevOps que SRE.

La segunda razón por la que DevOps tiende a ser más popular que SRE es que el término «DevOps» se utiliza a veces como sustituto para referirse a cualquier tipo de operación moderna de desarrollo o gestión de software. Aunque DevOps tiene una definición concreta que se centra en la colaboración entre desarrolladores y operaciones de IT, se pueden encontrar herramientas o productos que no abordan de forma específica esta colaboración y que, sin embargo, se etiquetan como «DevOps». Por eso, algunos críticos afirman que DevOps se utiliza en exceso, o que «DevOps significa todo y nada».

Hasta ahora, SRE no ha sido objeto de ese mismo tipo de uso generalizado. El término está estrechamente asociado a prácticas específicas.

¿En qué se diferencian DevOps y SRE?

La similitud clave entre SRE y DevOps es que ambos ayudan a reducir la brecha que tradicionalmente ha separado a los equipos de desarrollo de los equipos de operaciones. Por extensión, ayudan a las organizaciones en su conjunto a trabajar de forma más eficiente y a ofrecer mejores experiencias para los usuarios finales. Sin embargo, cuando se profundiza en los detalles, se pueden apreciar claras distinciones entre ambas:

Naturaleza

SRE fue concebido con un propósito: construir un conjunto de métodos y métricas para mejorar la fiabilidad, la cooperación y la prestación de servicios. En cambio, DevOps realmente es una filosofía que da pie al pensamiento colaborativo entre equipos dispares.

 

Foco

El objetivo principal de la SRE es optimizar la fiabilidad y el rendimiento de los sistemas y aplicaciones a través de la  Observabilidad. En DevOps, la fiabilidad no es una prioridad, más bien puede ser obtenida al llevar a cabo sus prácticas de forma saludable, ya que su foco reside en la velocidad de desarrollo y entrega, siempre de manera continua. 

 

Conclusión: Cuándo utilizar DevOps y cuándo SRE

Independientemente de los equívocos, una cosa es cierta: SRE y DevOps no son facciones opuestas, sino más bien dos parientes que trabajan con el mismo fin y las mismas herramientas, pero con enfoques ligeramente distintos.

Mientras que la cultura SRE valora la fiabilidad por encima de la velocidad en la transformación, DevOps hace hincapié en la escalabilidad a lo largo de todo el ciclo de desarrollo del producto. Ahora bien, ambos enfoques tratan de encontrar un equilibrio entre los dos polos y pueden complementarse en cuanto a métodos, prácticas y soluciones.

La cultura DevOps y los equipos multidisciplinares benefician a cualquier empresa que opere en un entorno altamente competitivo, donde incluso un tiempo de comercialización un poco más corto proporciona una gran ventaja. Es más, los equipos DevOps pueden reforzarse con ingenieros de SRE para controlar el rendimiento del sistema y garantizar su estabilidad. Por ello algunas empresas tienen dos equipos, uno de SRE y otro DevOps. El primero se encarga de dar soporte y mantener el servicio actual, mientras que el segundo construye y entrega nuevas aplicaciones. 

De hecho, en muchas empresas es probable que ya haya alguien realizando sin saberlo tareas de SRE, facilitando la colaboración DevOps entre desarrolladores y técnicos TI o creando scripts para automatizar tareas tediosas. Encontrar a estas personas e identificar formalmente su trabajo, puede constituir la base de un equipo SRE o DevOps funcional.

 

    ¿Quieres más información sobre nuestros servicios?

    RESPONSABLE TRATAMIENTO: Kiteris Solutions S.L. FINALIDAD: Tratar sus datos para poder enviarle información sobre el servicio solicitado. LEGITIMACIÓN: Consentimiento del interesado. CESIONES: No se prevén cesiones, excepto por obligación legal o requerimiento judicial. DERECHOS: Acceso, rectificación, supresión, oposición, limitación, portabilidad, revocación del consentimiento. Si considera que el tratamiento de sus datos no se ajusta a la normativa, puede acudir a la Autoridad de Control (www.aepd.es).
    INFORMACIÓN ADICIONAL: www.kiteris.com/politica-privacidad

    Acepto que se traten mis datos para recibir información sobre el servicio y suscripción a nuestro newsletter

     

    Observability Lead en Kiteris
    follow me