Blog · 40

Dos actualizaciones la misma noche, un parche dentro del cierre de mes y un P1 dos horas después de un cambio con éxito: el calendario de cambios antes del CABTwo upgrades on the same night, a patch inside the month-end freeze and a P1 two hours after a successful change: the change calendar before the CAB

A partir de las peticiones de cambio, el mapa de servicios, el registro de congelaciones, los incidentes y las aprobaciones: las dos próximas semanas por día y servicio, los cambios que no están listos para el CAB, los que coinciden la misma noche o a través de las dependencias, los que caen dentro de una congelación, cambios estándar usados para trabajos con riesgo, emergencias en aumento, y la tasa de éxito del mes pasado, los incidentes tras un cambio, los trabajos sin autorizar y las revisiones pendientes.From the change requests, the business service map, the freeze register, the incidents and the approvals: the next two weeks by day and service, the changes not ready for the CAB, the ones that collide on the same night or through the dependencies, the ones inside a freeze, standard changes used for risky work, rising emergencies, and last month's success rate, incidents after changes, unauthorised work and overdue reviews.

El problema

El calendario de cambios de la herramienta de ITSM es una lista, y el CAB aprueba cada cambio por separado. Lo que la lista no enseña es cómo se relacionan los cambios entre sí y con el resto del mes: los cortafuegos del centro de datos y los switches del núcleo actualizados la misma noche por dos equipos distintos, ambos en el camino de la plataforma de trading; un parche de base de datos de la plataforma de trading programado dentro de la congelación del cierre de mes; un cambio de riesgo alto dado de alta dos días antes de su ventana y sin plan de marcha atrás; una actualización de firmware del almacenamiento de servicios críticos registrada como cambio estándar, así que nunca llega al CAB; un equipo que cada mes abre más emergencias por los mismos motivos; y un cambio cerrado con éxito dos horas antes de un P1 en la apertura del mercado, sin revisión posterior programada. La otra mitad del trabajo es la revisión de después, que enlaza con el kit de incidentes mayores que publiqué hace unos días: el incidente que sigue a un cambio es donde debería empezar la revisión del cambio.

Qué he hecho

  • Preparación para el CAB: cambios sin plan de marcha atrás, de pruebas o de implementación, con el riesgo sin evaluar o por debajo de lo que indican el impacto y el nivel del servicio, dados de alta dentro del plazo mínimo, sin aprobar cuando empiezan antes del CAB, sin responsable o fuera de la ventana de mantenimiento de su nivel.
  • Coincidencias: cambios que se solapan en el mismo elemento de configuración o servicio, cambios que afectan a los mismos servicios críticos a través de las dependencias, demasiados cambios de un equipo en una noche y cambios dentro de una congelación o un periodo de bloqueo sin una excepción aprobada.
  • Cambios de emergencia y estándar: el porcentaje de emergencias por mes y sus motivos, cambios estándar usados para trabajos con riesgo y emergencias que nunca se aprobaron después.
  • Resultados y equipos: la tasa de éxito del mes pasado y su evolución, cambios fallidos, incidentes vinculados a un cambio o abiertos en el mismo servicio pocas horas después, cambios que se pasaron de su ventana, trabajos sin autorizar, revisiones posteriores pendientes, y los equipos con poca tasa de éxito o con emergencias en aumento.
  • report.html con un calendario de dos semanas por día y servicio donde destacan las coincidencias, las congelaciones y los huecos, un estado por área y un veredicto global; cab-pack.md con el orden del día del CAB y la revisión mensual; CSV de cada área; y un exportador de solo lectura en PowerShell para la Table API de ServiceNow (cambios, incidentes, aprobaciones y el mapa de servicios).

Cómo está hecho

Python solo con la librería estándar. La demo es un banco inventado con sala de trading, revisado un lunes por la mañana antes del CAB: 16 servicios de negocio en tres niveles con sus dependencias, 263 peticiones de cambio de nueve equipos (tres meses de histórico y las dos próximas semanas), las aprobaciones, los incidentes y un registro de congelaciones con el cierre de mes y un rebalanceo de índices, con los problemas puestos a propósito. El impacto de cada cambio se calcula a través del mapa de dependencias, así que un cambio en la red troncal coincide con cualquier otro en los servicios que dependen de ella. 15 tests, un runbook para el CAB semanal y la revisión mensual de cambios, y un workflow de GitHub Actions que ejecuta los tests y regenera los datos de la demo y la captura.

Qué aprendí

De ser responsable de los procesos de incidentes, cambios y problemas y de participar en CAB y en revisiones de puesta en producción y aceptación del servicio; de la gestión de versiones, con su planificación, pruebas, marcha atrás y validación después de cada versión; de escribir procedimientos y runbooks de estos procesos y formar a otros para usarlos; de dirigir la respuesta técnica en incidentes mayores y los análisis posteriores; y de ServiceNow, EasyVista y HaloITSM, Jira y Confluence. Las lecciones que dan forma a la herramienta son que dos cambios en el mismo camino la misma noche suponen dos planes de marcha atrás para un solo síntoma; que el impacto de un cambio va por las dependencias, no por el nombre del servicio que pone el formulario; que el plazo mínimo es el tiempo que tienen otros para revisarlo; que un cambio estándar está preaprobado porque es rutinario, y una actualización de firmware del almacenamiento crítico no lo es; que las emergencias repetidas son un problema esperando a que alguien lo registre; y que un cambio seguido de un P1 no es un éxito, se cierre como se cierre.

Siguientes pasos

  • Leer el calendario de cambios desde la API de forma programada, para que el informe del CAB esté listo el lunes por la mañana sin exportaciones.
  • Leer las congelaciones desde los calendarios de bloqueo de la herramienta de ITSM en lugar de un CSV.
  • Comparar cada semana con la anterior: cambios movidos, coincidencias resueltas y revisiones cerradas.

¿Quieres llevarlo a tu entorno o adaptarlo a tu caso? Escríbeme y lo vemos.

The problem

The change calendar in the ITSM tool is a list, and the CAB approves each change on its own merits. What the list does not show is how the changes relate to each other and to the rest of the month: the data centre firewalls and the core switches upgraded the same night by two different teams, both in the path of the trading platform; a database patch on the trading platform booked inside the month-end close freeze; a high-risk change raised two days before its window with no backout plan; a firmware upgrade on the storage of critical services booked as a standard change, so it never reaches the CAB; one team raising more emergencies every month for the same reasons; and a change closed as successful two hours before a P1 at the market open, with no post-implementation review booked. The other half of the job is the review afterwards, which links with the major incident kit I published a few days ago: the incident that follows a change is where the change review should start.

What I built

  • Readiness for the CAB: changes without a backout, test or implementation plan, with the risk not assessed or below what the impact and the tier of the service suggest, raised inside the lead time, not approved when they start before the CAB, without an owner, or outside the maintenance window of their tier.
  • Collisions: overlapping changes on the same CI or service, changes that affect the same critical services through the dependencies, too many changes for one team on one night, and changes inside a freeze or blackout window without an approved exception.
  • Emergency and standard changes: the emergency share by month and its reasons, standard changes used for risky work, and emergency changes never approved afterwards.
  • Outcomes and teams: last month's success rate and the trend, unsuccessful changes, incidents linked to a change or opened on the same service within hours of one, overruns, unauthorised work, overdue post-implementation reviews, and the teams with a low success rate or rising emergencies.
  • report.html with a two-week calendar by day and service where collisions, freezes and gaps stand out, a status per area and an overall verdict; cab-pack.md with the CAB agenda and the monthly review; CSVs for every area; and a read-only PowerShell exporter for the ServiceNow Table API (changes, incidents, approvals and the service map).

How it is built

Python with the standard library only. The demo is a made-up bank with a trading floor, reviewed on a Monday morning before the CAB: 16 business services in three tiers with their dependencies, 263 change requests from nine teams (three months of history and the next two weeks), the approvals, the incidents and a freeze register with the month-end close and an index rebalance, with the problems placed on purpose. The impact of each change is worked out through the dependency map, so a change on the core network collides with anything on the services that depend on it. 15 tests, a runbook for the weekly CAB and the monthly change review, and a GitHub Actions workflow that runs the tests and rebuilds the demo data and the screenshot.

What I learned

From being process owner for incidents, changes and problems and taking part in CABs and in go-live and service acceptance reviews; from release management, with its planning, testing, rollback and validation after the release; from writing procedures and runbooks for these processes and training others to use them; from leading the technical response in major incidents and the post-mortems afterwards; and from ServiceNow, EasyVista and HaloITSM, Jira and Confluence. The lessons that shaped the tool are that two changes on the same path the same night mean two backout plans for one symptom; that the impact of a change runs through the dependencies, not through the name of the service in the form; that lead time is the time other people have to look; that a standard change is pre-approved because it is boring, and a firmware upgrade on critical storage is not; that repeated emergencies are a problem record waiting to be opened; and that a change followed by a P1 is not a success, however it was closed.

Next steps

  • Read the change calendar through the API on a schedule, so the pack is ready on Monday morning without exports.
  • Read the freezes from the blackout schedules of the ITSM tool instead of a CSV.
  • Compare each week with the previous one: changes moved, collisions resolved, reviews closed.

Want to bring it to your environment or adapt it to your case? Get in touch and we can look at it together.

Tech Career Lab · newsletter

¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.Found this useful? Every two weeks I send one practical idea for IT professionals: LinkedIn, projects, networking and hiring processes.

Apúntate y llévate las 33 ideasSign up and get the 33 ideas →