

# 2. Reduzca los defectos, facilite la corrección y mejore el flujo de trabajo de cambio de SAP
<a name="design-principle-2"></a>

 **¿Cómo reduce los defectos, facilita la corrección y mejora el flujo en la producción?** Adopte enfoques que mejoren el flujo de cambios que se integran en producción, lo que permitirá 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. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/wellarchitected/latest/sap-lens/design-principle-2.html)

 Para obtener más detalles, consulte los siguientes enlaces y la siguiente información: 
+  Video de AWS: [Design with Ops in Mind (Diseñar con las operaciones en mente)](https://youtu.be/uh19jfW7hw4?ref=wellarchitected) 
+  Documentación de AWS: [Herramientas para desarrolladores de AWS](https://aws.amazon.com/products/developer-tools/?ref=wellarchitected) 
+  Documentación de AWS: [AWS Launch Wizard para SAP](https://docs.aws.amazon.com/launchwizard/latest/userguide/what-is-launch-wizard-sap.html#:~:text=AWS%20Launch%20Wizard%20for%20SAP%20is%20a%20service%20that%20guides,deploy%20SAP%20applications%20on%20AWS.) 
+  Blog de SAP on AWS: [DevOps for SAP – Driving Innovation and Lowering Costs](https://aws.amazon.com/blogs/awsforsap/devops-for-sap-driving-innovation-and-lowering-costs/) 

# Práctica recomendada 2.1: utilice el control de versiones y la administración de configuración
<a name="best-practice-2-1"></a>

Los sistemas de administración de configuraciones reducen los errores causados por los procesos manuales y el nivel de esfuerzo necesario para implementar cambios. 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 configuraciones en todos sus procedimientos de SAP: infraestructura, base de datos, aplicación y código y desarrollos personalizados de SAP (por ejemplo, ABAP, Java y UI5/JavaScript).

Considere los diferentes sistemas de control de versiones para cada tipo de configuración, pero consolide las métricas en una herramienta de planificación de lanzamiento central. Analice cómo se administran la configuración no transportable y el control de versiones de archivos binarios en sus entornos (por ejemplo, ¿cómo sabe que las versiones de kernel de SAP son las mismas en toda su infraestructura?)

 **Sugerencia 2.1.1: implemente el control de cambios de SAP u otras herramientas de terceros para administrar el control de versiones y el código de desarrollo de SAP.** 

 Asegúrese de implementar controles de cambios para todos los enfoques de desarrollo y para el código personalizado que sean compatibles con sus aplicaciones SAP: ABAP, Java, UI5/JavaScript y cualquier otra extensión o área de scripting. Piense en todas sus aplicaciones SAP y en cómo orquestará las implementaciones de código entre los múltiples patrones de implementación de SAP (por ejemplo, cómo lanzará de manera simultánea implementaciones relacionadas entre sí alojadas en AWS y en SAP Business Technology Platform). 
+  Servicio de AWS: [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html?ref=wellarchitected) 
+  Video de AWS: [Introduction to AWS CodeCommit (Introducción a AWS CodeCommit)](https://youtu.be/46PRLMW8otg?ref=wellarchitected) 
+  Blog de SAP on AWS: [AWS DevOps tools for SAP, Part 1: Cloud Foundry (Herramientas de DevOps de AWS para SAP, parte 1: Cloud Foundry)](https://aws.amazon.com/blogs/awsforsap/aws-devops-tools-for-sap-part-1-cloud-foundry-apps/) 
+  Blog de SAP on AWS: [AWS DevOps tools for SAP, Part 2: SAP Fiori Apps (Herramientas de DevOps de AWS para SAP, parte 2: SAP Fiori Apps)](https://aws.amazon.com/blogs/awsforsap/aws-devops-tools-for-sap-part-2-sap-fiori-apps/) 
+  Documentación de SAP: [SAP Change Control Management (Administración de control de cambios de SAP)](https://help.sap.com/viewer/8b923a2175be4939816f0981b73856c7/LATEST/en-US/2b614e1cb8204f35b477eac703073589.html) 
+  Documentación de SAP: [Best Practices for SAP BTP - Lifecycle Management (Prácticas recomendadas para SAP BTP: administración del ciclo de vida)](https://help.sap.com/viewer/df50977d8bfa4c9a8a063ddb37113c43/Cloud/en-US) 

 **Sugerencia 2.1.2: implemente sistemas de administración de la configuración para sus aplicaciones SAP** 

 Implemente herramientas de administración de configuraciones para ABAP, Java y otras tecnologías de SAP, y considere cómo se administran la configuración no transportable y el control de versiones binario en su infraestructura (por ejemplo, ¿cómo sabe que sus versiones de SAP Kernel son las mismas en todo su entorno?) Utilice SAP Solution Manager para planificar e implementar los cambios de configuración y de versión en sus aplicaciones SAP. 
+  Documentación de SAP: [Enhanced Change & Transport System (CTS\$1) (Mejoras en el sistema de cambio y transporte [CTS\$1])](https://support.sap.com/en/tools/software-logistics-tools/enhanced-change-and-transport-system.html) 
+  Documentación de SAP: [SAP Solution Manager: Planning Landscape Changes (SAP Solution Manager: planificación de cambios del panorama)](https://www.sap.com/germany/documents/2016/08/8ea1d93a-857c-0010-82c7-eda71af511fa.html) 

 **Sugerencia 2.1.3: implemente sistemas de administración de configuraciones para sistemas operativos** 

 Recurra a la generación de una AMI o utilice software de administración de configuraciones previamente establecido, como Ansible, Chef o Puppet, para alinear la administración de la configuración entre sus sistemas operativos de carga de trabajo de SAP. Considere utilizar herramientas de administración de configuraciones centradas en la seguridad que emitan alertas ante vulnerabilidades y que lo insten a mantener sus sistemas operativos revisados y fortalecidos. 
+  Documentación de AWS: [AWS Systems Manager State Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-state.html) 
+  Documentación de AWS: [Administración de la configuración en Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/configuration-management.html) 
+  Documentación de AWS: [¿Qué es AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html?ref=wellarchitected) 
+  Documentación de AWS: [¿Qué es Amazon Inspector?](https://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html) 

 **Sugerencia 2.1.4: implemente sistemas de administración de la configuración para sus bases de datos** 

 Trabaje con su proveedor de software de base de datos para comprender los enfoques de administración de configuraciones para su base de datos. 
+  Documentación de SAP: [SAP HANA Platform Lifecycle Management (Administración del ciclo de vida de la plataforma SAP HANA)](https://help.sap.com/viewer/6b94445c94ae495c83a19646e7c3fd56/LATEST/en-US/571d0bb4b1b2402f8e7caf0fe0290b61.html) 

 **Sugerencia 2.1.5: implemente sistemas de administración de la configuración de la infraestructura** 

 Emplee enfoques de infraestructura como código (IaC) para aprovisionar y administrar recursos de AWS compatibles con sus cargas de trabajo de SAP. AWS CloudFormation y AWS Cloud Development Kit son herramientas que puede usar para aprovisionar y administrar la configuración en recursos de AWS de manera programada. Considere usar herramientas de auditoría y control de configuración que le permitan crear reglas y políticas para evaluar su infraestructura de manera periódica y así dar un diagnóstico sobre la conformidad y solucionar cualquier problema. 
+  Documentación de AWS: [AWS Launch Wizard para SAP](https://aws.amazon.com/launchwizard/) 
+  Documentación de AWS: [AWS Systems Manager Inventory](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-inventory.html) 
+  Documentación de AWS: [Administrador de cambios de AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager.html) 
+  Blog de SAP on AWS: [Infrastructure as Code Example: Terraform and SAP on AWS (Ejemplo de infraestructura como código: Terraform y SAP on AWS)](https://aws.amazon.com/blogs/awsforsap/terraform-your-sap-infrastructure-on-aws/) 
+  SAP Lens [fiabilidad]: [Práctica recomendada 11.3: defina un enfoque para restaurar la disponibilidad del servicio](best-practice-11-3.md) 

# Práctica recomendada 2.2: implemente prácticas para mejorar la calidad del código
<a name="best-practice-2-2"></a>

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. Utilice lo mínimo posible las herramientas de SAP Code Inspector.

 **Sugerencia 2.2.1: implemente prácticas para mejorar la calidad del código** 

Por ejemplo, el desarrollo basado en pruebas, la programación en pares, las revisiones de códigos y la adopción de estándares.

 **Sugerencia 2.2.2: utilice herramientas de Amazon Inspector para el desarrollo de SAP e integre este proceso en sus canalizaciones de entrega e integración continuas (CI/CD)** 

 Considere las siguientes herramientas para la inspección y depuración automatizadas de códigos en sus cargas de trabajo de SAP: 
+  Documentación de AWS: [Amazon CodeGuru para el desarrollo en Java y Python en AWS](https://aws.amazon.com/codeguru/) 
+  Documentación de SAP: [SAP Code Inspector for ABAP and SAP-specific development (SAP Code Inspector para el desarrollo específico en ABAP y SAP)](https://help.sap.com/viewer/ba879a6e2ea04d9bb94c7ccd7cdac446/LATEST/en-US/49205531d0fc14cfe10000000a42189b.html) 

# Práctica recomendada 2.3: utilice sistemas de administración de implementaciones y creaciones
<a name="best-practice-2-3"></a>

Utilice sistemas de administración de implementaciones y creaciones. Asegúrese de usar sistemas de implementación y creación certificados por SAP, como el Change and Transport System (CTS, sistema de cambio y transporte) de ABAP, Web IDE o herramientas de SAP. Estos sistemas reducen los errores causados por los procesos manuales y reducen el nivel de esfuerzo necesario para implementar cambios.

 **Sugerencia 2.3.1: implemente sistemas de creación y desarrollo de SAP** 

 Implemente sistemas de creación e implementación certificados por SAP, como Change and Transport System (CTS, sistema de cambio y transporte) de ABAP, Web IDE o el servicio de entrega continua de BTP de SAP u otras herramientas de SAP. 
+  Video de AWS: [Continuous integration best practices for software development (Prácticas recomendadas de integración continua para el desarrollo de software)](https://www.youtube.com/watch?v=GEPJ7Lo346A&ref=wellarchitected) 
+  Blog de SAP on AWS: [AWS DevOps tools for SAP, Part 2: SAP Fiori Apps (Herramientas de DevOps de AWS para SAP, parte 2: SAP Fiori Apps)](https://aws.amazon.com/blogs/awsforsap/aws-devops-tools-for-sap-part-2-sap-fiori-apps/) 
+  Documentación de SAP: [Enhanced Change & Transport System (CTS\$1)](https://support.sap.com/en/tools/software-logistics-tools/enhanced-change-and-transport-system.html) 
+  Documentación de SAP: [Deploying Applications to BTP (Implementación de aplicaciones en BTP)](https://help.sap.com/viewer/825270ffffe74d9f988a0f0066ad59f0/LATEST/en-US/4478283a220b46d9a46bb28d6a9140e8.html) 

# Práctica recomendada 2.4: utilice varios entornos
<a name="best-practice-2-4"></a>

Utilice varios entornos de SAP para experimentar, desarrollar y probar la 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. Por lo general, en las infraestructuras SAP, se emplea como mínimo un entorno de tres niveles. Cada uno de ellos destinados al desarrollo, la realización de pruebas y la producción respectivamente.

 **Sugerencia 2.4.1: utilice entornos temporales para experimentar** 

 Ponga a disposición de los equipos de desarrollo y de pruebas de tecnología entornos aislados o temporales con controles mínimos para permitir la experimentación y la mitigación de riesgos. 
+  Documentación de AWS: [AWS Launch Wizard para SAP](https://aws.amazon.com/launchwizard/) 
+  Blog de SAP on AWS: [Infrastructure as Code Example: Terraform and SAP on AWS](https://aws.amazon.com/blogs/awsforsap/terraform-your-sap-infrastructure-on-aws/) 

 **Sugerencia 2.4.2: proporcione entornos de desarrollo para permitir el trabajo en paralelo y mejorar la agilidad** 

 Habilite entornos que no sean de producción para permitir el trabajo en paralelo, lo que aumentará la agilidad del desarrollo y de las pruebas. Implemente controles más rigurosos en los entornos de producción para permitirles a los desarrolladores contar con los medios necesarios para innovar. Por lo general, en los entornos de SAP se emplea como mínimo un entorno de tres niveles. Cada uno de ellos destinados al desarrollo, la realización de pruebas y la producción respectivamente. 
+  Documentación de AWS: [AWS Launch Wizard para SAP](https://aws.amazon.com/launchwizard/) 

 **Sugerencia 2.4.3: habilite un entorno de prueba consolidado que se asemeje lo máximo posible a un entorno producción a fin de mejorar la calidad de los lanzamientos** 

 Los entornos provisionales y de prueba deben ser lo más parecidos posible a los de producción en lo que respecta a las características de sus interfaces y a su seguridad, resiliencia y rendimiento a fin de poder identificar problemas de arquitectura e interacción de códigos antes del lanzamiento. Considere desactivar los recursos secundarios en clústeres o hacer una reducción (tanto horizontal como vertical) del rendimiento del servidor de aplicaciones de este entorno cuando no lo use a fin de mejorar la eficiencia de costos de la infraestructura. 
+  Blog de SAP on AWS: [Automate Start or Stop of Distributed SAP HANA systems using AWS Systems Manager](https://aws.amazon.com/blogs/awsforsap/automate-start-or-stop-of-distributed-sap-hana-systems-using-aws-systems-manager/) 

 **Sugerencia 2.4.4: utilice los sistemas de infraestructura como código (IaC) y administración de la configuración para implementar entornos de forma coherente** 

 Utilice infraestructura como código (IaC) y sistemas de administración de configuración para implementar entornos que estén configurados según los controles presentes en producción con el fin de garantizar que los sistemas funcionen como se previó al momento de implementarlos. Utilice grupos de etiquetado y de recursos para etiquetar y mejorar los metadatos de los entornos, de manera que se puedan usar con fines de automatización y conformidad. 
+  Blog de SAP on AWS: [Infrastructure as Code Example: Terraform and SAP on AWS](https://aws.amazon.com/blogs/awsforsap/terraform-your-sap-infrastructure-on-aws/) 
+  Blog de SAP on AWS: [Tagging Recommendations for SAP on AWS](https://aws.amazon.com/blogs/awsforsap/tagging-recommendations-for-sap-on-aws/) 
+  Documentación de AWS: [AWS Launch Wizard para SAP](https://aws.amazon.com/launchwizard/) 
+  Documentación de AWS: [¿Qué son los AWS Resource Groups?](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html) 

 **Sugerencia 2.4.5: apague los entornos que no sean de producción cuando no se utilicen** 

 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). 
+  Blog de SAP on AWS: [Automate Start or Stop of Distributed SAP HANA systems using AWS Systems Manager](https://aws.amazon.com/blogs/awsforsap/automate-start-or-stop-of-distributed-sap-hana-systems-using-aws-systems-manager/) 

# Práctica recomendada 2.5: pruebe y valide los cambios
<a name="best-practice-2-5"></a>

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.

 **Sugerencia 2.5.1: se deben probar los cambios y validar los resultados en todas las etapas del ciclo de vida (por ejemplo, desarrollo, prueba y producción)** 

 **Sugerencia 2.5.2: mantenga un estándar de referencia de los resultados de las pruebas en las pruebas funcionales, el rendimiento y la resiliencia que sirva como base de comparación cuando realice cambios y en proyectos importantes.** 

 **Sugerencia 2.5.3: comprenda cuál es el grado en que debe someter a pruebas los diferentes niveles de cambio. Por ejemplo, una gama completa de pruebas frente a pruebas de regresión destinadas a cambios menores. Convenga las definiciones de las pruebas y el alcance de las pruebas de cambios que se requieren para hacer lanzamientos a producción.** 

 **Sugerencia 2.5.4: automatice la realización de pruebas cuando sea posible con herramientas de terceros y arneses de pruebas. Céntrese primero en cambios que sean de tipo regular y en lanzamientos frecuentes.** 

# Práctica recomendada 2.6: realice cambios frecuentes, pequeños y reversibles
<a name="best-practice-2-6"></a>

Los cambios frecuentes, pequeños y reversibles reducen el alcance y el impacto de un cambio. Si bien muchas soluciones de SAP NetWeaver solo admiten un enfoque de “revisiones hacia futuro”, considere usar alternadores de características en el desarrollo personalizado para permitir reversiones. Esto facilita la resolución de problemas, permite correcciones más rápidas y proporciona la opción de restaurar los cambios.

 **Sugerencia 2.6.1: divida el desarrollo y los lanzamientos en cambios frecuentes y más pequeños cuando sea posible** 

 **Sugerencia 2.6.2: dado que muchas soluciones de SAP solo admiten un enfoque de “revisiones hacia futuro” (y no permiten transportes reversibles), considere usar alternadores de características en el desarrollo personalizado para permitir la desactivación de características en lugar de las reversiones o retiros** 

 **Sugerencia 2.6.3: para cambios de SAP que no sean reversibles, considere opciones de reversión adicionales, como instantáneas del sistema completo, copias de seguridad de la base de datos y opciones de restauración.** 
+  Documentación de AWS: [Instantáneas coherentes ante bloqueos de Amazon EBS](https://aws.amazon.com/blogs/storage/taking-crash-consistent-snapshots-across-multiple-amazon-ebs-volumes-on-an-amazon-ec2-instance/) 
+  Documentación de AWS: [AWS Backint for SAP HANA (AWS Backint para SAP HANA)](https://aws.amazon.com/backint-agent/) 

# Práctica recomendada 2.7: automatice las pruebas, la integración y la implementación de cambios
<a name="best-practice-2-7"></a>

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.

 **Sugerencia 2.7.1: automatice completamente la canalización de implementación e integración del código de registro mediante la compilación, realización de pruebas, implementación y validación** 

 **Sugerencia 2.7.2: implemente SAP Solution Manager ChaRM, Focused Build o herramientas de administración de cambios y lanzamiento de terceros para orquestar la creación integral de canalizaciones de implementación para cambios en la aplicación** 
+  Documentación de SAP: [SAP Solution Manager Change Request Management (Administración de solicitud de cambios de SAP Solution Manager)](https://help.sap.com/viewer/8b923a2175be4939816f0981b73856c7/LATEST/en-US/4c3acb82b50843b4e10000000a42189e.html) 
+  Documentación de SAP: [SAP Focused Build](https://support.sap.com/en/alm/focused-build.html) 
+  AWS Marketplace: [Productos y herramientas para DevOps](https://aws.amazon.com/marketplace/search/results?page=1&searchTerms=sap&category=45c68cc2-ccd6-426b-94bd-92a791004dc2) 
+  AWS Marketplace: [Productos y herramientas para pruebas](https://aws.amazon.com/marketplace/search/results?page=1&searchTerms=sap&category=b1cf3403-729a-4df1-908d-51105b3574a3) 
+  Blog de SAP on AWS: [AWS DevOps tools for SAP, Part 1: Cloud Foundry](https://aws.amazon.com/blogs/awsforsap/aws-devops-tools-for-sap-part-1-cloud-foundry-apps/) 