DevOps

🔄 Canalizaciones y automatización de CI/CD

La integración continua (CI) y la entrega/implementación continua (CD) son prácticas de ingeniería que permiten a los equipos entregar software más rápido, con mayor confianza y repetibilidad. En Maxi's Computers, cada implementación de producción se automatiza a través de canales.

Principios de CI/CD

  • Compile una vez, implemente en todas partes: se promueve un único artefacto (imagen de Docker, binario) en todos los entornos. Nunca reconstruya desde el origen para la puesta en escena o la producción.
  • Comentarios rápidos: el proceso de CI debe completarse en menos de 10 minutos. Los desarrolladores deben saber si su cambio interrumpe la compilación inmediatamente.
  • Todo como código: las definiciones de canalización, las configuraciones del entorno y los manifiestos de implementación se encuentran en el control de versiones.
  • Implementaciones inmutables: nunca aplique parches a instancias en ejecución. Reemplácelos por otros nuevos construidos a partir del artefacto.
  • Puertas de calidad automatizadas: las pruebas, los análisis de seguridad y el linting deben pasar antes de que se permita la promoción.

Etapas del proceso

Nuestro pipeline estándar para un servicio contenedorizado consta de 5 etapas:

yaml

## Environment Promotion

Artifacts flow through environments using image tags. The same Docker image is deployed to each environment — only the configuration changes:

- **dev** — Auto-deploys on every PR merge. Debug logging enabled. Mocked external services.

- **staging** — Production-identical infrastructure at 20% scale. Integration tests run post-deploy.

- **production** — Requires manual approval in GitHub. Canary or blue-green deployment.

## Deployment Strategies

- **Rolling Update** — Default Kubernetes strategy. Gradually replaces old pods with new ones. Zero downtime. Risk: mixed versions temporarily serving traffic.

- **Blue-Green** — Two identical environments (blue=active, green=new). Traffic switches instantly via DNS or load balancer. Instant rollback capability.

- **Canary** — Route a small percentage of traffic (1–10%) to the new version. Monitor metrics. Gradually increase if stable. Best for risk mitigation on critical paths.

- **Feature Flags** — Deploy code without activating features. Enable for specific users or segments via LaunchDarkly or custom toggles.

## GitOps with ArgoCD

Estrategias de reversión

Reversión SLO En Maxi's Computers, nuestro objetivo es un tiempo máximo de reversión de 5 minutos para cualquier incidente de producción causado por una mala implementación.

```golpecito