Descubra cómo las prácticas de AWS DevOps adaptadas a SAP pueden revolucionar sus procesos de automatización, optimizar la entrega y mejorar la colaboración entre los equipos de desarrollo y operaciones.
Para mejorar la automatización de las actividades, reducir los plazos de entrega de correcciones y lograr una entrega más rápida, puede implementar prácticas de AWS DevOps adaptadas a SAP. AWS ofrece una amplia gama de servicios y herramientas para este propósito. La siguiente figura muestra el completo DevOps suite disponible en AWS, que puede controlar la velocidad y la calidad del desarrollo de productos y servicios de automatización para SAP.
DevOps versus automatización
¿Está desconcertado por el repentino cambio en la terminología de la automatización a DevOps? Esta publicación profundiza en los aspectos de gobernanza del desarrollo de artefactos de automatización. Distingamos claramente entre los dos: DevOps es una práctica integral destinada a mejorar la colaboración entre sus equipos de desarrollo y operaciones. Abarca varias metodologías, incluida la automatización, que es un subconjunto de DevOps. La automatización utiliza específicamente tecnología para minimizar la intervención humana en las tareas, particularmente para acelerar los procesos operativos. Por otro lado, DevOps abarca todos los aspectos del desarrollo y las operaciones, abordando requisitos comerciales y tecnológicos más amplios.
En esta publicación de blog, examinamos los elementos y componentes que se muestran en la figura anterior. Nos centraremos en establecer canalizaciones de CI/CD con servicios nativos de AWS y comprender la importancia del catálogo de servicios de AWS para gestionar de forma segura el acceso a los artefactos de automatización para los usuarios finales. Además, analizaremos el uso del servicio Amazon EC2 Image Builder y destacaremos las mejores prácticas de IAM para garantizar actividades de automatización seguras y sólidas.
Canalización de integración continua/implementación continua
Como se muestra a la izquierda, tenemos una canalización de CI/CD para facilitar el desarrollo, las pruebas y la implementación de artefactos de automatización en AWS. Los desarrolladores pueden utilizar sus IDE preferidos en un entorno distribuido para crear código de automatización y, posteriormente, enviar sus cambios a un sistema de control de versiones como AWS CodeCommit. Este servicio permite a los equipos colaborar en código de manera eficiente y segura en un entorno totalmente administrado. Para obtener más información sobre las características y los casos de uso y cómo configurar AWS CodeCommit, visite https://aws.amazon.com/codecommit/.
Después del desarrollo, AWS CodeBuild fusiona todas las dependencias y bibliotecas para construir un paquete terminado. Este servicio también ofrece un entorno de prueba controlado para garantizar que el producto cumpla con los objetivos previstos. Para obtener instrucciones detalladas sobre el uso de AWS CodeBuild, visite https://aws.amazon.com/codebuild/.
Posteriormente, AWS CodeDeploy permite la implementación en un área de preparación o la publicación del producto final como un artefacto comunitario dentro del catálogo de servicios de AWS. Con AWS CodeDeploy, puede automatizar implementaciones de software en varios servicios informáticos, como Amazon EC2, AWS Fargate, AWS Lambda y sus servidores locales. AWS CodeDeploy está diseñado para hacer que las implementaciones sean más seguras y lanzar nuevas funciones rápidamente. Referirse a https://aws.amazon.com/codedeploy/ para obtener más información sobre las capacidades y los métodos de implementación de AWS CodeDeploy y cómo integrarlos en su canal de CI/CD.
Puede orquestar todo el proceso de CI/CD desde un solo lugar utilizando el servicio AWS Code-Piline. Este servicio automatiza sus canales de lanzamiento para obtener actualizaciones de aplicaciones rápidas y confiables. AWS CodePipeline crea, prueba e implementa su código cada vez que se produce un cambio de código, según los modelos de proceso de lanzamiento que defina. Para profundizar en la configuración y gestión de una canalización, consulte https://aws.amazon.com/codepipeline/.
Además, puede emplear el kit de desarrollo en la nube (CDK) de AWS o el modelo de aplicación sin servidor (SAM) de AWS para generar plantillas de AWS CloudFormation implementables para incluirlas en el catálogo de servicios de AWS. AWS CDK le proporciona un marco de desarrollo de software de código abierto para modelar y aprovisionar los recursos de sus aplicaciones en la nube utilizando lenguajes de programación familiares. La documentación para AWS CDK se puede encontrar en https://aws.amazon.com/cdk/. Por otro lado, AWS SAM es un marco de código abierto diseñado específicamente para crear aplicaciones sin servidor en AWS. AWS SAM simplifica el proceso de definición, implementación y administración de aplicaciones sin servidor al proporcionar una sintaxis abreviada para expresar recursos sin servidor y sus orígenes de eventos. Está construido sobre AWS CloudFormation, lo que significa que puede aprovechar las características y beneficios de AWS CloudFormation para la implementación y administración mientras trabaja con arquitecturas sin servidor.
Catálogo de servicios de AWS
Con un catálogo establecido de recursos aprobados en el catálogo de servicios de AWS, los departamentos pueden suministrar los recursos necesarios a través de un portal de autoservicio regido por la autorización de IAM. Esta capacidad permite a los equipos de TI monitorear y regular el uso para garantizar el cumplimiento y optimizar el proceso de aprovisionamiento. A través del Catálogo de servicios de AWS, las organizaciones pueden aplicar una gobernanza sólida y, al mismo tiempo, permitir que los departamentos aprovisionen de manera rápida y eficiente los recursos de AWS necesarios, mejorando así la autonomía y reduciendo la carga administrativa de la TI central.
Algunos usos de AWS Service Catalog incluyen los siguientes:
- Normalización: Ayuda a estandarizar la infraestructura y los servicios de AWS para cumplir con las políticas organizacionales.
- Portal de autoservicio: Proporciona un portal de autoservicio para que los usuarios implementen recursos de AWS sin tener un conocimiento profundo de los servicios de AWS.
- Gobernancia: Permite a los administradores aplicar reglas de gobernanza y cumplimiento a los recursos de AWS.
- Gestión de costes: Ayuda en la gestión de costes controlando el aprovisionamiento de recursos.
- Entorno controlado: Garantiza un entorno controlado al permitir solo recursos aprobados para el aprovisionamiento.
- Auditabilidad: Proporciona un seguimiento de auditoría de quién solicitó qué servicio, cuándo y las configuraciones que utilizaron.
- Consistencia: Garantiza la coherencia en el aprovisionamiento de recursos de AWS mediante la aplicación de plantillas estandarizadas.
Generador de imágenes AWS EC2
Amazon EC2 Image Builder es un servicio diseñado para automatizar la creación, administración e implementación de imágenes de máquina (AMI) de Amazon EC2 personalizadas para diversas aplicaciones, incluidos sistemas SAP en AWS. Un caso de uso para SAP implicaría automatizar la creación de AMI con software SAP preinstalado y configuraciones alineadas con las mejores prácticas de SAP. Esta capacidad garantiza que las instancias informáticas subyacentes estén optimizadas para las cargas de trabajo de SAP, proporcionando un proceso estandarizado y repetible para el aprovisionamiento y mantenimiento del entorno SAP, lo que mejora la escalabilidad y la eficiencia operativa. Para obtener información más detallada, visite http://s-prs.co/v577694.
Amazon EC2 Image Builder utiliza AWS Task Orchestrator and Executor (AWS TOE) para ejecutar flujos de trabajo complejos en el proceso de creación de imágenes, incluida la instalación, configuración y prueba de software. Los flujos de trabajo se definen en un documento YAML, que indica a AWS TOE que ejecute tareas específicas. Estas tareas pueden incluir comandos de shell del sistema operativo integrados o llamadas a scripts externos alojados localmente o en Amazon S3. Además, AWS TOE puede integrarse con AWS Systems Manager para instalar paquetes a través del distribuidor de AWS Systems Manager, y también puede implementar componentes de refuerzo del Centro de seguridad de Internet (CIS) y las Guías de implementación técnica de seguridad (STIG) en su flujo de trabajo de creación de imágenes. Para más detalles, visite http://s-prs.co/v577695.
Gestión de autorizaciones
La automatización es beneficiosa cuando se implementa de forma controlada y segura; de lo contrario, puede causar estragos en un entorno de TI. Es esencial contar con un marco de autorización sólido antes de automatizar las operaciones, incluido el establecimiento de controles de permisos para manejar los activos críticos de las aplicaciones de forma segura. Las acciones en AWS se administran a través de IAM y políticas de recursos para garantizar que los derechos de acceso y modificación estén reservados para usuarios y sistemas autorizados. Para obtener una guía completa sobre las mejores prácticas de IAM, visite http://s-prs.co/v577696.
Además de seguir las mejores prácticas de IAM, considere adoptar algunas medidas adicionales para proteger aún más sus recursos de AWS, como las siguientes:
- Segregación de funciones: Cree procesos de automatización distintos para crear, actualizar y eliminar recursos de AWS asignando controles de autorización específicos a varias personas. Controle el proceso de eliminación asignando las tareas de habilitar y deshabilitar la “protección contra eliminación” a diferentes principales. Este enfoque garantiza que solo se eliminen los recursos previstos durante las actividades de limpieza. Además, segmente el proceso de eliminación en tres etapas para garantizar la eliminación gradual de los recursos críticos. Por ejemplo, elimine inicialmente los componentes de la infraestructura, seguido de los datos y los activos de almacenamiento, y finalmente evalúe los activos de respaldo para confirmar la eliminación correcta de los recursos. Integre estas etapas en flujos de trabajo de aprobación adicionales, programándolas en momentos separados para permitir un tiempo de respuesta adecuado para resultados imprevistos.
- Controles de acceso basados en atributos (ABAC): Utilice etiquetas de recursos, ventanas de mantenimiento y claves de condición de IAM para otorgar acceso específico y con plazos determinados a los principales para ejecutar cambios mediante la automatización. Puede encontrar más detalles sobre ABAC en la Guía del usuario de AWS IAM en http://s-prs.co/v577697.
- Controles de datos adicionales: Incorpore controles de datos adicionales, como contraseñas de aplicaciones, entradas de parámetros de proceso, claves de estado del programa, claves de cifrado/descifrado y objetos del repositorio de actividades vitales. Administre estos controles utilizando servicios de AWS como AWS Secrets Manager, AWS Systems Manager Parameter Store, Amazon DynamoDB, claves de AWS Key Management Service (KMS) y Amazon S3. Estos controles deben estar separados de las principales funciones de IAM o políticas de recursos que autorizan actividades de automatización específicas para mejorar la seguridad de la administración de permisos para las tareas de automatización.
Nota del editor: esta publicación ha sido adaptada de una sección del libro. SAP en AWS: arquitectura, migración y operación por Ravi Kashyap, Rajendra Narikimelli y Rozal Singh.