

# OPS 5 ¿Cómo reduce los defectos, facilita la reparación y mejora el flujo en la producción?
<a name="w2aac19b5b7b7"></a>

 Adopte enfoques que mejoren el flujo de cambios en la producción, que permitan la refactorización, la retroalimentación rápida sobre la calidad y la corrección de errores. Estos aceleran los cambios beneficiosos que se introducen en la producción, limitan los problemas implementados, y permiten una rápida identificación y solución de los problemas introducidos a través de las actividades de implementación. 

**Topics**
+ [OPS05-BP01 Usar control de versiones](ops_dev_integ_version_control.md)
+ [OPS05-BP02 Probar y validar los cambios](ops_dev_integ_test_val_chg.md)
+ [OPS05-BP03 Utilizar sistemas de administración de la configuración](ops_dev_integ_conf_mgmt_sys.md)
+ [OPS05-BP04 Utilizar sistemas de administración del desarrollo y el despliegue](ops_dev_integ_build_mgmt_sys.md)
+ [OPS05-BP05 Realizar la administración de parches](ops_dev_integ_patch_mgmt.md)
+ [OPS05-BP06 Compartir estándares de diseño](ops_dev_integ_share_design_stds.md)
+ [OPS05-BP07 Adoptar prácticas para mejorar la calidad del código](ops_dev_integ_code_quality.md)
+ [OPS05-BP08 Usar varios entornos](ops_dev_integ_multi_env.md)
+ [OPS05-BP09 Realizar cambios frecuentes, pequeños y reversibles](ops_dev_integ_freq_sm_rev_chg.md)
+ [OPS05-BP10 Automatizar completamente la integración y el despliegue](ops_dev_integ_auto_integ_deploy.md)

