REL08-BP05 Desplegar cambios con automatización - AWS Well-Architected Framework

REL08-BP05 Desplegar cambios con automatización

Las implementaciones y la aplicación de parches se automatizan para eliminar su impacto negativo.

Los cambios en los sistemas de producción son una de las mayores áreas de riesgo para muchas organizaciones. Consideramos que los despliegues son un problema de primera clase que se debe resolver junto con los problemas comerciales que nuestro software aborda. Hoy en día, significa el uso de la automatización siempre que sea práctico en las operaciones, incluidas las pruebas y la implementación de cambios, la adición o eliminación de capacidad y la migración de datos.

Resultado deseado: incorpore seguridad automatizada de despliegue en el proceso de lanzamiento con extensas pruebas de preproducción, reversiones automáticas y despliegues de producción escalonados. Esta automatización minimiza la posible repercusión en producción causada por despliegues fallidos. Además, los desarrolladores ya no tienen que vigilar activamente los despliegues en producción.

Antipatrones usuales:

  • Los cambios se realizan de forma manual.

  • Se salta los pasos de la automatización mediante flujos de trabajo de emergencia manuales.

  • No sigue sus planes y procesos establecidos a favor de plazos más rápidos.

  • Realiza despliegues de seguimiento rápidos sin dejar tiempo de incorporación.

Beneficios de establecer esta práctica recomendada: cuando se utiliza la automatización para desplegar todos los cambios, se elimina la posibilidad de que se introduzcan errores humanos y se ofrece la posibilidad de realizar pruebas antes de cambiar la producción. Al realizar este proceso antes de la fase de producción, se verifica que los planes estén completos. Además, con la reversión automática al proceso de lanzamiento se pueden identificar los problemas de producción y devolver la carga de trabajo a su estado operativo anterior.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio

Guía para la implementación

Automatice su canalización de despliegue. Las canalizaciones de implementación le permiten invocar pruebas automatizadas, detectar anomalías y detener la canalización en un paso determinado antes de la implementación en producción o revertir automáticamente un cambio. Una parte integral de esto es la adopción de la cultura de integración continua y entrega/despliegue continuos (CI/CD), en la que una confirmación o un cambio de código pasan por varias etapas automatizadas, desde las etapas de creación y prueba hasta el despliegue en entornos de producción.

Aunque la sabiduría convencional sugiere que mantenga a las personas informadas sobre los procedimientos operativos más difíciles, le recomendamos que automatice los procedimientos más difíciles por esa misma razón.

Pasos para la implementación

Siga estos pasos de automatización de los despliegues para eliminar las operaciones manuales:

  • Configure un repositorio de código para almacenar su código de forma segura: utilice AWS CodeCommit para crear un repositorio seguro basado en Git.

  • Configure un servicio de integración continua para compilar el código fuente, ejecutar pruebas y crear artefactos de despliegue: para configurar un proyecto de compilación, consulte «Getting started with AWS CodeBuild using the console».

  • Configure un servicio de despliegue que automatice los despliegues de aplicaciones y gestione la complejidad de las actualizaciones de las aplicaciones sin depender de despliegues manuales propensos a errores: AWS CodeDeploy automatiza los despliegues de software en una variedad de servicios de computación, como Amazon EC2, AWS Fargate, AWS Lambda y sus servidores locales. Para configurar estos pasos, consulte «Getting started with CodeDeploy».

  • Configure un servicio de entrega continua que automatice sus canalizaciones de lanzamiento para obtener actualizaciones de aplicaciones e infraestructuras más rápidas y fiables: considere la posibilidad de usar AWS CodePipeline para ayudarlo a automatizar sus canalizaciones de lanzamiento. Para obtener más información, consulte los tutoriales de CodePipeline.

Recursos

Prácticas recomendadas relacionadas:

Documentos relacionados:

Vídeos relacionados: