Skip to content

Entendiendo las Herramientas y Servicios de CI/CD de AWS

¿Qué es Git?

Git es un sistema de gestión de código fuente distribuido de código abierto. Git te permite crear una copia de tu repositorio conocida como rama (branch). Usando esta rama, podés trabajar en tu código de forma independiente de la versión estable de tu base de código. Una vez que estés listo con tus cambios, podés guardarlos como un conjunto de diferencias, conocido como commit. Podés incorporar commits de otros colaboradores a tu repositorio (pull), enviar tus commits a otros (push) y fusionar tus commits de vuelta en la versión principal del repositorio (merge).

Aprende más sobre Git..


Conceptos básicos del control de fuentes

Ya sea que estés escribiendo una aplicación sencilla por tu cuenta o colaborando en un gran proyecto de desarrollo de software como parte de un equipo, el control de fuentes es un componente vital del proceso de desarrollo. Los sistemas de gestión de código fuente te permiten rastrear los cambios en tu código, ver un historial de revisiones y volver a versiones anteriores de un proyecto cuando sea necesario. Con estos sistemas, podés colaborar en el código con tu equipo, aislar tu trabajo hasta que esté listo y solucionar problemas rápidamente identificando quién hizo los cambios y cuáles fueron. Los sistemas de gestión de código fuente ayudan a agilizar el proceso de desarrollo y proporcionan una fuente centralizada para todo tu código.

Antes de comenzar a construir nuestro pipeline de CI/CD, entendamos los servicios y herramientas principales que utilizaremos a lo largo de este workshop. Nuestro pipeline utilizará un conjunto de servicios de AWS y herramientas de Docker que trabajan juntos a la perfección para automatizar el proceso de entrega de software. Al comprender el papel de cada componente, obtendrás una visión de cómo se construyen y operan a escala los pipelines modernos de entrega de software.

En este pipeline, aprovecharemos las potentes herramientas para desarrolladores de AWS junto con el ecosistema de contenedores de Docker para crear un flujo de trabajo de automatización robusto. Desde la gestión del código fuente hasta el despliegue en producción, cada herramienta juega un papel crucial para asegurar que nuestra aplicación se construya, pruebe y despliegue de manera confiable y eficiente. A medida que avancemos en este workshop, verás cómo estos servicios interactúan entre sí para formar una solución integral de CI/CD que puede manejar todo, desde los commits de código hasta los despliegues en producción.

Nota: A continuación se presentan las herramientas de CI/CD de AWS. Si no estás familiarizado con estas herramientas, revísalas antes de continuar. Quienes ya las conozcan pueden proceder a la sección de Introducción a Docker.

Exploremos cada uno de estos servicios en detalle para entender sus funciones específicas y cómo contribuyen a nuestro pipeline automatizado:

AWS CodeConnections

AWS CodeConnections es una característica en la consola de herramientas para desarrolladores para conectar recursos de AWS, como AWS CodePipeline, a repositorios de código externos. Cada conexión es un recurso que podés proporcionar a los servicios de AWS para conectarse a un repositorio de terceros, como GitHub o BitBucket. Podés usar un ARN de conexión en tus plantillas de stack para proyectos de construcción de CodeBuild, aplicaciones de CodeDeploy y pipelines de CodePipeline, sin necesidad de referenciar secretos o parámetros almacenados.

Aprende más sobre AWS CodeConnections..


AWS CodeBuild

AWS CodeBuild es un servicio de Integración Continua (CI) totalmente gestionado que:

  • Compila código fuente.
  • Ejecuta pruebas.
  • Produce paquetes de software que están listos para desplegar.

Con CodeBuild, no necesitas aprovisionar, gestionar y escalar tus propios servidores de construcción. CodeBuild escala de forma continua y procesa múltiples construcciones simultáneamente, por lo que tus tareas no se quedan esperando en una cola. Podés comenzar rápidamente usando entornos de construcción preempaquetados, o podés crear entornos personalizados que usen tus propias herramientas de construcción. Con CodeBuild, se te cobra por minuto según los recursos de cómputo que utilices.


AWS CodePipeline

Pipeline de CodePipeline

AWS CodePipeline es un servicio de Entrega Continua (CD) totalmente gestionado que te ayuda a automatizar tus pipelines de lanzamiento para actualizaciones de aplicaciones e infraestructura rápidas y confiables. CodePipeline automatiza las fases de construcción, prueba y despliegue de tu proceso de lanzamiento cada vez que hay un cambio en el código, basándose en el modelo de lanzamiento que definas. Esto te permite entregar características y actualizaciones de manera rápida y confiable. Podés integrar fácilmente AWS CodePipeline con servicios de terceros como GitHub o con tu propio complemento personalizado. Con AWS CodePipeline, solo pagas por lo que usas. No hay cargos iniciales ni compromisos a largo plazo. Existen dos tipos de CodePipeline: V1 y V2. Desde el 24 de octubre de 2023, se recomienda utilizar CodePipeline V2.


AWS CodeDeploy

AWS CodeDeploy es un servicio de despliegue que automatiza los despliegues de aplicaciones en una variedad de servicios de cómputo, como instancias de Amazon EC2, instancias locales (on-premises), funciones AWS Lambda serverless o servicios de Amazon ECS. CodeDeploy facilita el lanzamiento rápido de nuevas funciones, ayuda a evitar el tiempo de inactividad durante el despliegue de aplicaciones y gestiona la complejidad de actualizar tus aplicaciones. Podés usar CodeDeploy para automatizar despliegues de software, eliminando la necesidad de operaciones manuales propensas a errores, y el servicio se escala con tu infraestructura.


Amazon Elastic Container Registry (ECR)

Amazon Elastic Container Registry (Amazon ECR) es un servicio de registro de imágenes de contenedor gestionado por AWS, diseñado para almacenar, gestionar y desplegar imágenes de contenedor y artefactos. Proporciona una infraestructura altamente disponible y escalable, eliminando la necesidad de repositorios autogestionados. El servicio ofrece repositorios tanto privados como públicos, permitiendo a las organizaciones alojar imágenes de forma segura o compartirlas públicamente. ECR se integra perfectamente con servicios de AWS como IAM para control de acceso, y servicios de contenedores como ECS y EKS para despliegues ágiles. Soportando imágenes Docker y OCI, ECR incluye escaneo de vulnerabilidades integrado para mejorar la seguridad.

Released under the GPL-3.0 License.