Arostik Logo
ArostikVLARCK

Micro-Technology Solutions

Aros StudentAnalogía Cotidiana Incluida

What is CI/CD and DevOps: Continuous Integration and Deployment Pipelines, GitHub Actions and Zero-Downtime Blue-Green Strategies

Modern software automation and methodologies: automated unit testing, static security scanning (SAST), artifact builds, and zero-downtime deployment strategies.

AS

AS

Aros Student

Aug 21, 20264 min1320 views
What is CI/CD and DevOps: Continuous Integration and Deployment Pipelines, GitHub Actions and Zero-Downtime Blue-Green Strategies

Qué es CI/CD y la Cultura DevOps

Automatización de Software, Pipelines en GitHub Actions y Despliegues Blue-Green

En la ingeniería de software tradicional, el proceso de llevar código desde la computadora de un desarrollador hasta los servidores de producción solía ser manual, lento y propenso a errores humanos: subidas manuales por FTP, compilaciones locales sin reproducibilidad y temidos despliegues nocturnos que provocaban caídas inesperadas de servicio.

La filosofía DevOps y las prácticas de CI/CD transformaron este paradigma mediante la automatización integral del ciclo de vida del software:

Integración Continua (CI - Continuous Integration): Práctica en la que los desarrolladores integran su código con frecuencia en la rama principal. Cada integración dispara un pipeline automatizado que compila el código, ejecuta suites de pruebas unitarias/integración y analiza vulnerabilidades de seguridad (SAST).
Entrega Continua (CD - Continuous Delivery): Garantiza que cualquier cambio que supere las pruebas de CI esté listo para ser desplegado en producción en cualquier momento con un solo clic.
Despliegue Continuo (CD - Continuous Deployment): El paso más avanzado: todo cambio aprobado en la rama principal se despliega automáticamente a los usuarios finales sin intervención humana.

En la Tecnología Real (Explicación Sencilla)

Escenario de Producción Real: Un equipo de desarrollo despliega manualmente una actualización crítica en la base de datos de producción durante horas laborales. Un desarrollador olvidó ejecutar las migraciones de esquema previas, lo que provoca que todas las peticiones a la API fallen con error 500 Internal Server Error durante 4 horas. La Solución Implementada con Pipeline CI/CD: 1. Fase de Integración (CI): Al crear un Pull Request, GitHub Actions levanta contenedores temporales de PostgreSQL y Redis, ejecuta 450 pruebas automatizadas y analiza el código con herramientas de escaneo estático. Si una prueba falla, el botón de merge queda bloqueado. 2. Fase de Despliegue (CD - Estrategia Blue-Green): - La versión actual (Entorno Azul) sigue atendiendo el 100% del tráfico de producción. - El pipeline construye la nueva versión en un entorno idéntico (Entorno Verde) y ejecuta pruebas de humo de salud (Health Checks). - Una vez verificado el estado verde, el balanceador de carga Nginx o Cloudflare redirige el tráfico instantáneamente al entorno Verde con cero milisegundos de tiempo de inactividad (Zero Downtime). Si ocurre cualquier fallo, el tráfico vuelve al entorno Azul de forma inmediata.

WIKIHOW STEP

Comparativa de Estrategias de Despliegue Modernas

Estrategia de DespliegueTiempo de Inactividad (Downtime)Costo de InfraestructuraComplejidad de RollbackNivel de Riesgo
Recreación (Recreate)Presente (El servicio se apaga mientras inicia la nueva versión).Muy Bajo (Utiliza el mismo servidor existente).Media (Requiere reinstalar la versión previa).Alto
Despliegue Progresivo (Rolling Update)Cero (Actualiza réplicas de contenedores una por una).Bajo (Solo requiere una o dos réplicas adicionales).Baja (Revierte pods uno a uno en Kubernetes).Medio
Despliegue Azul-Verde (Blue-Green)Cero (Conmutación instantánea de balanceador).Medio-Alto (Duplica temporalmente los servidores).Instantáneo (Solo se cambia el puntero del balanceador).Muy Bajo
Despliegue Canario (Canary Release)Cero (Envía el 5% del tráfico a la nueva versión para probar).MedioInstantáneo (Se apaga el tráfico hacia el nodo canario).Mínimo

