Actividades previas al despliegue - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Actividades previas al despliegue

Diseño del entorno

El entorno en el que se prueban y evalúan las aplicaciones influyen en el grado de minuciosidad con que se puede realizar la prueba y en la confianza que se deposita en que esos resultados reflejan con precisión lo que ocurrirá en la fase de producción. Es posible que pueda realizar algunas pruebas de integración localmente en máquinas de desarrolladores mediante servicios como Amazon DynamoDB (consulte Configuración de DynamoDB local en la documentación de DynamoDB). Sin embargo, en algún momento tendrá que realizar las pruebas en un entorno que replique su entorno de producción para obtener la máxima confianza en los resultados. Este entorno conllevará costes, por lo que le recomendamos que adopte un enfoque gradual o por etapas para sus entornos, de forma que los entornos similares a los de producción aparezcan más adelante.

Prueba de integración

Las pruebas de integración son el proceso de comprobar que un componente bien definido de una aplicación desempeña sus funciones correctamente cuando funciona con dependencias externas. Esas dependencias externas pueden ser otros componentes desarrollados a medida, AWS servicios que utilice para su aplicación, dependencias de terceros y dependencias locales.  Esta guía se centra en las pruebas de integración que demuestran la resiliencia de la aplicación. Se supone que ya existen pruebas unitarias y de integración que demuestran la precisión funcional del software.

Le recomendamos que diseñe pruebas de integración que comprueben específicamente los patrones de resiliencia que ha implementado, como los patrones de los disyuntores o la reducción de carga (consulte la etapa 2: Diseño e implementación). Las pruebas de integración orientadas a la resiliencia suelen implicar aplicar una carga específica a la aplicación o introducir interrupciones intencionadas en el entorno mediante el uso de capacidades como ().AWS Fault Injection ServiceAWS FIS Lo ideal sería ejecutar todas las pruebas de integración como parte de su proceso de CI/CD y asegurarse de ejecutar las pruebas cada vez que se ejecute el código. Esto le ayuda a detectar y reaccionar rápidamente ante cualquier cambio en el código o la configuración que suponga una infracción de sus objetivos de resiliencia. Las aplicaciones distribuidas a gran escala son complejas, e incluso los cambios más pequeños pueden afectar significativamente a la resiliencia de partes aparentemente no relacionadas de la aplicación. Intenta ejecutar tus pruebas en cada confirmación. AWS proporciona un excelente conjunto de herramientas para operar su canalización de CI/CD y otras DevOps herramientas. Para obtener más información, consulte la Introducción a DevOps AWS on en el AWS sitio web.

Canalizaciones de despliegue automatizadas

El despliegue y las pruebas en sus entornos de preproducción son una tarea repetitiva y compleja que es mejor dejar en manos de la automatización. La automatización de este proceso libera recursos humanos y reduce la posibilidad de errores. El mecanismo para automatizar este proceso a menudo se denomina canalización. Cuando cree su canalización, le recomendamos que configure una serie de entornos de prueba que se acerquen cada vez más a su configuración de producción. Utiliza esta serie de entornos para probar repetidamente la aplicación. El primer entorno proporciona un conjunto de capacidades más limitado que el entorno de producción, pero implica un costo significativamente menor. Los entornos posteriores deberían añadir servicios y ampliarse para reflejar mejor el entorno de producción.

Comience por realizar pruebas en el primer entorno. Una vez que las implementaciones superen todas las pruebas del primer entorno de prueba, deje que la aplicación se ejecute con cierta cantidad de carga durante un período de tiempo para comprobar si se produce algún problema con el tiempo. Confirme que ha configurado la observabilidad correctamente (consulte Precisión de las alarmas más adelante en esta guía) para poder detectar cualquier problema que pueda surgir. Cuando este período de observación se haya completado correctamente, despliegue la aplicación en el siguiente entorno de pruebas y repita el proceso, añadiendo pruebas adicionales o cargándolas según lo permita el entorno. Una vez que haya probado suficientemente la aplicación de este modo, puede utilizar los métodos de implementación que configuró previamente para implementar la aplicación en producción (consulte Definir estrategias de CI/CD, anteriormente en esta guía). El artículo Automatizar despliegues seguros y sin intervención en la Amazon Builders' Library es un recurso excelente que describe cómo Amazon automatiza el despliegue de código. La cantidad de entornos que preceden a la implementación de producción variará en función de la complejidad de la aplicación y de los tipos de dependencias que tenga.

Prueba de carga

A primera vista, las pruebas de carga se parecen a las pruebas de integración. Se prueba una función discreta de la aplicación y sus dependencias externas para comprobar que funciona según lo esperado. Por lo tanto, las pruebas de carga van más allá de las pruebas de integración y se centran en el funcionamiento de la aplicación con cargas bien definidas. Las pruebas de carga requieren la verificación de la funcionalidad correcta, por lo que deben realizarse después de una prueba de integración exitosa. Es importante entender qué tan bien responde la aplicación a las cargas esperadas y cómo se comporta cuando la carga supera las expectativas. Esto le ayuda a comprobar que ha implementado los mecanismos necesarios para garantizar que la aplicación siga siendo resistente ante una carga extrema. Para obtener una guía completa sobre las pruebas de carga AWS, consulte las pruebas de carga distribuidas AWS en la biblioteca de AWS soluciones.