Si está pensando en pasar a una metodología DevOps o busca mejorar sus operaciones actuales de DevOps, podría considerar la ingeniería de confiabilidad del sitio.
Transformar una metodología tradicional de desarrollo de software a DevOps puede ser un camino complicado. No sólo está realizando un cambio radical en la forma en que sus equipos desarrollan e implementan software, sino que también está cambiando toda la cultura de las operaciones comerciales. Si no dedica mucho tiempo a planificar este movimiento, las cosas pueden salir mal.
O tal vez ya haya implementado DevOps y descubra que no va tan bien como pensaba. Sus equipos no colaboran, la automatización no funciona y no se cumplen los plazos.
Pueden pasar muchas cosas cuando hay tantas partes móviles.
Afortunadamente, hay formas de realizar cambios positivos en sus métodos de DevOps que no sólo pueden aliviar el estrés abrumador que puede surgir con un cambio tan dramático, sino que también pueden ayudar a que DevOps sea mucho más efectivo.
Una opción que puede afectar positivamente a DevOps es implementar la ingeniería de confiabilidad del sitio. Puede parecer una exageración, pero tengan paciencia y verán cómo se puede aplicar esto.
¿Qué es la ingeniería de confiabilidad del sitio?
La ingeniería de confiabilidad del sitio (SRE) es un conjunto de principios que aplica varios aspectos de la ingeniería de software a las operaciones de TI tradicionales. SRE tiene como objetivo crear sistemas de software confiables y escalables y, si bien no es una comparación 1:1 con DevOps, muchos de los principios se aplican.
Con SRE, existen siete pilares rectores, cada uno de los cuales se puede aplicar directamente a DevOps para lograr un flujo de trabajo enormemente mejorado.
Aceptando el riesgo
Ningún servicio está 100% garantizado y casi todos los clientes y consumidores lo entienden. En pocas palabras, el riesgo es inherente al desarrollo de software y a los negocios en general. Cuando una empresa evita el riesgo, también evita las recompensas que acompañan al riesgo. Al aceptar el riesgo, aumenta en gran medida las posibilidades de que sus desarrolladores y operaciones de TI puedan crear algo que supere con creces o venda más que lo que ha implementado o lanzado anteriormente.
Cuando se trata de DevOps, el riesgo está implícito y si se niega a aceptarlo, descubrirá que DevOps es mucho más desafiante de lo que debería ser. Cuando usted (y sus equipos) se exponen a riesgos, descubrirá que la metodología DevOps no solo es más fácil de emplear, sino también más fácil de crecer y mejorar. Sin embargo, una cosa a tener en cuenta es que cuando se aplica este principio a DevOps, es imperativo que sus equipos también comprendan que, junto con el riesgo, también existe seguridad y protección, y que no serán castigados cuando el riesgo salga mal.
Objetivos de nivel de servicio
Es importante tener metas. Pero con SRE, también es crucial emplear lo que llamamos objetivos de nivel de servicio (SLO). Los SLO están directamente relacionados con la satisfacción del cliente y deberían ser una clave importante para cualquier negocio. Cuando considera la satisfacción del cliente y la aplica a sus objetivos, puede cambiar radicalmente la forma en que hace las cosas.
Recuerde que el cliente es un componente central de su negocio y sin él tendría dificultades para sobrevivir. El viejo dicho “el cliente siempre tiene la razón” ahora puede verse más en la línea de “la satisfacción del cliente impulsa la innovación”.
Siempre debe pensar en cómo puede mejorar la satisfacción del cliente, y esto se aplica directamente a DevOps porque DevOps ya debería ser un componente clave para hacer crecer su negocio para servir al cliente. Quiere poder escalar para satisfacer la demanda, implementar funciones para mejorar la experiencia del cliente y poder resolver rápidamente los problemas que afectan directamente a los clientes.
Eliminando trabajo
Este principio debería ser bastante obvio en cuanto a cómo se aplica a DevOps. Eliminar trabajo significa eliminar el trabajo repetitivo que puede atascar a los equipos. Cuando sus ingenieros tienen que lidiar con tareas simples y repetitivas, se les impide hacer lo que es realmente importante: centrarse en el desarrollo y las operaciones.
DevOps está perfectamente preparado para eliminar la monotonía con la incorporación de la automatización. Dado que la automatización elimina estas tareas repetitivas, DevOps debería funcionar con mayor fluidez. De esta manera, sus ingenieros no solo podrán mantener todo funcionando como se esperaba, sino también desarrollar nuevas funciones para el software e incluso mejorar el ciclo de vida de desarrollo de software que ayuda a impulsar su empresa.
Supervisión
Si no supervisa de cerca su flujo de trabajo de DevOps, se está perdiendo información importante sobre cómo funciona todo y cómo se podrían mejorar las cosas. El monitoreo de DevOps (con un guiño a SRE) implica ver cuidadosamente los datos que producen sus sistemas y tomar decisiones importantes basadas en esa información.
La información que recopile no solo puede ayudar a mejorar todo su flujo de trabajo de DevOps, sino que también puede contribuir en gran medida a ahorrar dinero a su empresa e incluso facilitar considerablemente el trabajo de todos.
Los cuatro datos más importantes que desea monitorear son la latencia, los patrones de tráfico, los errores y la saturación del servicio.
Este principio va directo al corazón de DevOps.
Ingeniería de lanzamiento
Este es otro principio que debería resultar obvio al aplicarlo a DevOps. La ingeniería de lanzamiento consiste en implementar software de manera consistente, estable y repetible.
Directo al grano, la ingeniería de lanzamiento debe tener en cuenta estos elementos:
- Gestión de configuración: desarrollo de un estándar mediante el cual se configuran las versiones.
- Documentación del proceso: creación de documentación para cada versión.
- Automatización: la automatización de tareas rutinarias y repetibles.
- Implementación rápida: itere rápida y frecuentemente en lugar de utilizar el método tradicional de implementación de software.
- Pruebas: deben ser continuas y fiables.
Automatización
Otro principio absolutamente fundamental para DevOps es la automatización. En el mundo de DevOps, hay muchas áreas donde se puede emplear la automatización, desde compilaciones hasta lanzamientos.
A medida que la automatización hace que su flujo de trabajo de DevOps sea más confiable, también elimina muchas tareas rutinarias que tradicionalmente se asignan a los desarrolladores y las operaciones de TI. Cuanto más se puedan automatizar estas tareas, más positivamente afectarán a su metodología DevOps.
Sencillez
Aunque DevOps es un método muy complicado y desafiante para implementar software, cualquier oportunidad que tenga de simplificar las cosas ayudará a mejorar todo el flujo de trabajo.
En lugar de diseñar y desarrollar sistemas demasiado complejos, debes poner la simplicidad en el centro de todo. Recuerde esto: cuando los sistemas complejos fallan, las soluciones son casi igual de complicadas. Por el contrario, cuando un sistema simple falla, la solución suele ser rápida y sencilla.
Si puede reimaginar su flujo de trabajo de DevOps teniendo en cuenta la simplicidad, debería hacerlo. Esto no significa que tengas que simplificar todo hasta el punto de no poder alcanzar tus objetivos. Sin embargo, lo que esto significa es que diseñas y desarrollas con intención y propósito. Si descubre que algún componente de su flujo de trabajo de DevOps es demasiado complejo, encargue a sus equipos que simplifiquen esa pieza para que, si se rompe, la solución sea obvia y rápida.
Conclusión
DevOps y la ingeniería de confiabilidad de sitios web pueden ir de la mano. Si bien estas dos ideas pueden considerarse aplicables a aspectos muy diferentes de tu negocio, la verdad es que están mucho más cerca de lo que piensas.
Sigue los 7 principios de SRE con tu metodología DevOps y verás que todo irá mucho mejor de lo que imaginas.
Si le gustó esto, asegúrese de consultar nuestros otros artículos sobre DevOps.
- Cómo acelerar el desarrollo de software adoptando la cultura DevOps
- La ola de MLOps (machine learning y Devops)
- Las 7 mejores herramientas de integración continua para 2023
- Comprender el revuelo de DevOps
- ¿Qué es DevSecOps y por qué lo necesita?