Operaciones modernas
En este mismo módulo, hemos afirmado que las prácticas de operaciones modernas pueden ser de ayuda. Sin embargo, no hemos indicado cuáles eran esas prácticas o por qué es razonable recurrir a ellas. Vamos a analizar este tema ahora, como preludio del mapa que usamos para desplazarnos por nuestro trabajo de confiabilidad.
En este módulo y a lo largo de la ruta de aprendizaje de operaciones modernas, usamos el término prácticas de operaciones modernas como un contenedor de dos prácticas diferentes:
- DevOps
- Ingeniería de confiabilidad de sitios (SRE)
Echemos un vistazo rápido a ambas y a lo que pueden ofrecernos en este contexto.
DevOps
DevOps tiene muchos aspectos interesantes que distintas personas han entendido e interpretado de distintas maneras. Tiene muchas definiciones adecuadas. Veamos algunas de ellas para tener una visión más completa:
Ofrecimiento continuo de valor
DevOps es la unión de personas, procesos y productos que permite ofrecer valor de forma continua a nuestros usuarios finales. La contracción de "dev" y "Ops" hace referencia a la sustitución de las operaciones y el desarrollo aislados para crear equipos multidisciplinares que ahora trabajan conjuntamente con herramientas y prácticas compartidas y eficientes. Los procedimientos de DevOps esenciales son un planeamiento ágil, una integración y un ofrecimiento de valor continuos, así como la supervisión de las aplicaciones.
-- Sam Guckenheimer; ¿Qué es DevOps?
Filosofía de colaboración, propiedad y aprendizaje
DevOps es una filosofía de ingeniería de colaboración, propiedad y aprendizaje cuyo propósito consiste en acelerar el ciclo de vida de desarrollo de software desde su concepción hasta su producción.
-- Emily Freeman; DevOps para dummies
Trabajo de forma conjunta para concebir, desarrollar, implementar y operar un sistema
DevOps: filosofía en la que las personas, independientemente de su cargo o experiencia, trabajan juntas para concebir, desarrollar, implementar y operar un sistema.
-- Ken Murage
Ingeniería de confiabilidad de sitios
Si una palabra clave del dominio kerberos de DevOps es entrega, en el caso de la ingeniería de confiabilidad de sitios sería confiabilidad. Aunque hay algunas definiciones de la ingeniería de confiabilidad de sitios (SRE) que se han debatido sobre el terreno, parece haber más consenso sobre este tema. Esta es nuestra definición, que recoge los aspectos clave de ese consenso:
La ingeniería de confiabilidad de sitios es una disciplina de ingeniería dedicada a ayudar a una organización a lograr de manera sostenible el nivel adecuado de confiabilidad en sus sistemas, servicios y productos.
¿Cuál es el motivo de estas prácticas? ¿Por qué se aplican ahora?
Los profesionales de operaciones crearon DevOps y SRE en los últimos 15 años para responder a un conjunto específico de desafíos que se produjeron en el espacio de las operaciones. Reconocieron que muchos de los factores iban a requerir un nuevo enfoque, entre los que se incluían:
- La creciente complejidad de los entornos de producción.
- Aumento de la dependencia empresarial con respecto al funcionamiento continuo de esos entornos.
- La incapacidad para escalar linealmente los recursos al tamaño de estos entornos.
Aunque son prácticas diferentes cuyos centros de atención son ligeramente distintos (por ejemplo, entrega frente a confiabilidad, como ya se ha mencionado), tanto DevOps como SRE han desarrollado prácticas y principios que forman una parte fundamental del trabajo de confiabilidad. Entre ellos, se incluyen la supervisión y la capacidad de observación, la respuesta adecuada a los incidentes, la automatización y la colaboración. Todos estos aspectos desempeñan un rol importante en el material que se explica en la ruta de aprendizaje Mejora de la confiabilidad.
Pasemos a verlo. Empezaremos con un modelo que nos ayudará a estructurar y planear nuestros esfuerzos de confiabilidad.