WIKIHOW STEP

Pipeline de Producción en GitHub Actions (.github/workflows/deploy.yml)

arostik@ubuntu:~ (yaml)
name: CI/CD Production Pipeline on:  push:    branches: [ main ]  pull_request:    branches: [ main ] jobs:  test_and_lint:    name: 1. Pruebas Unitarias y Análisis Estático    runs-on: ubuntu-latest    steps:      - name: Descargar Código Fuente        uses: actions/checkout@v4       - name: Configurar Node.js LTS        uses: actions/setup-node@v4        with:          node-version: 20          cache: 'npm'       - name: Instalar Dependencias        run: npm ci       - name: Ejecutar Linter y Tipos TypeScript        run: npm run lint && npx tsc --noEmit       - name: Ejecutar Suite de Pruebas Unitarias        run: npm test -- --coverage   build_and_deploy:    name: 2. Construcción Docker y Despliegue    needs: test_and_lint    if: github.ref == 'refs/heads/main' && github.event_name == 'push'    runs-on: ubuntu-latest    steps:      - name: Descargar Código Fuente        uses: actions/checkout@v4       - name: Iniciar Sesión en Docker Hub        uses: docker/login-action@v3        with:          username: ${{ secrets.DOCKERHUB_USERNAME }}          password: ${{ secrets.DOCKERHUB_TOKEN }}       - name: Construir y Publicar Imagen Docker        uses: docker/build-push-action@v5        with:          context: .          push: true          tags: miempresa/app:${{ github.sha }},miempresa/app:latest       - name: Despliegue Zero-Downtime en Servidor de Producción        uses: appleboy/ssh-action@v1.0.3        with:          host: ${{ secrets.PROD_HOST }}          username: ${{ secrets.PROD_USER }}          key: ${{ secrets.PROD_SSH_KEY }}          script: |            docker pull miempresa/app:${{ github.sha }}            docker-compose up -d --no-deps --build web_app            docker system prune -f

Nota Técnica

Seguridad de Secretos en CI/CD: Nunca almacenes contraseñas, claves privadas SSH o tokens de API directamente en el código fuente de los archivos YAML. Utiliza siempre gestores de secretos cifrados (como GitHub Encrypted Secrets, HashiCorp Vault o AWS Secrets Manager) y autenticación basada en identidades OIDC efímeras.

WIKIHOW STEP

Glosario Técnico de CI/CD y DevOps

1.
Pipeline: Secuencia automatizada de etapas (Lint, Test, Build, Security Scan, Deploy) que se ejecutan secuencialmente tras cada cambio de código.
2.
Blue-Green Deployment: Técnica de despliegue donde coexisten dos entornos de producción idénticos para garantizar cero tiempo de inactividad y rollbacks instantáneos.
3.
Canary Release: Estrategia de despliegue gradual donde una versión preliminar se expone a un porcentaje mínimo de usuarios reales para validar métricas antes del despliegue masivo.
4.
SAST (Static Application Security Testing): Análisis automatizado del código fuente en busca de patrones de vulnerabilidades (SQL Injection, XSS, secretos expuestos) sin ejecutar el software.

Mini Cuestionario Interactivo3 preguntas

Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.

Aciertos: 0 / 3
1

¿Cuál es la principal ventaja de implementar una estrategia de despliegue Blue-Green?

2

¿Qué diferencia a la 'Entrega Continua' (Continuous Delivery) del 'Despliegue Continuo' (Continuous Deployment)?

3

¿Por qué es crucial ejecutar pruebas automatizadas en un entorno de Integración Continua (CI) antes de fusionar un Pull Request?

Diagnóstico y Práctica en Arostik

Prueba expresiones regulares para tus pipelines con el Probador Regex, audita la seguridad de certificados con el Auditor SSL y genera identificadores únicos para tus despliegues con el Generador UUID.

Tu opinión mejora Aroslap

¿Te resultó útil esta publicación?

Califica tu experiencia para optimizar los próximos artículos técnicos.

Selecciona una calificación

More Articles in Aros Student