Close

El camino hacia una mejor gestión de incidentes empieza aquí

Gestión de incidentes en la era de DevOps

Aplicación de los principios de comunicación abierta y sin acusaciones a equipos de gestión de incidentes

No puedes repensarte la forma de compilar, implementar y manejar el software sin replantearte la forma de responder ante los incidentes.

En una inspiradora charla de 2009, cuyo título vendría a traducirse como “Más de 10 implementaciones al día: La cooperación entre desarrollo y operaciones en Flickr”, John Allspaw y Paul Hammond esbozaron una visión de un mundo en el que los desarrolladores y los equipos de operaciones de TI colaboran y hacen lanzamientos con frecuencia. A lo largo de la próxima década, dicha visión se materializó en forma del movimiento DevOps.

La naturaleza de DevOps reside en nuevas formas de responder a incidentes. No es de extrañar que la gestión de incidentes recibiera tanta atención en la charla de Allspaw y Hammond.

“Lo más importante que hay que tener en cuenta es que el fracaso es algo que va a producirse —dijo Hammond en la charla—. No es una cuestión de si se producirá, sino de cuándo lo hará”.

A diferencia de marcos como ITIL, no hay ningún documento “oficial” de prácticas recomendadas para los equipos que utilizan DevOps. Sin embargo, en términos generales podemos estar de acuerdo en que DevOps consiste esencialmente en ofrecer valor empresarial a una organización al eliminar los grupos aislados, aumentar la transparencia y fomentar la comunicación abierta entre los desarrolladores y los equipos de operaciones de TI.

Esa misma cultura de transparencia, visibilidad y aprendizaje rápido se extiende a la gestión de incidentes.

¿Por qué? Porque los primeros pasos en la gestión de incidentes, que también son los más críticos, implican comprender lo que ha salido mal, poner a las personas adecuadas a trabajar en el problema y fomentar una cultura en la que no se hagan acusaciones.

La gestión de incidentes de DevOps exige una cultura comunicativa abierta y sin acusaciones entre los desarrolladores y los equipos de operaciones de TI, así como establecer procesos ligeros que mejoren la fiabilidad de los servicios de TI, aumenten la satisfacción de los clientes y generen valor empresarial. Los ingenieros de DevOps pueden ayudarte a implementar la cultura y las prácticas de DevOps.

En comparación, la ITIL es un conjunto prescrito de 26 procesos, procedimientos, tareas y checklists diseñados para mejorar prácticas específicas en la gestión de servicios de TI. La ITIL se centra en la calidad y la coherencia del servicio, así como en la mejora de la resiliencia de los sistemas.

Una de las ventajas de la ITIL es que las organizaciones que desean mejorar la ITSM pueden comenzar con prácticas recomendadas prediseñadas en lugar de empezar desde cero. Además, aunque algunas personas creen que la ITIL es más adecuada para grandes empresas, este marco es lo bastante flexible como para que las empresas de menor tamaño puedan seleccionar cuidadosamente los procesos que tengan sentido para su negocio y seguir encontrando valor.

Una de las desventajas de la ITIL (en el caso de que tengas prisa por cambiar tu proceso de respuesta ante incidentes) es que puede implicar una gestión formal de los cambios y el asesoramiento por parte de expertos, lo cual retrasa la obtención de mejoras.

En el caso de los equipos que desean ponerse manos a la obra de inmediato, el enfoque de gestión de incidentes de DevOps les ayudará a unirse y a materializar beneficios de inmediato.

El proceso de gestión de incidentes de DevOps

El enfoque de DevOps para la gestión de incidentes no se diferencia demasiado de los pasos tradicionales para gestionar los incidentes de forma eficaz. La gestión de incidentes de DevOps incluye un énfasis explícito en implicar a los equipos de desarrolladores desde el principio (incluidos a los que trabajan de guardia) y en asignar el trabajo en función de la experiencia, no de los cargos laborales.

1. Detección
En lugar de esperar que no se produzcan nunca incidentes (porque no te quepa ninguna duda de que lo harán), los equipos de respuesta ante incidentes de DevOps valoran mucho la preparación. Trabajan de forma colaborativa para planificar sus respuestas a posibles incidentes identificando las deficiencias de los sistemas. Configuran herramientas de supervisión, sistemas de alerta y runbooks que ayudan a todos los miembros a saber con quién ponerse en contacto al detectar un incidente y qué hacer a continuación.