# OPS05-BP01 Usar control de versiones
<a name="ops_dev_integ_version_control"></a>

 Use el control de versiones para posibilitar el seguimiento de cambios y versiones. 

 Muchos servicios de AWS ofrecen funcionalidades de control de versiones. Utilice un sistema de control de revisiones o de orígenes como [AWS CodeCommit](https://aws.amazon.com/codecommit/) para administrar el código y otros artefactos, como las plantillas de [AWS CloudFormation](https://aws.amazon.com/cloudformation/) controladas por versiones de la infraestructura. 

 **Patrones de uso no recomendados comunes:** 
+  Ha estado desarrollando y almacenando el código en su estación de trabajo. Ha tenido un error de almacenamiento irrecuperable en la estación de trabajo y el código se ha perdido. 
+  Después de sobrescribir el código existente con sus cambios, reinicia la aplicación y ya no está operativa. No puede revertir el cambio. 
+  Tiene un bloqueo de escritura en un archivo de informe que otra persona necesita editar. Se pone en contacto con usted para pedirle que deje de trabajar en él para poder completar sus tareas. 
+  Su equipo de investigación ha estado trabajando en un análisis detallado que modelará su trabajo futuro. Alguien ha guardado accidentalmente su lista de la compra sobre el informe final. No puede revertir el cambio y tendrá que volver a crear el informe. 

 **Beneficios de establecer esta práctica recomendada:** Mediante el uso de las capacidades de control de versiones puede revertir fácilmente a los estados buenos conocidos, a las versiones anteriores, y limitar el riesgo de que se pierdan los activos. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Use el control de versiones: mantenga los activos en repositorios con control de versiones. Esto permite hacer un seguimiento de los cambios, implementar versiones nuevas, detectar cambios en las versiones existentes y volver a versiones anteriores (por ejemplo, revertir a un estado conocido correcto en caso de error). Integre en sus procedimientos las capacidades de control de versiones de sus sistemas de administración de la configuración. 
  +  [Introducción a AWS CodeCommit](https://youtu.be/46PRLMW8otg) 
  +  [¿Qué es AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [¿Qué es AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+  [Introducción a AWS CodeCommit](https://youtu.be/46PRLMW8otg) 

# OPS05-BP02 Probar y validar los cambios
<a name="ops_dev_integ_test_val_chg"></a>

 Pruebe y valide los cambios para limitar y detectar errores. Automatice las pruebas para reducir tanto los errores causados por los procesos manuales como el nivel de esfuerzo de las pruebas. 

 Muchos servicios de AWS ofrecen funcionalidades de control de versiones. Utilice un sistema de control de revisiones o de fuentes como [AWS CodeCommit](https://aws.amazon.com/codecommit/) para gestionar el código y otros artefactos, como las plantillas de [AWS CloudFormation](https://aws.amazon.com/cloudformation/) de control de versiones de la infraestructura. 

 **Patrones de uso no recomendados comunes:** 
+  Despliega su nuevo código en producción y los clientes empiezan a llamar porque su aplicación ya no funciona. 
+  Aplica nuevos grupos de seguridad para mejorar la seguridad de su perímetro. Funciona con consecuencias no deseadas; sus usuarios no pueden acceder a las aplicaciones. 
+  Modifica un método invocado por su nueva función. Otra función también dependía de ese método y ya no funciona. El problema no se detecta y entra en producción. La otra función no se invoca durante algún tiempo y finalmente falla en producción sin ninguna correlación con la causa. 

 **Beneficios de establecer esta práctica recomendada:** al realizar las pruebas y validar los cambios con antelación, podrá abordar los problemas con mínimos costes y limitar el impacto en sus clientes. Al realizar las pruebas antes del despliegue, se minimiza la introducción de errores. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Probar y validar cambios: los cambios deben probarse, y los resultados validarse en todas las etapas del ciclo de vida (por ejemplo, desarrollo, pruebas y producción). Use los resultados de las pruebas para confirmar características nuevas y mitigar el riesgo y las repercusiones de una implementación fallida. Automatice las pruebas y la validación para garantizar la sistematización de la revisión y reducir tanto los errores causados por los procesos manuales como el nivel de esfuerzo. 
  +  [¿Qué es AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Compatibilidad con compilación local para AWS CodeBuild](https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Herramientas para desarrolladores de AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Compatibilidad con compilación local para AWS CodeBuild](https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/) 
+  [¿Qué es AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 

# OPS05-BP03 Utilizar sistemas de administración de la configuración
<a name="ops_dev_integ_conf_mgmt_sys"></a>

 Utilice sistemas de administración de la configuración para efectuar modificaciones en la configuración y realizar un seguimiento de ellas. Estos sistemas reducen tanto los errores causados por los procesos manuales como el nivel de esfuerzo requerido para implementar los cambios. 

 La administración de la configuración estática establece valores al inicializar un recurso que se espera que permanezcan constantes durante toda la vida del recurso. Algunos ejemplos son el establecimiento de la configuración de un servidor web o de aplicaciones en una instancia o la definición de la configuración de un servicio de AWS en la [Consola de administración de AWS](https://docs.aws.amazon.com/awsconsolehelpdocs/index.html) a través de la [AWS CLI](https://aws.amazon.com/cli/). 

 La administración de la configuración dinámica establece valores en la inicialización que pueden cambiar o se espera que cambien durante la vida de un recurso. Por ejemplo, podría establecer un conmutador de características para habilitar la funcionalidad en su código a través de un cambio de configuración o cambiar el nivel de detalle del registro durante un incidente para capturar más datos y, después, volver a cambiar tras el incidente, con lo que se eliminan los registros ahora innecesarios y su gasto asociado. 

 Si tiene configuraciones dinámicas en sus aplicaciones que se ejecutan en instancias, contenedores, funciones sin servidor o dispositivos, puede utilizar [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) para administrarlas y desplegarlas en sus entornos. 

 En AWS, puede usar [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) para supervisar continuamente las configuraciones de sus recursos de AWS [en las cuentas y las regiones](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). Le permite hacer un seguimiento de su historial de configuración, comprender cómo un cambio de configuración afectaría a otros recursos y auditarlos con respecto a las configuraciones esperadas o deseadas mediante [Reglas de AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) y [Paquetes de conformidad de AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

 En AWS, puede crear canalizaciones de integración continua/despliegue continuo (CI/CD) con servicios como [Herramientas para desarrolladores de AWS](https://aws.amazon.com/products/developer-tools/) (por ejemplo, AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)y [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 Disponga de un calendario de cambios y haga un seguimiento cuando se planifiquen actividades o eventos empresariales u operativos importantes que puedan verse afectados por la implementación del cambio. Ajustar las actividades para administrar el riesgo en torno a esos planes. [AWS Systems Manager Change Calendar](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) proporciona un mecanismo para documentar bloques de tiempo como abiertos o cerrados a cambios y el motivo. También puede [compartir esa información](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-calendar-share.html) con otras Cuentas de AWS. Los scripts de AWS Systems Manager Automation se pueden configurar para que se adhieran al estado del calendario de cambios. 

 [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) se puede utilizar para programar el rendimiento de los scripts de AWS SSM Run Command o Automation, las invocaciones de AWS Lambda o las actividades de AWS Step Functions en momentos específicos. Marque estas actividades en su calendario de cambios para poder incluirlas en la evaluación. 

 **Patrones de uso no recomendados comunes:** 
+  Actualiza manualmente la configuración del servidor web en toda su flota y varios servidores dejan de responder debido a errores de actualización. 
+  Actualiza manualmente su flota de servidores de aplicaciones en el transcurso de muchas horas. La incoherencia en la configuración durante el cambio provoca comportamientos inesperados. 
+  Alguien ha actualizado sus grupos de seguridad y ya no se puede acceder a sus servidores web. Sin saber lo que se ha cambiado, se pierde mucho tiempo investigando el problema, lo que prolonga el tiempo de recuperación. 

 **Beneficios de establecer esta práctica recomendada:** La adopción de sistemas de administración de la configuración reduce el nivel de esfuerzo para realizar cambios y hacer un seguimiento de ellos, así como la frecuencia de los errores provocados por los procedimientos manuales. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Utilice sistemas de administración de la configuración: úselos para reducir tanto los errores causados por los procesos manuales como el nivel de esfuerzo. 
  +  [Administración de la configuración de la infraestructura](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
  +  [AWS Config](https://aws.amazon.com/config/) 
  +  [¿Qué es AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
  +  [Introducción a AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
  +  [¿Qué es AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
  +  [¿Qué es AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 
  +  [Introducción a AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 
  +  [¿Qué es AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+  [Herramientas para desarrolladores de AWS](https://aws.amazon.com/products/developer-tools/) 
+  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
+  [AWS Systems Manager Change Calendar](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) 
+  [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) 
+  [Administración de la configuración de la infraestructura](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
+  [¿Qué es AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [¿Qué es AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [¿Qué es AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
+  [¿Qué es AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+  [Introducción a AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
+  [Introducción a AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 

# OPS05-BP04 Utilizar sistemas de administración del desarrollo y el despliegue
<a name="ops_dev_integ_build_mgmt_sys"></a>

 Utilice sistemas de administración del desarrollo y la implementación. Estos sistemas reducen tanto los errores causados por los procesos manuales como el nivel de esfuerzo requerido para implementar los cambios. 

 En AWS, puede crear canalizaciones de integración y entrega continuas (CI/CD) utilizando servicios como las [herramientas para desarrolladores de AWS](https://aws.amazon.com/products/developer-tools/) (por ejemplo, AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/) y [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 **Patrones de uso no recomendados comunes:** 
+  Después de compilar su código en el sistema de desarrollo, copia el ejecutable en los sistemas de producción y no se inicia. Los archivos de registro locales indican que ha fallado debido a la falta de dependencias. 
+  Crea con éxito su aplicación con nuevas funcionalidades en su entorno de desarrollo y proporciona el código a Control de calidad. No pasa el control de calidad porque le faltan activos estáticos. 
+  El viernes, después de mucho esfuerzo, creó con éxito su aplicación manualmente en su entorno de desarrollo incluyendo sus funcionalidades recién codificadas. El lunes, no puede repetir los pasos que le permitieron crear con éxito su aplicación. 
+  Realiza las pruebas que ha creado para su nueva versión. A continuación, dedica la siguiente semana a configurar un entorno de pruebas y a realizar todas las pruebas de integración existentes, seguidas de las pruebas de rendimiento. El nuevo código tiene un impacto inaceptable en el rendimiento y debe desarrollarse y probarse de nuevo. 

 **Beneficios de establecer esta práctica recomendada:** al proporcionar mecanismos para gestionar las actividades de desarrollo y despliegue, se reduce el nivel de esfuerzo para realizar tareas repetitivas, se libera a los miembros del equipo para que se centren en sus tareas creativas de alto valor y se limita la introducción de errores de procedimientos manuales. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Usar sistemas de administración del desarrollo y el despliegue: utilice sistemas de administración del desarrollo y el despliegue para hacer el seguimiento de los cambios e implementarlos, y reducir tanto los errores causados por los procesos manuales como el nivel de esfuerzo. Automatice completamente el proceso de integración e implementación, desde el registro del código hasta la construcción, prueba, despliegue y validación. Esto acorta el plazo de entrega, permite una mayor frecuencia de cambio y reduce el nivel de esfuerzo. 
  +  [¿Qué es AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Prácticas recomendadas de integración continua para el desarrollo de software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: entrega e integración continuas para aplicaciones sin servidor en AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introducción a AWS CodeDeploy: despliegue automático de software con Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [¿Qué es AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Herramientas para desarrolladores de AWS](https://aws.amazon.com/products/developer-tools/) 
+  [¿Qué es AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [¿Qué es AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+  [Prácticas recomendadas de integración continua para el desarrollo de software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Introducción a AWS CodeDeploy: despliegue automático de software con Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: entrega e integración continuas para aplicaciones sin servidor en AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# OPS05-BP05 Realizar la administración de parches
<a name="ops_dev_integ_patch_mgmt"></a>

 Administre parches para ampliar las características, resolver problemas y mantener la conformidad con la gobernanza. Automatice la administración de parches para reducir tanto los errores causados por los procesos manuales como el nivel de esfuerzo requerido para aplicarlos. 

 La administración de parches y vulnerabilidades forma parte de sus actividades de administración de beneficios y riesgos. Es preferible tener infraestructuras inmutables y desplegar las cargas de trabajo en estados en buenas condiciones conocidos y verificados. Cuando esto no es viable, la opción que queda es el parcheado in situ. 

 Actualizar imágenes de máquinas, imágenes de contenedores o tiempos de ejecución personalizados de Lambda [y bibliotecas adicionales](https://docs.aws.amazon.com/lambda/latest/dg/security-configuration.html) para eliminar las vulnerabilidades forma parte de la administración de parches. Debe gestionar las actualizaciones de [Imágenes de máquina de Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (AMI) para imágenes de Linux o Windows Server con [EC2 Image Builder](https://aws.amazon.com/image-builder/). Puede usar [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) con su actual canalización para [administrar imágenes de Amazon ECS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html) y [administrar imágenes de Amazon EKS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_EKS.html). AWS Lambda incluye [funciones](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) de administración de versiones. 

 La aplicación de parches no debe realizarse en los sistemas de producción sin antes realizar pruebas en un entorno seguro. Los parches solo deben aplicarse si sirven para mejorar los resultados operativos o empresariales. En AWS, puede usar el [Administrador de parches de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) para automatizar el proceso de aplicación de parches en los sistemas administrados y programar la actividad con [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Patrones de uso no recomendados comunes:** 
+  Se le encomienda la aplicación de todos los nuevos parches de seguridad en un plazo de dos horas, lo que da lugar a múltiples interrupciones debido a la incompatibilidad de las aplicaciones con los parches. 
+  Una biblioteca sin parches tiene consecuencias no deseadas, ya que partes desconocidas utilizan las vulnerabilidades de la misma para acceder a su carga de trabajo. 
+  Los entornos de desarrollo se parchean automáticamente sin avisar a los desarrolladores. Recibe múltiples quejas de los desarrolladores porque su entorno deja de funcionar como se esperaba. 
+  No se ha parcheado el software comercial disponible en el mercado en una instancia persistente. Cuando tiene un problema con el software y se pones en contacto con el proveedor, le notifican que la versión no es compatible y que tendrá que aplicar un parche a un nivel específico para recibir asistencia. 
+  Un parche publicado recientemente para el software de cifrado que utilizó tiene importantes mejoras de rendimiento. Su sistema no parcheado tiene problemas de rendimiento que permanecen como resultado de no aplicar los parches. 

 **Beneficios de establecer esta práctica recomendada:** Al establecer un proceso de administración de parches, que incluya sus criterios de aplicación de parches y la metodología de distribución en sus entornos, podrá aprovechar sus ventajas y controlar su impacto. Esto permitirá la adopción de las características y capacidades deseadas, la eliminación de problemas y el cumplimiento sostenido de la gobernanza. Implante sistemas de administración de parches y automatización para reducir el nivel de esfuerzo en la implantación de parches y limitar los errores causados por los procesos manuales. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Administración de parches: aplique parches a los sistemas para solucionar problemas, para obtener las características o capacidades deseadas y para mantener la conformidad con la política de gobernanza y los requisitos de soporte de los proveedores. En sistemas inmutables, implemente con el conjunto de parches adecuados para lograr el resultado deseado. Automatice el mecanismo de administración de parches para reducir tanto el tiempo que tarda en aplicarlos y los errores causados por los procesos manuales, como el nivel de esfuerzo requerido para aplicar los parches. 
  +  [Administrador de parches de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Herramientas para desarrolladores de AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Administrador de parches de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

 **Vídeos relacionados:** 
+  [Entrega e integración continuas para aplicaciones sin servidor en AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
+  [Diseñar con las operaciones en mente](https://youtu.be/uh19jfW7hw4) 

   **Ejemplos relacionados:** 
+  [Laboratorios de Well-Architected: Administración de inventario y parches](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 

# OPS05-BP06 Compartir estándares de diseño
<a name="ops_dev_integ_share_design_stds"></a>

 Comparta las prácticas recomendadas entre los equipos para aumentar la conciencia y maximizar los beneficios del trabajo de desarrollo. 

 En AWS, la aplicación, la computación, la infraestructura y las operaciones pueden definirse y administrarse a través de metodologías de código. Esto permite que el lanzamiento, el poder compartir y adoptar sea fácil. 

 Muchos servicios y recursos de AWS están diseñados para compartirse entre cuentas, lo que le permite compartir activos creados y aprendizajes entre sus equipos. Por ejemplo, puede compartir [repositorios de CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) , [funciones de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html) , [Buckets de Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/) y [AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) con cuentas específicas. 

 Cuando publique nuevos recursos o actualizaciones, utilice Amazon SNS para proporcionar [notificaciones entre cuentas](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html). Los suscriptores pueden usar Lambda para obtener nuevas versiones. 

 Si se aplican las normas compartidas en su organización, es fundamental que existan mecanismos para solicitar adiciones, cambios y excepciones a las normas en apoyo de las actividades de los equipos. Sin esta opción, las normas se convierten en un obstáculo para la innovación. 

 **Antipatrones usuales:** 
+  Ha creado su propio mecanismo de autenticación de usuarios, al igual que los demás equipos de desarrollo de su organización. Sus usuarios tienen que mantener un conjunto de credenciales separado para cada parte del sistema a la que quieran acceder. 
+  Ha creado su propio mecanismo de autenticación de usuarios, al igual que los demás equipos de desarrollo de su organización. Su organización recibe un nuevo requisito de conformidad que debe cumplir. Cada equipo de desarrollo debe invertir ahora los recursos necesarios para aplicar el nuevo requisito. 
+  Ha creado su propio diseño de pantalla, al igual que los demás equipos de desarrollo de su organización. Sus usuarios se quejan de la dificultad de navegar por interfaces incoherentes. 

 **Beneficios de establecer esta práctica recomendada:** Utilice normas compartidas para apoyar la adopción de las prácticas recomendadas y maximizar los beneficios de los esfuerzos de desarrollo cuando las normas satisfacen los requisitos de múltiples aplicaciones u organizaciones. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Compartir estándares de diseño: comparta entre equipos las prácticas recomendadas, los estándares de diseño, las listas de verificación, los procedimientos operativos y los requisitos de orientación y gobernanza para reducir la complejidad y maximizar los beneficios de los esfuerzos de desarrollo. Asegúrese de que existan procedimientos para solicitar cambios, adiciones y excepciones a los estándares de diseño para apoyar la mejora y la innovación continuas. Asegúrese de que los equipos están al tanto del contenido publicado para que puedan aprovecharlo, y limite la repetición de trabajos y el esfuerzo desperdiciado. 
  +  [Delegar el acceso a su entorno de AWS](https://www.youtube.com/watch?v=0zJuULHFS6A&t=849s) 
  +  [Compartir un repositorio de AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-share-repository.html) 
  +  [Autorización fácil de las funciones de AWS Lambda](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) 
  +  [Compartir una AMI con determinadas cuentas de Cuentas de AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) 
  +  [Acelerar el intercambio de plantillas con un URL de diseñador de AWS CloudFormation](https://aws.amazon.com/blogs/devops/speed-template-sharing-with-an-aws-cloudformation-designer-url/) 
  +  [Uso de AWS Lambda con Amazon SNS](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Autorización fácil de las funciones de AWS Lambda](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) 
+  [Compartir un repositorio de AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-share-repository.html) 
+  [Compartir una AMI con determinadas cuentas de Cuentas de AWS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) 
+  [Acelerar el intercambio de plantillas con un URL de diseñador de AWS CloudFormation](https://aws.amazon.com/blogs/devops/speed-template-sharing-with-an-aws-cloudformation-designer-url/) 
+  [Uso de AWS Lambda con Amazon SNS](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html) 

 **Vídeos relacionados:** 
+  [Delegar el acceso a su entorno de AWS](https://www.youtube.com/watch?v=0zJuULHFS6A&t=849s) 

# OPS05-BP07 Adoptar prácticas para mejorar la calidad del código
<a name="ops_dev_integ_code_quality"></a>

 Adopte prácticas para mejorar la calidad del código y minimizar los defectos. Entre algunos ejemplos se incluyen el desarrollo basado en pruebas, las revisiones de código y la adopción de estándares. 

 En AWS, puede integrar servicios como [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) con su canalización para identificar automáticamente [posibles problemas de código y seguridad](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/how-codeguru-reviewer-works.html) utilizando el análisis de programas y machine learning. CodeGuru proporciona recomendaciones sobre cómo aplicar las prácticas recomendadas de AWS para resolver estos problemas. 

 **Patrones de uso no recomendados comunes:** 
+  Para poder probar su función antes, ha decidido no integrar su biblioteca de saneamiento de entrada estándar. Después de las pruebas, confirma su código sin acordarse de completar la incorporación de la biblioteca. 
+  Tiene una experiencia mínima con el conjunto de datos que está procesando y no es consciente de que hay una serie de casos límite que pueden existir en su conjunto de datos. Esos casos límite no son compatibles con el código que ha implementado. 

 **Beneficios de establecer esta práctica recomendada:** al adoptar prácticas para mejorar la calidad del código, puede ayudar a minimizar los problemas introducidos en la producción. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Adoptar prácticas para mejorar la calidad del código: adopte prácticas para mejorar la calidad del código y minimizar los defectos y el riesgo de su despliegue. Por ejemplo, el desarrollo basado en pruebas, la programación en pareja, las revisiones de código y la adopción de estándares. 
  +  [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 

# OPS05-BP08 Usar varios entornos
<a name="ops_dev_integ_multi_env"></a>

 Use diversos entornos para experimentar, desarrollar y poner a prueba su carga de trabajo. Utilice niveles crecientes de controles a medida que los entornos se acercan a la producción para ganar confianza en que su carga de trabajo funcionará según lo previsto cuando se despliegue. 

 **Patrones de uso no recomendados comunes:** 
+  Está realizando el desarrollo en un entorno compartido y otro desarrollador sobrescribe sus cambios de código. 
+  Los controles de seguridad restrictivos de su entorno de desarrollo compartido le impiden experimentar con nuevos servicios y características. 
+  Realiza pruebas de carga en sus sistemas de producción y provoca una interrupción a los usuarios. 
+  Se ha producido un error crítico que ha provocado la pérdida de datos en producción. En el entorno de producción, se intenta recrear las condiciones que condujeron a la pérdida de datos para poder identificar cómo ocurrió y evitar que vuelva a suceder. Para evitar más pérdida de datos durante las pruebas, se ve obligado a hacer que la aplicación no esté disponible para los usuarios. 
+  Utiliza un servicio de inquilino múltiple y no puede atender la solicitud de un cliente para tener un entorno dedicado. 
+  Es posible que no siempre haga pruebas, pero cuando las hace es en producción. 
+  Cree que la simplicidad de un entorno único anula el alcance del impacto de los cambios en el entorno. 

 **Beneficios de establecer esta práctica recomendada:** Al desplegar varios entornos puede atender varios entornos simultáneos de desarrollo, pruebas y producción sin crear conflictos entre los desarrolladores o las comunidades de usuarios. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Use varios entornos: proporcione a los desarrolladores entornos aislados con controles minimizados para permitir la experimentación. Proporcione entornos de desarrollo individuales para permitir el trabajo en paralelo, que aumenta la agilidad del desarrollo. Implemente controles más rigurosos en los entornos que están cercanos a la producción para que los desarrolladores puedan innovar. Utilice infraestructura como código y sistemas de administración de la configuración para implementar entornos que estén configurados de forma coherente con los controles presentes en la producción y asegurarse de que los sistemas funcionarán como se espera cuando se implementen. Cuando los entornos no estén en uso (por ejemplo, sistemas de desarrollo durante la noche y los fines de semana), apáguelos para evitar los costos asociados a los recursos inactivos. Cuando realice pruebas de carga, implemente entornos semejantes al de producción para obtener resultados válidos. 
  +  [¿Qué es AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [¿Cómo detengo e inicio instancias de Amazon EC2 en intervalos regulares con AWS Lambda?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [¿Cómo detengo e inicio instancias de Amazon EC2 en intervalos regulares con AWS Lambda?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 
+  [¿Qué es AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 

# OPS05-BP09 Realizar cambios frecuentes, pequeños y reversibles
<a name="ops_dev_integ_freq_sm_rev_chg"></a>

 Los cambios frecuentes, pequeños y reversibles tienen menos alcance y menos repercusiones. Esto facilita la resolución de problemas, acelera la reparación y permite revertir los cambios. 

 **Patrones de uso no recomendados comunes:** 
+  Despliega una nueva versión de su aplicación trimestralmente. 
+  Realiza con frecuencia cambios en el esquema de su base de datos. 
+  Realiza actualizaciones manuales in situ, sobrescribiendo las instalaciones y configuraciones existentes. 

 **Beneficios de establecer esta práctica recomendada:** obtiene los beneficios de los esfuerzos de desarrollo más rápidamente desplegando pequeños cambios con frecuencia. Cuando los cambios son pequeños, es mucho más fácil identificar si tienen consecuencias no deseadas. Cuando los cambios son reversibles, hay menos riesgo de aplicar el cambio, ya que la recuperación se simplifica. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Realizar cambios frecuentes, pequeños y reversibles: este tipo de cambios reducen su alcance y su impacto. Esto facilita la resolución de problemas, acelera la reparación y permite revertir los cambios. También aumenta el ritmo con el que entrega valor a la empresa. 

# OPS05-BP10 Automatizar completamente la integración y el despliegue
<a name="ops_dev_integ_auto_integ_deploy"></a>

 Compilación, implementación, y comprobación automáticas de la carga de trabajo Esto reduce tanto los errores causados por los procesos manuales como el esfuerzo requerido para implementar los cambios. 

 Aplicar metadatos utilizando [etiquetas de recursos](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) y [Grupos de recursos de AWS](https://docs.aws.amazon.com/ARG/latest/APIReference/Welcome.html) siguiendo una estrategia [de etiquetado consistente](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) para permitir la identificación de sus recursos. Etiquete sus recursos para la organización, la contabilidad de costes, los controles de acceso y el objetivo de la ejecución de actividades de operaciones automatizadas. 

 **Patrones de uso no recomendados comunes:** 
+  El viernes, termina de crear el nuevo código para su ramificación de funcionalidades. El lunes, después de ejecutar sus scripts de pruebas de calidad del código y cada uno de sus scripts de pruebas unitarias, comprobará su código para la siguiente versión programada. 
+  Se le asigna la tarea de codificar una solución para un problema crítico que afecta a un gran número de clientes en producción. Después de probar la corrección, se confirma el código y se envía un correo electrónico a la gestión de cambios para solicitar la aprobación de su despliegue en producción. 

 **Beneficios de establecer esta práctica recomendada:** al implementar sistemas automatizados de administración de compilación y despliegue, se reducen los errores causados por los procesos manuales y se reduce el esfuerzo para desplegar los cambios, lo que permite a los miembros de su equipo centrarse en la entrega de valor empresarial. 

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

## Guía para la implementación
<a name="implementation-guidance"></a>
+  Usar sistemas de administración de compilación y despliegue: utilice sistemas de administración de compilación y despliegue para reducir tanto los errores causados por los procesos manuales como el nivel de esfuerzo. Automatice completamente el proceso de integración e implementación, desde el registro del código hasta la construcción, prueba, despliegue y validación. Esto acorta el plazo de entrega, permite una mayor frecuencia de cambio y reduce el nivel de esfuerzo. 
  +  [¿Qué es AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Prácticas recomendadas de integración continua para el desarrollo de software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: entrega e integración continuas para aplicaciones sin servidor en AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introducción a AWS CodeDeploy: despliegue automático de software con Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [¿Qué es AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

## Recursos
<a name="resources"></a>

 **Documentos relacionados:** 
+  [¿Qué es AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [¿Qué es AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Vídeos relacionados:** 
+  [Prácticas recomendadas de integración continua para el desarrollo de software](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Introducción a AWS CodeDeploy: despliegue automático de software con Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: entrega e integración continuas para aplicaciones sin servidor en AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 