Este curso avanzado muestra cómo integrar las pruebas y la seguridad en canalizaciones de integración continua (CI), entrega continua (CD) e implementación continua (CD). Aprenderá a implementar prácticas de pruebas avanzadas en varias fases del ciclo de vida de las aplicaciones para ofrecer actualizaciones de las mismas de forma más segura y fiable. Aprenderá a utilizar las herramientas de DevOps de AWS, como AWS CodeCommit, AWS CodeBuild, AWS CodeDeploy y AWS CodePipeline, para implementar las prácticas de pruebas avanzadas.
También aprenderá a configurar mecanismos de revisión y realizar análisis de código estático para identificar problemas en las primeras fases del desarrollo. Explorará varios tipos de pruebas, como pruebas de seguridad, sintéticas y de carga, utilizando AWS Lambda y Amazon CloudWatch.
• Nivel del curso: avanzado
• Duración: 2,5 horas
Nota: Este curso tiene transcripciones o subtítulos localizados. La narración está en inglés.
Para mostrar los subtítulos, haga clic en el botón CC en la esquina inferior derecha del reproductor.
Actividades
En el curso, se incluyen presentaciones de vídeo, demostraciones, enlaces a recursos y pruebas de conocimientos.
Objetivos del curso
En este curso, aprenderá a hacer lo siguiente:
• Explicar los beneficios de automatizar las pruebas en canalizaciones de CI/CD
• Describir métodos para promover cambios de aplicaciones en los repositorios de código y explicar el proceso de las solicitudes de extracción
• Crear buildspec.yaml para pruebas de CI, como pruebas unitarias, pruebas de seguridad y ajuste de código
• Utilizar análisis de código estático para identificar problemas de seguridad o código
• Explicar cómo se pueden realizar distintos tipos de pruebas, incluidas las pruebas de integración, carga y rendimiento durante la entrega continua
• Aplicar pruebas sintéticas para probar la disponibilidad continua del servicio mediante alarmas AWS Lambda y Amazon CloudWatch
• Aplicar pruebas canary para identificar el estado de implementación durante las implementaciones continuas
• Demostrar pruebas que se activan por aprobación de canalizaciones para identificar el estado de la aplicación
• Administrar el flujo de canalización cuando se producen errores de servicio durante las implementaciones continuas
Destinatarios previstos
Este curso está dirigido a los siguientes destinatarios:
• Ingenieros de DevOps
• Desarrolladores de DevOps
Requisitos previos
Recomendamos que los asistentes a este curso cumplan con los siguientes requisitos:
• Hayan completado el curso System Operations on AWS o DevOps Engineering on AWS
• Disponer de conocimientos prácticos de uno o varios lenguajes de programación de alto nivel (C#, Java, PHP, Ruby, Python, etc.)
• Contar con conocimientos intermedios sobre la administración de sistemas Linux o Windows en el nivel de la línea de comandos
• Disponer de experiencia práctica con AWS mediante el uso de la consola de administración de AWS y la interfaz de línea de comandos de AWS (CLI de AWS)
• Experiencia competente con metodología y prácticas de DevOps
Esquema del curso
Módulo 1: Información general de las pruebas
• Identificar los beneficios de una estrategia de pruebas en su desarrollo
• Describir las diferentes etapas de las pruebas utilizando la pirámide de pruebas
• Utilizar la cobertura de pruebas para diseñar un plan de pruebas eficaz
• Reconocer los beneficios de automatizar las pruebas en el ciclo de vida de desarrollo
Módulo 2: Revisión de DevOps
• Identificar las prácticas de DevOps que proporcionan revisiones de aplicaciones más rápidas
• Aplicar el conocimiento de las herramientas de AWS, como AWS CodeCommit, AWS CodeDeploy, AWS CodeBuild y AWS CodePipeline, para crear y automatizar la canalización de CI/CD
• Utilizar las opciones sin servidor de AWS y herramientas de terceros en cada etapa de la canalización de CI/CD
Módulo 3. Integración continua
• Establecer estándares de código como requisito en la práctica de desarrollo
• Implementar varios métodos de prueba en la fase de CI
• Aplicar los beneficios de las pruebas unitarias y el análisis de código estático
• Aplicar el desarrollo controlado por pruebas (TDD) y el desarrollo controlado por comportamiento (BDD) para crear una estrategia de pruebas efectiva
• Utilizar Amazon CodeGuru para revisar y mejorar la calidad del código
• Demostración: análisis de código estático
• Demostración: realizar solicitud de extracción
Módulo 4: Entrega continua
• Aplicar métodos de prueba en la fase de entrega continua según sea necesario
• Reconocer los beneficios de las pruebas funcionales, de regresión y de rendimiento
• Implementar métodos de prueba mediante herramientas de terceros o opciones sin servidor
• Realizar pruebas sintéticas para garantizar la continuidad de un servicio
• Automatizar las pruebas de seguridad para implementar reglas de auditoría de seguridad
• Demostración: pruebas sintéticas
Módulo 5. Implementación continua
• Aplicar métodos de prueba en la fase de implementación continua según sea necesario
• Utilizar las comprobaciones de estado como estrategia para evitar errores de implementación
• Realizar pruebas de activación de aprobaciones para automatizar la implementación continua
• Utilizar AWS Lambda para automatizar las aprobaciones
• Aplicar opciones de implementación disponibles con AWS CodeDeploy
• Implementar tipos de implementación, incluidas implementaciones segmentadas y canary
• Controlar el flujo de canalización deshabilitando y rehabilitando las transiciones entre fases
• Demostración: Amazon CloudWatch Synthetics
• Demostración: detención de una implementación
Módulo 6: Resumen del curso
• Retirar e identificar diversos recursos de los temas del curso
• (Opcional) Crear un entorno de pruebas utilizando código de muestra en una cuenta de AWS propia para probar los conocimientos