2. Respuesta
En lugar de tener a un único ingeniero de guardia que se responsabilice de responder a todos los incidentes en un turno de guardia, los equipos de gestión de incidentes de DevOps asignan a varios miembros del equipo para que estén disponibles en caso de escalaciones. Si el ingeniero de guardia asignado no puede resolver un incidente por su cuenta, tiene un runbook listo que le sirve de guía. El ingeniero de guardia puede convocar a las personas adecuadas para evaluar el impacto y el nivel de gravedad del problema, así como escalarlo a los usuarios de respuesta adecuados.

3. Resolución
Cuando llega el momento de responder a un incidente, los equipos de gestión de incidentes de DevOps suelen ser capaces de encontrar una solución con rapidez. Esto se debe a que, en conjunto, están más familiarizados con la aplicación o el código del sistema porque fueron ellos mismos quienes lo programaron. Además, con la ventaja combinada de una preparación avanzada y buenos sistemas de comunicación, pueden hacer el trabajo de resolución del incidente, gracias a lo cual alcanzan una solución más rápido que un equipo de respuesta externo que examina el código por primera vez.

4. Análisis
Los equipos de gestión de incidentes de DevOps cierran todo incidente con un proceso de análisis retrospectivo sin acusaciones, mediante el cual se reúnen para compartir información, métricas y lecciones aprendidas con el objetivo de mejorar constantemente la resiliencia de sus sistemas, así como de resolver los incidentes futuros de forma rápida y eficiente.

5. Preparación
Una vez resuelto un incidente, efectuados todos los pasos de corrección y restaurado el sistema, los equipos de gestión de incidentes de DevOps toman distancia para evaluar su nivel de preparación para el próximo incidente. Toman lo que han aprendido en el proceso de análisis retrospectivo, actualizan sus runbooks y efectúan todos los ajustes necesarios en las herramientas de supervisión y los sistemas de alerta. Además, el énfasis del DevOps en la mejora continua se aplica al personal y al equipo, no solo a la tecnología. Después de un incidente, todos y cada uno de los miembros del equipo están mejor preparados para el siguiente.

Prácticas recomendadas para los equipos eficaces de GI de DevOps

Adoptar un enfoque de DevOps para la respuesta ante incidentes puede propiciar una mejora de la comunicación entre los equipos de desarrollo y de operaciones de TI, una agilización de la respuesta y corrección de incidentes, y un sistema más resiliente.

Automatiza los procesos y los flujos de trabajo
Integra tus herramientas de centro de asistencia, supervisión, generación de tickets, gestión de activos/CMDB y de chat para optimizar las alertas y flujos de trabajo de incidentes de TI a fin de garantizar que se notifique a las personas adecuadas con la información que necesitan para empezar a trabajar en una solución. Configura los runbooks con flujos de trabajo predefinidos para que el personal pueda ponerse manos a la obra con brío cuando se produzca un incidente.

Comunicaos entre equipos
Procura que los miembros de tus equipos puedan comunicarse en toda la organización con herramientas de chat en tiempo real. Usa herramientas que creen un registro del incidente para que cualquiera pueda intervenir en cualquier momento y ponerse al día sobre lo que ha sucedido y lo que se está haciendo.

Usa el enfoque sin acusaciones
En cuanto hayáis resuelto el incidente, reuníos en equipo para revisar lo que ha sucedido en una sesión de análisis retrospectivo sin acusaciones. Procurad no señalar a nadie con el dedo y centraos en intercambiar información que ayude a todos a hacer mejor su trabajo y contribuya a una mayor fiabilidad del sistema.

Identifica los beneficios para la empresa y céntrate en ellos
La respuesta ante incidentes de DevOps es algo más que un mecanismo para mejorar la comunicación: es una forma de garantizar que los desarrolladores y las operaciones colaboren para ofrecer un valor comercial real. Haz un seguimiento de métricas tales como el tiempo medio de detección (MTTD), el tiempo medio de reparación (MTTR) y el tiempo medio entre fallos (MTBF) para conocer el ritmo al que mejora tu equipo.

Utiliza la planificación de las guardias para colocar a los desarrolladores y administradores de sistemas como SRE
En los equipos de DevOps, las fronteras entre desarrollador y administrador de sistemas empiezan a difuminarse, y quienes responden ante el incidente suelen convertirse en ingenieros de fiabilidad del sitio (SRE). Aun así, es probable que las personas tengan conocimientos especializados en el código de la aplicación o de la infraestructura. Configura tu planificación de las guardias para asegurarte de contar con la combinación adecuada de conocimientos teóricos y prácticos para responder ante los incidentes.

A continuación
SRE