1. Libros y videos
  2. Arquitectura AWS
  3. Automatización y DevOps en AWS
Extrait - Arquitectura AWS Diseñe infraestructuras cloud robustas, seguras y evolutivas
Extractos del libro
Arquitectura AWS Diseñe infraestructuras cloud robustas, seguras y evolutivas Volver a la página de compra del libro

Automatización y DevOps en AWS

Introducción

La transformación DevOps no es solo una cuestión de herramientas: es un cambio de cultura y de metodología. Se basa en tres pilares: la automatización, la colaboración y la fiabilidad continua (observabilidad, cumplimiento de los SLO y capacidad de rollback). En AWS, estos principios cobran vida gracias a un rico ecosistema: infraestructura como código, pipelines de CI/CD, orquestación, observabilidad y despliegue progresivo.

Este capítulo explora cómo construir un ciclo completo de automatización en AWS, desde la creación de infraestructuras con Terraform, CloudFormation o el CDK, hasta los pipelines de despliegue y las estrategias avanzadas de puesta en producción.

Infraestructura como código: Terraform, CloudFormation y AWS CDK

1. El principio de la infraestructura como código (IaC)

La Infrastructure as Code (IaC) consiste en describir la infraestructura en forma de código, en lugar de configurarla manualmente en la consola de AWS. Este paradigma aporta varias ventajas importantes:

  • Trazabilidad: cada cambio se versiona en Git.

  • Reproducibilidad: la misma configuración se puede implementar en varios entornos.

  • Automatización: los despliegues se vuelven rápidos, coherentes y auditables.

En lugar de hacer un "clic" en la consola, se escriben archivos que describen los recursos que se van a crear: VPC, subredes, roles de IAM, S3, EC2, EKS… Estos archivos se ejecutan mediante herramientas especializadas, lo que garantiza que el estado real se corresponda con la configuración declarada.

images/cap8_pag2.png

Ciclo de gestión de IaC (esquema conceptual, ilustrado aquí con la terminología de Terraform): código plan aplicar detección de desviaciones

2. AWS CloudFormation: la solución nativa

AWS CloudFormation es el servicio nativo de IaC de AWS. Permite describir "stacks" mediante archivos YAML o JSON.

Un ejemplo sencillo de creación de un bucket de S3:

Resources: 
  MyBucket: 
    Type: AWS::S3::Bucket 
    Properties: 
      BucketName:...

CI/CD con AWS CodePipeline, GitOps y ArgoCD

1. El proceso de CI/CD en AWS

La integración continua (CI) y la implementación continua (CD) son fundamentales para DevOps. AWS ofrece una suite completa e integrada:

  • CodeCommit: repositorio Git gestionado,

  • CodeBuild: ejecución de compilaciones, pruebas y empaquetado,

  • CodeDeploy: implementación automática en EC2, ECS y Lambda,

  • CodePipeline: orquestación de los pasos.

Un pipeline típico en YAML:

Stages: 
  - Name: Source 
    Actions: 
      - Name: Checkout 
        ActionTypeId: 
          Category: Source 
          Owner: AWS 
          Provider: CodeCommit 
  - Name: Build 
    Actions: 
      - Name: RunBuild 
        ActionTypeId: 
          Category: Build 
          Owner: AWS 
          Provider: CodeBuild 
images/cap8_pag7.png

Cadena de CI/CD: Commit Build Test Deploy Monitor

Buena práctica

Configura...

Gestión de las puestas en producción: Blue/Green, Canary y Feature Flags

1. Despliegue Blue/Green

El despliegue Blue/Green consiste en mantener dos entornos idénticos:

  • Blue: versión en producción,

  • Green: nueva versión.

Una vez validada, la conmutación se realiza a través del Load Balancer (ALB) o Route 53. En caso de incidencia, el rollback reversión es inmediato.

Ejemplo concreto

Un servicio ECS implementa una nueva imagen de Docker en la definición de tarea «green». Una vez superadas las pruebas, CodeDeploy redirige el tráfico de "blue" a "green".

Ventaja

Sin tiempo de inactividad. El usuario nunca percibe la transición.

images/cap8_pag10.png

Despliegue blue/green: dos entornos activos alternados

2. Despliegue Canary

El despliegue Canary consiste en exponer la nueva versión a un pequeño porcentaje de usuarios antes de su generalización. Se habla de "muestra de control", tal y como se hace en el sector.

En AWS, se puede gestionar este enrutamiento progresivo con:

  • CodeDeploy (ECS/Lambda),

  • App Mesh o API Gateway (enrutamiento ponderado),

  • Políticas de enrutamiento ponderado de Route 53.

Ejemplo concreto

Un API recibe el 5 % del tráfico en la nueva versión (v2). Si no se detecta ninguna alerta en un plazo de 15 minutos, se va aumentando progresivamente hasta el 100 %.

Buenas prácticas

Definir criterios objetivos de éxito:...