Este contenido está desactualizado. Esta versión de Well-Architected Framework se encuentra ahora en: https://docs.aws.amazon.com/es_es/wellarchitected/2022-03-31/framework/operational-excellence.html
OPS 5: ¿Cómo reduce los defectos, facilita la corrección y mejora el flujo en la producción?
Adopte enfoques que mejoren el flujo de los cambios en la producción y que permitan
la refactorización, la retroalimentación rápida sobre la calidad y la corrección de
errores. Estos enfoques aceleran los cambios beneficiosos que se aplican a la fase
de producción, limitan los problemas implementados y permiten una rápida identificación
y solución de los problemas que acarrearon las actividades de implementación.
Recursos
CI/CD for Serverless Applications on AWS
Design with Ops in Mind
AWS Developer Tools
Prácticas recomendadas:
-
Utilizar el control de versiones:
Utilice el control de versiones para habilitar el seguimiento de los cambios y las
versiones.
-
Evaluar y validar los cambios:
Pruebe y valide los cambios para ayudar a limitar y detectar errores. Automatice las
pruebas a fin de reducir los errores causados por procesos manuales y, también, reducir
el nivel de esfuerzo necesario para realizar las pruebas.
-
Utilizar sistemas de administración de la configuración:
Utilice sistemas de administración de la configuración para realizar cambios en la
configuración y rastrearlos. Estos sistemas reducen los errores causados por los procesos
manuales y reducen el nivel de esfuerzo necesario para implementar cambios.
-
Utilizar sistemas de administración de implementaciones y creaciones:
Utilice sistemas de administración de implementaciones y creaciones. Estos sistemas
reducen los errores causados por los procesos manuales y reducen el nivel de esfuerzo
necesario para implementar cambios.
-
Llevar a cabo la administración de parches:
Lleve a cabo la administración de parches para obtener características, abordar problemas
y mantener la conformidad con la gobernanza. Automatice la administración de parches
a fin de reducir los errores causados por procesos manuales y, también, reducir el
nivel de esfuerzo necesario para aplicar parches.
-
Compartir estándares de diseño:
Comparta las prácticas recomendadas en los equipos a fin de incrementar el conocimiento
y maximizar los beneficios de los esfuerzos de desarrollo.
-
Implementar prácticas para mejorar la calidad del código:
Implemente prácticas para mejorar la calidad del código y minimizar los defectos.
Por ejemplo, el desarrollo basado en pruebas, las revisiones de códigos y la adopción
de estándares.
-
Utilizar varios entornos:
Utilice varios entornos para experimentar, desarrollar y evaluar su carga de trabajo.
Utilice niveles de control en crecimiento a medida que los entornos se acercan a la
producción con el fin de adquirir confianza en que las cargas de trabajo funcionarán
como se previó al momento de la implementación.
-
Realizar cambios reversibles, pequeños y frecuentes:
Los cambios frecuentes, pequeños y reversibles reducen el alcance y el impacto de
un cambio. Esto facilita la resolución de problemas, permite correcciones más rápidas
y proporciona la opción de restaurar los cambios.
-
Automatizar por completo la integración y la implementación:
Automatice la creación, implementación y prueba de la carga de trabajo. Esto reduce
los errores causados por los procesos manuales y reduce el esfuerzo necesario para
implementar los cambios.
Plan de mejora
Utilizar el control de versiones
Utilizar el control de versiones:
Mantenga los recursos en repositorios con control de versiones. De esta manera, se
puede rastrear cambios, implementar nuevas versiones, detectar cambios en versiones
existentes y revertir a versiones anteriores (por ejemplo, restaurar a un estado correcto
conocido en caso de error). Integre las capacidades de control de versiones de sus
sistemas de administración de configuración en sus procedimientos.
Introduction to AWS CodeCommit
What is AWS CodeCommit?
Evaluar y validar los cambios
Evaluar y validar los cambios:
Se deben probar los cambios y se deben validar los resultados en todas las etapas
del ciclo de vida (por ejemplo, desarrollo, prueba y producción). Utilice los resultados
de las pruebas para confirmar nuevas características y mitigar los riesgos y el impacto
de implementaciones fallidas. Automatice las pruebas y la validación para garantizar
la coherencia de la revisión, a fin de reducir los errores causados por procesos manuales
y, también, reducir el nivel de esfuerzo necesario.
What is AWS CodeBuild?
Local build support for AWS CodeBuild
Utilizar sistemas de administración de la configuración
Utilizar sistemas de administración de la configuración:
Utilice sistemas de administración de configuración para hacer un seguimiento y aplicar
cambios con el fin de reducir errores causados por los procesos manuales y reducir
el nivel de esfuerzo.
Infrastructure configuration management
AWS Config
What is AWS Config?
Introduction to AWS CloudFormation
What is AWS CloudFormation?
AWS OpsWorks
What is AWS OpsWorks?
Introduction to AWS Elastic Beanstalk
What is AWS Elastic Beanstalk?
Utilizar sistemas de administración de implementaciones y creaciones
Utilizar sistemas de administración de implementaciones y creaciones:
Utilice sistemas de administración de implementaciones y creaciones para hacer un
seguimiento y aplicar cambios, para reducir errores causados por los procesos manuales
y para reducir el nivel de esfuerzo. Automatice completamente la canalización de implementación
e integración del código de registro mediante la creación, realización de pruebas,
implementación y validación. Esto reduce el tiempo de espera, permite una mayor frecuencia
de cambio y reduce el nivel de esfuerzo.
What is AWS CodeBuild?
Continuous integration best practices for software development
Slalom: CI/CD for serverless applications on AWS
Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
What is AWS CodeDeploy?
Llevar a cabo la administración de parches
Administración de parches:
Aplique parches a los sistemas para resolver problemas, para obtener características
o capacidades deseadas y para mantener la conformidad con la política de gobernanza
y los requisitos de soporte del proveedor. En sistemas inmutables, implemente el conjunto
adecuado de parches para obtener el resultado deseado. Automatice el mecanismo de
administración de parches a fin de reducir el tiempo transcurrido para aplicar el
parche, los errores causados por procesos manuales y el nivel de esfuerzo necesario
para aplicar parches.
AWS Systems Manager Patch Manager
Compartir estándares de diseño
Compartir estándares de diseño:
Comparta las prácticas recomendadas existentes, los estándares de diseño, las listas
de verificación, los procedimientos operativos y los requisitos de guía y gobernanza
entre todos los equipos para reducir la complejidad y maximizar los beneficios de
los esfuerzos de desarrollo. Asegúrese de que existan procedimientos para solicitar
cambios, incorporaciones y excepciones a los estándares de diseño para favorecer la
mejora e innovación continuas. Asegúrese de que los equipos conozcan el contenido
publicado para poder aprovecharlo y limitar la repetición del trabajo y el esfuerzo
desperdiciado.
Delegating access to your AWS environment
Share an AWS CodeCommit repository
Easy authorization of AWS Lambda functions
Sharing an AMI with specific AWS accounts
Speed template sharing with an AWS CloudFormation designer URL
Using AWS Lambda with Amazon SNS
Implementar prácticas para mejorar la calidad del código
Implementar prácticas para mejorar la calidad del código:
Implemente prácticas para mejorar la calidad del código a fin de minimizar los defectos
y el riesgo de implementarlos. Por ejemplo, el desarrollo basado en pruebas, la programación
en pares, las revisiones de códigos y la adopción de estándares.
Utilizar varios entornos
Utilizar varios entornos:
Proporcione a los desarrolladores entornos de prueba con controles minimizados para
que puedan experimentar. Ofrezca entornos individuales de desarrollo para permitir
el trabajo en paralelo y, de esta forma, aumentar la agilidad de desarrollo. Implemente
controles más rigurosos en los entornos que aborden la producción para permitirles
a los desarrolladores la libertad necesaria para innovar. Utilice Infrastructure as
Code y sistemas de administración de configuración para implementar entornos configurados
de manera coherente con los controles que están presentes en la fase de producción
con el fin de garantizar que los sistemas funcionen como se previó al momento de implementarlos.
Cuando los entornos no estén en uso, apáguelos para evitar costos asociados con recursos
inactivos (por ejemplo, sistemas de desarrollo durante la noche o los fines de semana).
Implemente entornos equivalentes a la producción cuando realice pruebas de carga para
facilitar resultados válidos.
What is AWS CloudFormation?
How do I stop and start Amazon EC2 instances at regular intervals using AWS Lambda?
Realizar cambios reversibles, pequeños y frecuentes
Realizar cambios reversibles, pequeños y frecuentes:
Los cambios frecuentes, pequeños y reversibles reducen el alcance y el impacto de
un cambio. Esto facilita la resolución de problemas, permite correcciones más rápidas
y proporciona la opción de restaurar los cambios. Además, aumenta la tasa a la cual
puede entregar valor a la empresa.
Automatizar por completo la integración y la implementación
Utilizar sistemas de administración de implementaciones y creaciones:
Utilice sistemas de administración de implementaciones y creaciones para hacer un
seguimiento y aplicar cambios, para reducir errores causados por los procesos manuales
y para reducir el nivel de esfuerzo. Automatice completamente la canalización de implementación
e integración del código de registro mediante la creación, realización de pruebas,
implementación y validación. Esto reduce el tiempo de espera, permite una mayor frecuencia
de cambio y reduce el nivel de esfuerzo.
What is AWS CodeBuild?
Continuous integration best practices for software development
Slalom: CI/CD for serverless applications on AWS
Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
What is AWS CodeDeploy?