OPS06-BP02 Despliegues de prueba - AWS Well-Architected Framework

OPS06-BP02 Despliegues de prueba

Pruebe los procedimientos de lanzamiento en preproducción utilizando la misma configuración de despliegue, controles de seguridad, pasos y procedimientos que en producción. Valide que todos los pasos desplegados se completen según lo esperado, como la inspección de archivos, configuraciones y servicios. Pruebe más a fondo todos los cambios con pruebas funcionales, de integración y de carga, junto con cualquier supervisión, como la comprobación de estado. Al realizar estas pruebas, puede identificar los problemas de despliegue con prontitud y tiene la oportunidad de planificarlos y mitigarlos antes de llegar a producción.

Puede crear entornos paralelos temporales para probar cada cambio. Automatice el despliegue de los entornos de prueba mediante la infraestructura como código (IaC) para reducir la cantidad de trabajo que implica y garantizar la estabilidad, la coherencia y una entrega de características más rápida.

Resultado deseado: su organización adopta una cultura de desarrollo basada en pruebas que incluye el despliegue de pruebas. Esto garantiza que los equipos se centren en ofrecer valor empresarial en lugar de administrar las versiones. Los equipos participan desde el principio de la identificación de los riesgos del despliegue para determinar el curso de mitigación adecuado.

Patrones comunes de uso no recomendados:

  • Durante las versiones de producción, los despliegues no probados provocan problemas frecuentes que requieren la solución de problemas y la escalada.

  • Su versión contiene infraestructura como código (IaC) que actualiza los recursos existentes. No está seguro de si IaC se ejecuta correctamente o si afecta a los recursos.

  • Despliega una característica nueva en su aplicación. No funciona según lo previsto y no hay visibilidad hasta que los usuarios afectados lo denuncien.

  • Actualiza sus certificados. Instala accidentalmente los certificados en los componentes incorrectos, lo que pasa desapercibido y afecta a los visitantes del sitio web porque no se puede establecer una conexión segura con el sitio web.

Beneficios de establecer esta práctica recomendada: las exhaustivas pruebas en la preproducción de los procedimientos de despliegue y los cambios introducidos por ellos minimizan la posible repercusión en producción causada por las etapas de despliegue. Esto aumenta la confianza durante el lanzamiento de producción y minimiza el soporte operativo sin ralentizar la velocidad de los cambios que se introducen.

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

Guía para la implementación

Probar el proceso de despliegue es tan importante como probar los cambios que resultan del despliegue. Esto se puede lograr probando los pasos de despliegue en un entorno de preproducción que refleje la producción lo más fielmente posible. Los problemas más habituales, como pasos de despliegue incompletos o incorrectos o configuraciones incorrectas, pueden detectarse antes de pasar a producción. Además, puede poner a prueba sus pasos de recuperación.

Ejemplo de cliente

Como parte de su canalización de integración y entrega continuas (CI/CD), AnyCompany Retail lleva a cabo los pasos definidos necesarios para lanzar actualizaciones de infraestructura y software para sus clientes en un entorno similar al de producción. La canalización se compone de comprobaciones previas para detectar desviaciones (detectar cambios en los recursos realizados fuera de su IaC) en los recursos antes del despliegue, así como para validar las acciones que la IaC emprende tras su inicio. Valida los pasos de despliegue, como verificar que determinados archivos y configuraciones estén en su sitio y que los servicios estén en estado de ejecución y respondan correctamente a las comprobaciones de estado del host local antes de volver a registrarse en el equilibrador de carga. Además, todos los cambios se someten a una serie de pruebas automatizadas, como pruebas funcionales, de seguridad, de regresión, de integración y de carga.

Pasos para la implementación

  1. Realice comprobaciones previas a la instalación para reflejar el entorno de preproducción en producción.

    1. Utilice la detección de desviaciones para detectar cuándo se han cambiado los recursos fuera de AWS CloudFormation.

    2. Utilice los conjuntos de cambios para validar que la intención de una actualización de la pila coincida con las acciones que AWS CloudFormation lleva a cabo cuando se inicia el conjunto de cambios.

  2. Esto desencadena un paso de aprobación manual en AWS CodePipeline para autorizar el despliegue en el entorno de preproducción.

  3. Utilice configuraciones de despliegue como archivos de AWS CodeDeploy AppSpec para definir los pasos de despliegue y validación.

  4. Cuando proceda, integre AWS CodeDeploy con otros servicios de AWS o bien integre AWS CodeDeploy con productos y servicios de los socios.

  5. Supervise los despliegues con Amazon CloudWatch, AWS CloudTrail y las notificaciones de eventos de Amazon SNS.

  6. Realice pruebas automatizadas posteriores al despliegue, incluidas pruebas funcionales, de seguridad, de regresión, de integración y de carga.

  7. Solucione los problemas de despliegue.

  8. La validación correcta de los pasos precedentes debería iniciar un flujo de trabajo de aprobación manual para autorizar el despliegue en producción.

Nivel de esfuerzo para el plan de implementación: Alto

Recursos

Prácticas recomendadas relacionadas:

Documentos relacionados:

Vídeos relacionados:

Ejemplos relacionados: