¿En qué consiste el pilar 5 “Excelencia Operacional” de AWS?
El pilar de excelencia operacional incluye las practicas y procedimientos operacionales utilizados para manejar las cargas de trabajo en producción.
Esto incluye como los cambios planificados son ejecutados, asi como respuestas a eventos operacionales no esperados.
La ejecución de cambios y las respuestas deben ser automatizadas. Todos los procesos y procedimientos de excelencia operacional deben estar documentados, probados y regularmente revisados.
Principios de Diseño
- Realizar operaciones con código.
- Alinear procesos de operaciones a los objetivos del negocio.
- Realizar cambios regulares, pequeños e incrementales.
- Probar las respuestas de eventos no esperados (chaos monkey).
Elementos del Principio de Diseño
- Preparación.
- Operación.
- Respuesta.
¿Cómo se lleva acabo la preparación?
- La preparación efectiva es requerida para conducir la excelencia operacional.
- Los checklists permitirán asegurarse que las cargas de trabajo están listas para producción, operación y prevenir promoción no intencionada sin efectiva preparación.
- Las cargas de trabajo consisten de guías de operaciones que los equipos de operations pueden referir para realizar tareas diarias.
- Las guías deben contener indicaciones para los eventos de operación inesperados.
- Las guías deben incluir planes de respuesta, así como caminos para escalar y notificaciones a los interesados.
¿Cuáles son las mejores prácticas para la preparación?
Existen varios métodos y características que pueden ser utilizadas para para tener lista el soporte operacional, y la habilidad de preparar para la operación normal del día a día, así como los eventos operacionales inesperados.
CloudFormation puede ser utilizado para asegurarse que los ambientes contienen todos los recursos cuando se despliega a producción, y que la configuración del ambiente esta basada en un las mejores prácticas que han sido probadas, lo que reduce la oportunidad de error humano.
AutoScaling permite responder a las cargas de trabajo cuando los eventos relacionados al negocio afectan las necesidades operacionales.
Servicios como AWS Config con las características de las reglas de AWS Config crean mecanismos para monitorear automáticamente y responder a cambios en las cargas de trabajo de AWS y sus ambientes.
También es importante utilizar características como tags para asegurarse que todos los recursos en una carga de trabajo puede ser fácilmente identificados cuando sea necesario durante operaciones y respuestas.
¿Cuáles preguntas ayudan a determinar si se lleva acabo una correcta preparación?
- ¿Cuáles son las mejores prácticas para las operaciones de la nube que se están utilizando?
- ¿Cómo se esta haciendo el manejo de la configuración para sus cargas de trabajo?
Mejores practicas para la Preparación
Este seguro que la documentación no se vuelva viciada u obsoleta conforme los procedimientos cambian. Sin diseños de la aplicación, configuración del ambiente, configuración de los recursos, planes de respuesta, planes de mitigación, la documentación no esta completa. Si la documentación no esta actualizada y probada regularmente, no sera útil cuando operaciones inesperadas ocurran. Si las cargas de trabajo no son revisadas antes de ir a producción, las operaciones serán afectadas cuando errores no detectados ocurran. Si los recursos no son documentados, cuando los eventos operacionales ocurran, determinar cuanto tomara en responder sera difícil mientra que los recursos correctos son identificados.
Las operaciones deben ser estandarizadas y manejables en una rutina base. El foco debe ser la automatización, pequeños cambios frecuentes, verificación regular de la calidad de pruebas y mecanismos definidos de monitoreo, auditoría, roll backs, y revisión de cambios. Los cambios no deben ser largos y esporádicos, no deben requerir que se apague el sistema, no deben requerir ejecución manual. Un amplio rango de errores y métricas que están basadas en indicadores operacionales para cargas de trabajo deben ser recolectadas y revisadas para asegurarse de la operación continua.
En AWS se puede utilizar integración continua para despliegues en pipelines. El proceso de despliegue sea manual o automatizado, debe ser probado y estar basado en pequeños cambios incrementales, y versiones monitoreadas. Usted debe ser capaz de revertir cambios que han sido introducidos por errores operaciones sin causar impactos operacionales.
¿Preguntas para determinar las mejores prácticas para operaciones?
Como se esta evolucionando con las cargas de trabajo mientras de minimizan los impactos de un cambio.
Como se mantienen las cargas de trabajo para garantizar que se esta operando como se desea.
Las operaciones de rutinas así como las respuestas a eventos no planeados deben ser automatizadas.
Los procesos manuales de despliegue, liberación, cambios y rollbacks deben ser evitados.
La liberación (releases) no debe ser largos bloques de son realizados infrecuentemente.
Los rollbacks son mas difíciles en grandes cambios, el no tener un plan de contingencia para los rollbacks detendrá la ejecución de las operaciones.
Alinee el monitoreo con las necesidades del negocio, de tal manera que las respuestas sea efectivas y se mantenga la continuidad del negocio.
El monitoreo general y no centralizado, con respuestas que son manuales causara impacto en las operaciones durante eventos inesperados.
Respuestas
Las respuestas a eventos operacionales inesperados deben ser automatizadas (no solo para alertas, sino también para mitigar, remediar, restaurar y recuperar).
Las alertas deben ser en tiempo y no deben invocar escaladas cuando no son adecuadas a mitigan el impacto de un evento operacional.
La garantía de calidad de los mecanismos debe estar en su lugar, para automáticamente recuperar despliegues fallidos.
En AWS hay varios mecanismos para asegurarse que alertas y notificaciones en respuesta a eventos operaciones no planeados existan así como respuestas automatizadas:
Preguntas enfocadas en consideraciones de operaciones para la excelencia operacional:
- ¿Cómo responde a eventos operacionales no planeados?
- ¿Cómo maneja el escalamiento para responder a eventos operacionales no planeados?
Preparación
AWS provee un inventario detallado de todos los recursos de configuración de AWS, y continuamente almacena los cambios de la configuración.
AWS Service Catalog ayuda a crear un grupo de servicios estandarizado de ofertas que están alineadas a las mejores practicas.
El diseño de las cargas de trabajo que utiliza automatización con servicios como AutoScaling, y Amazon SQS, son buenos métodos para asegurarse de la operación continua en caso de eventos de operación inesperados.
Servicios de AWS para el manejo de Operaciones
- AWS Code Commit
- AWS Code Deploy
- AWS Code Pipeline
Utilice AWS SDK’s a una librería de terceros para automatizar los cambios operacionales. Utilice CloudTrail para auditar y monitorear los cambios realizados al también de de AWS.
Respuestas
Tome ventaja de todos las características de Amazon CloudWatch para respuestas efectivas y automatizadas. Las alarmas pueden ser definidas con una tolerancia para alertar y notificar, y los eventos pueden disparar notificaciones y respuestas automáticas.