Despliegue
Despliegue, también denominado deployment, es el proceso mediante el cual una versión de un software, sitio web, aplicación web, API, servicio, modelo de inteligencia artificial, infraestructura o configuración se prepara, distribuye, instala, activa y verifica dentro de un entorno donde podrá ser utilizado por personas, aplicaciones o sistemas.
El despliegue puede abarcar desde copiar archivos manualmente hacia un hosting mediante FTP hasta coordinar contenedores, bases de datos, servidores, certificados, variables, pruebas automatizadas, balanceadores y mecanismos de recuperación dentro de una plataforma de computación en la nube. Su alcance depende de la arquitectura, el tamaño del proyecto, el nivel de riesgo, la cantidad de usuarios y las necesidades operativas.
En marketing digital, el despliegue permite publicar landing pages, tiendas en línea, formularios, promociones, configuradores, contenidos, etiquetas de analítica, automatizaciones, experimentos y aplicaciones comerciales. Un despliegue incorrecto puede interrumpir campañas, perder leads, afectar ventas, provocar errores de medición, eliminar contenido, generar problemas de SEO o exponer información sensible.
Introducción
El desarrollo de software produce cambios dentro de código, contenidos, configuraciones, bases de datos e infraestructura. Estos cambios permanecen inicialmente dentro de computadoras locales, repositorios, ramas de desarrollo o entornos de prueba.
Para que una modificación llegue a usuarios reales, necesita atravesar un proceso de despliegue.
Un despliegue puede incluir:
- seleccionar una versión;
- compilar código;
- instalar dependencias;
- generar archivos;
- ejecutar pruebas;
- preparar servidores;
- copiar artefactos;
- actualizar bases de datos;
- activar servicios;
- comprobar funcionamiento;
- monitorear errores;
- revertir cambios cuando resulta necesario.
En un sitio HTML sencillo, desplegar puede significar subir archivos hacia una carpeta pública.
En una instalación de WordPress, puede implicar actualizar un tema, instalar un plugin, modificar la base de datos, limpiar caché y verificar formularios.
En una aplicación distribuida puede requerir desplegar múltiples servicios sin interrumpir las solicitudes activas.
El despliegue conecta el trabajo de desarrollo con la operación real del producto. Por esta razón constituye una actividad central dentro de disciplinas como:
- DevOps;
- Site Reliability Engineering;
- administración de sistemas;
- ingeniería de plataformas;
- seguridad;
- control de calidad;
- marketing tecnológico;
- gestión de productos.
Un despliegue no termina necesariamente cuando los archivos llegan al servidor. También debe comprobarse que la nueva versión:
- inicia correctamente;
- puede conectarse con sus dependencias;
- responde a solicitudes;
- mantiene los datos;
- conserva compatibilidad;
- cumple objetivos;
- puede ser observada;
- puede recuperarse ante fallos.
La publicación de una versión y su activación pueden ocurrir en momentos diferentes. Una organización puede instalar una función dentro de producción y mantenerla desactivada mediante una feature flag hasta que decida habilitarla.
El proceso puede ser:
- manual;
- semiautomático;
- automatizado;
- continuo;
- programado;
- gradual;
- activado por eventos;
- aprobado por una persona.
Las organizaciones con despliegues frecuentes suelen automatizar tareas repetitivas para reducir errores, mantener consistencia y acelerar la entrega.
Definición
Despliegue de software puede definirse como el conjunto de actividades necesarias para trasladar una versión de un sistema desde un estado de desarrollo o empaquetado hacia un entorno operativo.
Una definición operativa puede apoyarse en los siguientes criterios:
- Existencia de una versión: se identifica el código, configuración o artefacto que será publicado.
- Entorno de destino: el cambio se dirige hacia desarrollo, pruebas, staging, producción u otro espacio.
- Preparación: se validan dependencias, recursos, permisos y configuraciones.
- Distribución: los archivos o paquetes se trasladan hacia la infraestructura.
- Instalación: la versión se coloca dentro del sistema de destino.
- Configuración: se proporcionan variables, secretos, rutas, dominios y conexiones.
- Activación: la versión comienza a recibir solicitudes o ejecutar tareas.
- Verificación: se comprueba que el sistema funciona correctamente.
- Observabilidad: se monitorean métricas, registros, trazas y resultados.
- Recuperación: existe un procedimiento para revertir, reparar o reemplazar la versión.
- Trazabilidad: se registra quién desplegó, qué versión, cuándo y con qué resultado.
- Control de riesgo: el cambio se introduce mediante estrategias adecuadas a su impacto.
El despliegue puede aplicarse a:
- código;
- sitios;
- aplicaciones;
- bases de datos;
- infraestructura;
- configuraciones;
- contenido;
- modelos de inteligencia artificial;
- automatizaciones;
- funciones serverless;
- contenedores;
- firmware;
- aplicaciones móviles.
El término puede utilizarse para designar tanto el proceso como la versión ya instalada dentro de un entorno.
Contexto histórico y evolución
Instalación manual
Las primeras aplicaciones se distribuían mediante medios físicos y procedimientos de instalación manual.
Los administradores copiaban archivos, configuraban permisos, modificaban parámetros y reiniciaban servicios.
Cada instalación podía presentar diferencias relacionadas con:
- sistema operativo;
- bibliotecas;
- hardware;
- rutas;
- usuarios;
- versiones.
Esta variabilidad generaba problemas de reproducibilidad.
Aplicaciones centralizadas
Los sistemas instalados dentro de computadoras centrales permitían actualizar una versión única utilizada por múltiples terminales.
La centralización reducía parte de la distribución hacia dispositivos, aunque los cambios continuaban requiriendo planificación, ventanas de mantenimiento y procedimientos de recuperación.
Distribución de software
Los programas de escritorio se entregaban mediante:
- discos;
- disquetes;
- CD;
- instaladores;
- descargas;
- actualizaciones automáticas.
Cada usuario podía utilizar una versión diferente, lo que aumentaba la necesidad de compatibilidad y soporte.
Primeros sitios web
Los sitios web iniciales estaban formados principalmente por archivos HTML, imágenes y documentos.
El despliegue consistía en copiar estos recursos hacia un servidor mediante FTP.
Un flujo habitual era:
- editar archivos localmente;
- abrir un cliente FTP;
- conectarse al hosting;
- reemplazar la versión anterior;
- abrir el sitio dentro del navegador;
- corregir cualquier error.
Este proceso era sencillo, pero carecía frecuentemente de:
- pruebas automáticas;
- historial;
- rollback;
- aprobaciones;
- despliegue atómico;
- trazabilidad.
Aplicaciones dinámicas
La incorporación de programación del lado del servidor y bases de datos aumentó la complejidad.
Un despliegue podía necesitar:
- actualizar PHP, Java, Python u otro runtime;
- instalar librerías;
- modificar esquemas;
- cambiar configuraciones;
- reiniciar procesos;
- preservar sesiones.
Control de versiones
Los sistemas de control de versiones permitieron registrar cambios y seleccionar versiones concretas.
Herramientas como CVS, Subversion y posteriormente Git facilitaron:
- historial;
- ramas;
- etiquetas;
- revisiones;
- reversiones;
- colaboración.
El repositorio comenzó a convertirse en la fuente principal del código que se desplegaba.
Automatización mediante scripts
Las organizaciones crearon scripts para repetir tareas como:
- copiar archivos;
- compilar;
- ejecutar migraciones;
- reiniciar servicios;
- limpiar cachés.
Los scripts redujeron trabajo manual, aunque podían depender de características específicas del servidor.
Integración continua
La integración continua promueve integrar cambios frecuentemente y validarlos mediante compilaciones y pruebas automáticas.
Un sistema de CI puede ejecutar:
- análisis estático;
- pruebas unitarias;
- pruebas de integración;
- compilación;
- empaquetado;
- escaneo de seguridad.
La integración continua prepara versiones con mayor confianza antes del despliegue.
Entrega continua
La entrega continua mantiene el software en un estado donde puede desplegarse de forma segura mediante una decisión o aprobación.
Cada cambio que supera las validaciones puede producir un artefacto listo para producción.
Despliegue continuo
El despliegue continuo automatiza también la publicación en producción.
Un cambio que supera todas las etapas se activa sin una intervención manual obligatoria.
Este enfoque requiere:
- pruebas confiables;
- observabilidad;
- rollback;
- cambios pequeños;
- cultura operativa;
- controles automatizados.
Virtualización
Las máquinas virtuales permitieron crear entornos reproducibles y aislados.
Una aplicación podía desplegarse dentro de una imagen de sistema previamente preparada.
Gestión de configuración
Herramientas como Puppet, Chef, Ansible y Salt permitieron describir la configuración deseada de servidores.
Las tareas podían incluir:
- instalar paquetes;
- crear usuarios;
- modificar archivos;
- iniciar servicios;
- aplicar permisos.
Contenedores
Los contenedores empaquetaron aplicaciones y dependencias dentro de imágenes transportables.
Docker popularizó este modelo.
Una misma imagen puede utilizarse en:
- desarrollo;
- pruebas;
- staging;
- producción.
La imagen no elimina todas las diferencias entre entornos, pero reduce variaciones relacionadas con bibliotecas y runtimes.
Orquestación
Kubernetes y otras plataformas permiten administrar despliegues de contenedores.
Pueden encargarse de:
- réplicas;
- actualizaciones graduales;
- reinicios;
- balanceo;
- estado deseado;
- configuración;
- secretos.
Infraestructura como código
La infraestructura como código representa servidores, redes, permisos y servicios mediante archivos versionados.
Herramientas como Terraform, CloudFormation y Pulumi permiten crear entornos reproducibles.
GitOps
GitOps utiliza repositorios como fuente declarativa del estado deseado.
Un controlador observa cambios y sincroniza la infraestructura o aplicaciones con la versión definida en Git.
Serverless
Las funciones y plataformas administradas permiten desplegar código sin administrar directamente servidores persistentes.
El proveedor se encarga de parte del:
- provisionamiento;
- escalamiento;
- mantenimiento;
- ejecución.
Plataformas modernas
Servicios como Vercel, Netlify, Render, Railway, Cloudflare y plataformas de nube pueden desplegar automáticamente cuando se actualiza un repositorio.
El proceso puede incluir:
- detección de cambios;
- compilación;
- generación de vista previa;
- despliegue;
- asignación de dominio;
- HTTPS;
- invalidación de caché.
Despliegue contemporáneo
El despliegue moderno puede integrar:
- control de versiones;
- pruebas;
- seguridad;
- aprobación;
- artefactos inmutables;
- contenedores;
- infraestructura como código;
- observabilidad;
- feature flags;
- automatización;
- rollback.
La programación asistida por inteligencia artificial comienza a generar configuraciones, pipelines y scripts, aunque su resultado necesita revisión técnica y pruebas.
Fundamentos teóricos
Reproducibilidad. El mismo proceso debe producir resultados equivalentes.
Automatización. Las tareas repetitivas se ejecutan mediante sistemas y scripts.
Inmutabilidad. Un artefacto aprobado se mantiene sin modificaciones durante su promoción.
Idempotencia. Ejecutar nuevamente una operación produce un estado equivalente y no duplica efectos.
Estado deseado. El sistema declara cómo debe encontrarse el entorno y un controlador intenta alcanzarlo.
Separación de entornos. Desarrollo, pruebas y producción poseen objetivos y datos diferentes.
Promoción. El mismo artefacto avanza entre entornos.
Entrega incremental. Los cambios pequeños reducen el riesgo y facilitan diagnóstico.
Automatización de validaciones. Las pruebas funcionan como barreras antes de producción.
Retroalimentación rápida. Los errores deben detectarse cerca del momento en que se introducen.
Despliegue atómico. Los usuarios observan una versión completa y no una combinación parcial.
Rollback. El sistema puede regresar a una versión conocida.
Roll forward. Se corrige el problema mediante una versión nueva.
Compatibilidad hacia atrás. Una versión nueva puede trabajar temporalmente con componentes anteriores.
Tolerancia a fallos. La infraestructura continúa atendiendo solicitudes durante errores parciales.
Redundancia. Varias instancias reducen dependencia de un solo componente.
Observabilidad. El estado del despliegue puede comprenderse mediante telemetría.
Control de cambios. Las modificaciones se registran, revisan y autorizan.
Principio de mínimo privilegio. El sistema de despliegue recibe solamente los permisos necesarios.
Defensa en profundidad. Varias capas protegen repositorios, pipelines, artefactos y servidores.
Metodología
Un proceso de despliegue puede seguir estas etapas.
1. Definición del cambio. Se documenta qué se modificará y por qué.
2. Evaluación de impacto. Se identifican usuarios, servicios, datos e integraciones afectadas.
3. Preparación del código. Los cambios se incorporan al control de versiones.
4. Revisión. El equipo analiza calidad, seguridad y compatibilidad.
5. Integración. La versión se combina dentro de una rama o línea de desarrollo.
6. Construcción. Se compilan archivos, paquetes, imágenes o artefactos.
7. Pruebas automáticas. Se validan funciones y contratos.
8. Análisis de seguridad. Se revisan dependencias, secretos, código e imágenes.
9. Creación de artefacto. Se genera una versión inmutable e identificable.
10. Publicación del artefacto. Se almacena en un registro o repositorio.
11. Preparación del entorno. Se verifican recursos, configuraciones, certificados y permisos.
12. Respaldo. Se crean copias de información crítica cuando corresponde.
13. Migraciones. Se preparan cambios de base de datos compatibles.
14. Despliegue en pruebas. La versión se instala dentro de un entorno controlado.
15. Pruebas de aceptación. Se validan recorridos de usuario y negocio.
16. Aprobación. Se autoriza el paso hacia producción cuando la política lo requiere.
17. Despliegue gradual. La versión se activa mediante una estrategia apropiada.
18. Smoke tests. Se comprueban funciones esenciales.
19. Monitoreo. Se observan errores, latencia, tráfico y conversiones.
20. Validación comercial. Se comprueba que formularios, pagos, campañas y analítica funcionan.
21. Finalización. Se registra el resultado y se elimina infraestructura temporal.
22. Rollback o corrección. Se actúa cuando las métricas muestran un problema.
23. Revisión posterior. Se documentan aprendizajes e incidentes.
24. Retiro de versiones antiguas. Se eliminan recursos que dejaron de utilizarse.
Elementos principales
Código fuente
Contiene la implementación que será construida o publicada.
Repositorio
Almacena versiones, ramas, etiquetas y revisiones.
Commit
Representa un conjunto identificado de cambios.
Rama
Permite desarrollar modificaciones sin alterar inmediatamente la línea principal.
Tag
Puede identificar una versión destinada a lanzamiento.
Artefacto
Es el resultado preparado para despliegue.
Puede ser:
- archivo ZIP;
- paquete;
- ejecutable;
- imagen Docker;
- sitio estático;
- función;
- plantilla;
- modelo;
- archivo de configuración.
Registro de artefactos
Almacena versiones construidas.
Ejemplos:
- registro de contenedores;
- repositorio de paquetes;
- almacenamiento de objetos;
- sistema de releases.
Pipeline
Representa la secuencia automatizada de construcción, prueba y despliegue.
Runner o agente
Ejecuta los pasos del pipeline.
Entorno
Destino donde funciona una versión.
Variables de entorno
Proporcionan configuraciones sin incluirlas directamente dentro del código.
Secretos
Incluyen:
- contraseñas;
- tokens;
- claves;
- certificados;
- credenciales.
Deben almacenarse mediante mecanismos protegidos.
Migración de base de datos
Modifica esquemas o datos para adaptarlos a la nueva versión.
Feature flag
Permite activar o desactivar una función sin desplegar nuevamente todo el sistema.
Health check
Comprueba si una instancia puede atender tráfico.
Readiness check
Determina si una instancia se encuentra lista para recibir solicitudes.
Liveness check
Comprueba si un proceso continúa funcionando.
Balanceador de carga
Distribuye solicitudes entre diferentes instancias.
Rollback
Restaura una versión anterior.
Registro de despliegue
Conserva información sobre:
- versión;
- usuario;
- hora;
- entorno;
- resultado;
- aprobaciones.
Entornos de despliegue
Entorno local
Se ejecuta dentro del equipo del desarrollador.
Permite:
- edición;
- depuración;
- pruebas rápidas;
- experimentación.
No debe utilizar datos sensibles de producción sin controles.
Desarrollo
Entorno compartido donde se integran cambios iniciales.
Puede presentar inestabilidad y configuraciones experimentales.
Integración
Se utiliza para comprobar la comunicación entre componentes.
Pruebas
Permite ejecutar validaciones funcionales y técnicas.
QA
Es utilizado por equipos de control de calidad.
Staging
Busca reproducir producción con la mayor fidelidad razonable.
Puede utilizarse para:
- aceptación;
- rendimiento;
- seguridad;
- ensayos de despliegue;
- validación comercial.
Preproducción
Entorno final antes de producción.
En algunas organizaciones staging y preproducción representan el mismo espacio.
Producción
Entorno utilizado por usuarios reales y procesos comerciales.
Requiere:
- alta disponibilidad;
- monitoreo;
- seguridad;
- respaldos;
- control de acceso.
Sandbox
Entorno aislado para pruebas de integraciones o proveedores.
Entorno efímero
Se crea temporalmente para una rama, pull request o prueba y se elimina posteriormente.
Disaster recovery
Entorno preparado para recuperar el servicio ante un incidente grave.
Tipos y variantes
Despliegue manual
Una persona ejecuta directamente cada paso.
Puede incluir:
- copiar archivos;
- conectarse mediante SSH;
- ejecutar comandos;
- reiniciar servicios.
Ventajas:
- control inmediato;
- facilidad inicial;
- utilidad en proyectos pequeños.
Limitaciones:
- errores humanos;
- falta de reproducibilidad;
- poca trazabilidad;
- dificultad para escalar.
Despliegue semiautomático
Un script ejecuta tareas, pero requiere una persona para iniciarlo o aprobar etapas.
Despliegue automatizado
El pipeline ejecuta tareas definidas sin intervención manual en cada paso.
Despliegue programado
Se realiza en una fecha y hora específicas.
Puede coincidir con una ventana de menor tráfico.
Despliegue bajo demanda
Una persona autorizada inicia el proceso cuando lo considera apropiado.
Despliegue continuo
Cada cambio aprobado por las pruebas puede llegar automáticamente a producción.
Despliegue estático
Publica archivos preconstruidos dentro de un servidor, almacenamiento o CDN.
Despliegue dinámico
Instala una aplicación que ejecuta código dentro de servidores o runtimes.
Despliegue de contenedores
Publica una imagen y actualiza las instancias que la ejecutan.
Despliegue serverless
Publica funciones, configuraciones y permisos dentro de una plataforma administrada.
Despliegue de infraestructura
Crea o modifica:
- redes;
- servidores;
- bases;
- roles;
- almacenamiento;
- balanceadores.
Despliegue de base de datos
Aplica cambios de esquema, procedimientos, índices o datos.
Despliegue de configuración
Modifica parámetros sin cambiar necesariamente el código.
Despliegue de contenido
Publica artículos, imágenes, productos o materiales editoriales.
Despliegue de modelos de IA
Pone un modelo a disposición de aplicaciones o usuarios mediante:
- endpoint;
- contenedor;
- dispositivo;
- servicio administrado;
- procesamiento por lotes.
Despliegue móvil
Distribuye aplicaciones mediante tiendas, pruebas internas o sistemas empresariales.
Despliegue de firmware
Actualiza software dentro de dispositivos.
Estrategias de despliegue
Recreate
La versión anterior se detiene y posteriormente se inicia la nueva.
Ventajas:
- sencillez;
- ausencia de dos versiones simultáneas.
Limitaciones:
- interrupción;
- recuperación más lenta;
- riesgo si la nueva versión falla.
Resulta adecuada para sistemas donde una breve indisponibilidad es aceptable.
Rolling deployment
Las instancias se actualizan gradualmente.
El sistema reemplaza una parte mientras las demás continúan atendiendo tráfico.
Ventajas:
- menor interrupción;
- uso eficiente de recursos;
- soporte común en orquestadores.
Limitaciones:
- versiones coexistentes;
- necesidad de compatibilidad;
- rollback más complejo.
Blue-green deployment
Se mantienen dos entornos equivalentes.
Blue. Versión actualmente activa.
Green. Versión nueva preparada.
Después de validar Green, el tráfico cambia desde Blue.
Ventajas:
- cambio rápido;
- rollback mediante cambio de tráfico;
- pruebas sobre un entorno completo.
Limitaciones:
- mayor costo;
- coordinación de datos;
- necesidad de mantener dos entornos.
Canary deployment
La versión nueva se activa inicialmente para una proporción pequeña del tráfico.
Si las métricas son correctas, su alcance aumenta.
Ejemplo:
- 1 %;
- 5 %;
- 25 %;
- 50 %;
- 100 %.
Ventajas:
- limita impacto;
- utiliza datos reales;
- facilita detección temprana.
Limitaciones:
- requiere segmentación;
- observabilidad;
- compatibilidad;
- criterios automáticos.
A/B deployment
Diferentes versiones se muestran a grupos con propósitos de experimentación.
Se utiliza para comparar:
- conversión;
- interacción;
- retención;
- comportamiento.
El despliegue A/B tiene un objetivo experimental, mientras el canary se orienta principalmente a controlar riesgo técnico.
Shadow deployment
La versión nueva recibe una copia del tráfico sin devolver su respuesta al usuario.
Permite comparar:
- resultados;
- rendimiento;
- errores;
- capacidad.
Debe proteger datos y evitar efectos secundarios duplicados.
Feature flags
La función se incluye en producción, pero se activa mediante configuración.
Puede habilitarse para:
- empleados;
- porcentaje;
- región;
- cliente;
- plan;
- experimento.
Las flags necesitan gobernanza y eliminación cuando dejan de ser útiles.
Ring deployment
Los usuarios se agrupan en anillos de exposición.
Ejemplo:
- equipo interno;
- usuarios piloto;
- clientes seleccionados;
- público general.
Dark launch
La infraestructura o función se despliega sin exposición visible para todos los usuarios.
Permite probar capacidad y dependencias.
Hot deployment
La aplicación se actualiza sin detener completamente el servicio.
Cold deployment
El sistema se detiene antes de instalar la versión.
Despliegue in-place
La nueva versión reemplaza archivos o procesos dentro del mismo entorno.
Despliegue inmutable
Se crean nuevas instancias y se eliminan las anteriores después de validar.
Reduce cambios manuales y deriva de configuración.
CI/CD
CI/CD agrupa prácticas de integración, entrega y despliegue automatizados.
Integración continua
Los cambios se integran frecuentemente y se validan.
Un pipeline puede ejecutar:
<syntaxhighlight lang="text"> Checkout → instalar dependencias → análisis de código → pruebas → compilación → empaquetado </syntaxhighlight>
Entrega continua
El artefacto se mantiene listo para producción.
El paso final puede necesitar aprobación.
Despliegue continuo
El sistema publica automáticamente después de superar las validaciones.
Pipeline de ejemplo
<syntaxhighlight lang="yaml"> name: despliegue
on: push: branches: - main
jobs: construir: runs-on: ubuntu-latest
``` steps:
- name: Obtener repositorio uses: actions/checkout@v4
- name: Instalar dependencias run: npm ci
- name: Ejecutar pruebas run: npm test
- name: Construir aplicación run: npm run build
- name: Desplegar run: ./scripts/deploy.sh
```
</syntaxhighlight>
La configuración real debe proteger secretos, fijar versiones, restringir permisos y validar el destino.
Despliegue mediante FTP y SFTP
El despliegue mediante FTP continúa presente dentro de hosting compartido.
Un flujo manual puede consistir en:
- generar una copia local;
- realizar respaldo del servidor;
- conectar mediante SFTP o FTPS;
- subir archivos a una carpeta temporal;
- verificar integridad;
- reemplazar la versión anterior;
- limpiar caché;
- probar el sitio.
Subir archivos directamente sobre producción puede producir una versión incompleta mientras la transferencia continúa.
Una estrategia más segura consiste en utilizar directorios versionados:
<syntaxhighlight lang="text"> /releases/2026-07-14-001 /releases/2026-07-14-002 /current </syntaxhighlight>
`current` puede apuntar hacia la versión activa.
Para cambiar:
- se carga la versión completa;
- se prueban archivos;
- se cambia el enlace `current`;
- se conserva la versión anterior para rollback.
SFTP resulta preferible a FTP sin cifrado.
Despliegue mediante Git
Git puede utilizarse como origen del proceso.
Modelos habituales:
Pull en servidor
El servidor ejecuta:
<syntaxhighlight lang="bash"> git pull </syntaxhighlight>
Este método resulta sencillo, pero puede generar diferencias locales y no garantiza un despliegue limpio.
Clone limpio
Se crea una copia nueva del repositorio para cada versión.
Webhook
El proveedor de Git informa al servidor que existe un cambio.
Pipeline
Una plataforma de CI obtiene el repositorio, construye el artefacto y lo publica.
El repositorio no debe contener:
- contraseñas;
- claves privadas;
- archivos sensibles;
- configuraciones de producción sin protección.
Despliegue de contenedores
Un archivo Dockerfile puede describir la imagen:
<syntaxhighlight lang="docker"> FROM node:22-alpine
WORKDIR /app
COPY package*.json ./ RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
CMD ["npm", "start"] </syntaxhighlight>
El flujo puede ser:
- construir imagen;
- ejecutar pruebas;
- etiquetar imagen;
- publicar en registro;
- actualizar la plataforma;
- comprobar salud;
- retirar instancias anteriores.
Las etiquetas deben identificar versiones de manera inequívoca.
Utilizar únicamente `latest` dificulta trazabilidad y rollback.
Una etiqueta puede utilizar:
- versión semántica;
- hash de commit;
- número de compilación;
- fecha.
Despliegue en Kubernetes
Un recurso Deployment declara el estado deseado de una aplicación.
<syntaxhighlight lang="yaml"> apiVersion: apps/v1 kind: Deployment metadata:
name: aplicacion-web
spec:
replicas: 3
selector:
matchLabels:
app: aplicacion-web
template:
metadata:
labels:
app: aplicacion-web
spec:
containers:
- name: aplicacion
image: registry.example.com/aplicacion:1.4.0
ports:
- containerPort: 3000
readinessProbe:
httpGet:
path: /health
port: 3000
</syntaxhighlight>
Kubernetes puede crear un ReplicaSet nuevo y reemplazar gradualmente las instancias.
La configuración necesita considerar:
- recursos;
- probes;
- secretos;
- estrategias;
- disponibilidad;
- volúmenes;
- afinidad;
- permisos.
Despliegue serverless
Una función serverless puede desplegarse mediante:
- panel;
- CLI;
- repositorio;
- infraestructura como código.
El paquete puede incluir:
- código;
- dependencias;
- variables;
- permisos;
- eventos;
- límites.
Los riesgos incluyen:
- funciones sin autenticar;
- permisos excesivos;
- dependencias vulnerables;
- secretos expuestos;
- costos no controlados.
Despliegue de bases de datos
Los cambios de base de datos representan una de las partes más delicadas del despliegue.
Pueden incluir:
- tablas;
- columnas;
- índices;
- restricciones;
- procedimientos;
- datos;
- transformaciones.
Migraciones
Una migración describe un cambio versionado.
Ejemplo conceptual:
<syntaxhighlight lang="sql"> ALTER TABLE clientes ADD COLUMN consentimiento_marketing BOOLEAN DEFAULT FALSE; </syntaxhighlight>
Compatibilidad expand-contract
Una estrategia segura puede seguir:
Expandir. Se añade la nueva estructura sin eliminar la anterior.
Migrar. La aplicación comienza a utilizar y completar los nuevos campos.
Contraer. Se elimina la estructura anterior cuando dejó de utilizarse.
Este método facilita la coexistencia de versiones durante un rolling deployment.
Backfill
Actualiza registros históricos para completar una nueva propiedad.
Debe controlarse para no bloquear la base.
Rollback de datos
Revertir código resulta más sencillo que revertir datos modificados.
Las migraciones destructivas requieren:
- respaldo;
- validación;
- estrategia;
- pruebas;
- restauración.
Gestión de configuraciones y secretos
La configuración puede variar entre entornos.
Ejemplos:
- URL de base;
- dominio;
- nivel de logs;
- proveedor de correo;
- claves de API;
- moneda;
- modo de pago.
Las configuraciones no sensibles pueden almacenarse mediante:
- variables;
- archivos;
- servicios de configuración;
- repositorios separados.
Los secretos deben protegerse mediante:
- gestores de secretos;
- cifrado;
- permisos;
- rotación;
- auditoría.
No deben incluirse dentro de:
- repositorio;
- imágenes públicas;
- logs;
- frontend;
- documentación abierta.
Pruebas de despliegue
Pruebas unitarias
Validan partes pequeñas del código.
Pruebas de integración
Comprueban la comunicación entre servicios.
Pruebas end-to-end
Simulan recorridos completos.
Smoke tests
Verifican rápidamente funciones críticas después del despliegue.
Ejemplos:
- abrir página;
- iniciar sesión;
- buscar producto;
- enviar formulario;
- completar una compra de prueba.
Pruebas de regresión
Comprueban que funciones anteriores continúen funcionando.
Pruebas de contrato
Validan compatibilidad entre API y consumidores.
Pruebas de rendimiento
Miden comportamiento bajo carga.
Pruebas de seguridad
Analizan vulnerabilidades, dependencias, permisos y configuración.
Pruebas de migración
Comprueban cambios de base y recuperación.
Pruebas de rollback
Verifican que la versión anterior pueda restaurarse.
Rollback y recuperación
Un rollback intenta regresar hacia un estado anterior conocido.
Puede incluir:
- cambiar el enlace hacia una versión previa;
- reinstalar un artefacto;
- restaurar una imagen;
- reducir la versión de un contenedor;
- revertir configuración;
- restaurar base.
Un procedimiento debe definir:
- quién puede iniciarlo;
- qué métricas lo activan;
- cuánto tarda;
- cómo afecta datos;
- cómo se comunica;
- cómo se verifica.
El rollback no siempre resulta seguro.
Una versión nueva puede haber:
- eliminado datos;
- enviado mensajes;
- realizado cobros;
- cambiado formatos;
- creado registros.
En estos casos puede ser preferible un roll forward mediante una corrección rápida.
Observabilidad
Después del despliegue deben observarse señales técnicas y comerciales.
Logs
Registran errores, advertencias y operaciones.
Métricas
Pueden incluir:
- solicitudes;
- errores;
- latencia;
- CPU;
- memoria;
- conexiones;
- colas.
Trazas
Permiten seguir una solicitud entre servicios.
Real User Monitoring
Mide la experiencia de usuarios reales.
Monitoreo sintético
Ejecuta recorridos automáticos periódicos.
Eventos comerciales
Deben comprobarse:
- leads;
- pagos;
- ventas;
- registros;
- conversiones;
- mensajes.
Un despliegue puede funcionar técnicamente y dejar de registrar conversiones debido a un cambio de analítica.
Despliegue y SEO
El despliegue puede afectar directamente el rastreo, la indexación y el posicionamiento.
Los riesgos incluyen:
- eliminación de páginas;
- cambios de URL;
- códigos incorrectos;
- redirecciones faltantes;
- etiquetas canonical incorrectas;
- bloqueo mediante robots.txt;
- noindex accidental;
- sitemaps desactualizados;
- datos estructurados inválidos;
- contenido incompleto;
- enlaces rotos;
- lentitud;
- errores 500.
Antes de desplegar deben revisarse:
- títulos;
- metadescripciones;
- encabezados;
- canonical;
- robots;
- sitemaps;
- enlaces;
- datos estructurados;
- códigos HTTP;
- Core Web Vitals.
Una migración de dominio o arquitectura necesita un plan específico de redirecciones y monitoreo.
Los entornos de staging deben impedir indexación mediante:
- autenticación;
- restricciones de acceso;
- noindex como medida adicional.
Depender solamente de robots.txt no protege contenido privado.
Despliegue y analítica
Las etiquetas de analítica también forman parte del sistema.
Un despliegue puede:
- eliminar eventos;
- duplicar mediciones;
- cambiar nombres;
- perder parámetros;
- activar etiquetas sin consentimiento;
- romper atribución.
Debe comprobarse:
- carga del gestor de etiquetas;
- consentimiento;
- eventos;
- comercio electrónico;
- conversiones;
- deduplicación;
- campañas;
- integraciones server-side.
Los eventos de prueba deben diferenciarse de los datos reales.
Aplicaciones en marketing
Landing pages
Una campaña puede necesitar publicar rápidamente una página específica.
El despliegue debe verificar:
- formulario;
- mensaje;
- pixel;
- analítica;
- velocidad;
- dominio;
- certificado;
- versión móvil.
Sitios corporativos
Los cambios pueden incluir:
- servicios;
- portafolio;
- equipo;
- contacto;
- identidad visual;
- contenidos.
Comercio electrónico
Un despliegue puede modificar:
- catálogo;
- precios;
- carrito;
- pago;
- impuestos;
- inventario;
- envío.
Las tiendas deben evitar cambios arriesgados durante periodos de mayor venta.
Campañas publicitarias
La página de destino debe estar disponible antes de activar anuncios.
Un proceso puede coordinar:
- despliegue;
- validación;
- monitoreo;
- activación de campaña.
SEO
Los despliegues editoriales y técnicos pueden publicar:
- nuevos contenidos;
- redirecciones;
- schema;
- mejoras de velocidad;
- enlaces internos.
Marketing de contenidos
Los gestores pueden utilizar despliegues automáticos cuando se publica o actualiza contenido.
Headless CMS
Un webhook del CMS puede activar la reconstrucción de las páginas afectadas.
Personalización
Una nueva regla puede activarse mediante configuración o feature flag.
Pruebas A/B
Las variantes necesitan despliegue, segmentación y medición.
Formularios
Debe verificarse el recorrido completo:
- envío;
- validación;
- CRM;
- correo;
- asignación;
- confirmación.
Automatización de marketing
Los flujos pueden desplegarse como:
- scripts;
- funciones;
- webhooks;
- workflows;
- contenedores.
Chatbots y agentes
El despliegue puede incluir:
- prompts;
- herramientas;
- modelos;
- bases de conocimiento;
- permisos;
- canales.
Eventos
Los sistemas de registro y boletaje pueden necesitar capacidad adicional para picos.
Sitios locales
Las agencias pueden desplegar versiones regionales con datos de ciudad, inventario y contacto.
Directorios
Los despliegues pueden actualizar:
- perfiles;
- filtros;
- búsquedas;
- mapas;
- reseñas.
Marketing móvil
Las PWA y aplicaciones móviles necesitan estrategias de publicación y actualización específicas.
Ventajas del concepto
Entrega de valor. Permite que los cambios lleguen a los usuarios.
Automatización. Reduce trabajo manual repetitivo.
Consistencia. El mismo proceso se aplica entre versiones.
Velocidad. Las organizaciones pueden publicar con mayor frecuencia.
Trazabilidad. Cada despliegue queda relacionado con una versión.
Reproducibilidad. Los entornos pueden reconstruirse.
Reducción de errores humanos. Las tareas automáticas disminuyen variaciones.
Validación previa. Los pipelines ejecutan pruebas.
Recuperación. Las versiones anteriores pueden mantenerse disponibles.
Escalabilidad. El proceso puede atender múltiples servicios y entornos.
Colaboración. Desarrollo, operaciones y marketing comparten un flujo.
Seguridad. Los controles pueden incorporarse dentro del pipeline.
Observabilidad. El resultado puede medirse inmediatamente.
Experimentación. Las funciones pueden desplegarse gradualmente.
Continuidad. Las estrategias avanzadas reducen interrupciones.
Limitaciones
Complejidad. Los pipelines avanzados requieren conocimientos especializados.
Costo. La infraestructura, herramientas y entornos generan gastos.
Dependencia de automatización. Un pipeline incorrecto puede propagar errores rápidamente.
Falsos positivos y negativos. Las pruebas no detectan todos los problemas.
Gestión de secretos. Los sistemas de despliegue poseen accesos privilegiados.
Cambios de base de datos. Pueden ser difíciles de revertir.
Diferencias entre entornos. Staging puede no reproducir producción completamente.
Dependencia de proveedores. Las plataformas pueden introducir vendor lock-in.
Interrupciones. Determinadas estrategias todavía requieren downtime.
Compatibilidad. Las versiones antiguas y nuevas pueden coexistir.
Observabilidad insuficiente. Un error puede pasar desapercibido.
Deuda de pipelines. Las configuraciones también necesitan mantenimiento.
Exceso de velocidad. Desplegar frecuentemente sin control puede aumentar incidentes.
Aprobaciones lentas. Los procesos manuales pueden retrasar valor.
Dificultad cultural. Los equipos necesitan compartir responsabilidad.
Consideraciones técnicas o estadísticas
Frecuencia de despliegue
Número de despliegues realizados durante un periodo.
Lead time for changes
Tiempo desde que un cambio se incorpora hasta que funciona en producción.
Change failure rate
Proporción de despliegues que provocan:
- incidente;
- rollback;
- corrección urgente;
- degradación.
Mean Time to Recovery
Tiempo promedio necesario para recuperar el servicio después de una falla.
Duración del pipeline
Tiempo necesario para:
- construir;
- probar;
- publicar;
- desplegar.
Tasa de éxito
<syntaxhighlight lang="text"> despliegues exitosos / despliegues totales </syntaxhighlight>
Tiempo de rollback
Periodo necesario para restaurar una versión funcional.
Cobertura de pruebas
Proporción aproximada de código o comportamiento cubierto por pruebas.
No representa por sí misma la calidad de las validaciones.
Disponibilidad durante despliegue
Mide el impacto del proceso sobre los usuarios.
Error budget
Cantidad de indisponibilidad o errores tolerada dentro de un objetivo de servicio.
Métricas comerciales
Después de un despliegue pueden compararse:
- conversión;
- ventas;
- leads;
- abandono;
- errores de pago;
- velocidad;
- interacción.
Métricas de seguridad
- vulnerabilidades;
- secretos detectados;
- artefactos firmados;
- dependencias;
- permisos;
- cambios no autorizados.
Herramientas y plataformas
Git. Control de versiones distribuido.
GitHub Actions. Automatización asociada con repositorios de GitHub.
GitLab CI/CD. Pipelines integrados con GitLab.
Jenkins. Servidor de automatización extensible.
CircleCI. Plataforma de integración y entrega.
Travis CI. Servicio de automatización para proyectos.
Bitbucket Pipelines. CI/CD integrado con Bitbucket.
Azure DevOps. Repositorios, pipelines, artefactos y gestión.
AWS CodePipeline. Automatización dentro de Amazon Web Services.
Google Cloud Build. Construcción y despliegue dentro de Google Cloud.
Argo CD. Herramienta GitOps para Kubernetes.
Flux. Sistema GitOps para Kubernetes.
Tekton. Framework de pipelines sobre Kubernetes.
Spinnaker. Plataforma de entrega continua para entornos distribuidos.
Octopus Deploy. Automatización de despliegues empresariales.
Docker. Construcción y ejecución de contenedores.
Docker Compose. Definición de aplicaciones formadas por varios contenedores.
Kubernetes. Orquestación de contenedores.
Helm. Gestión de paquetes y plantillas para Kubernetes.
Terraform. Infraestructura como código.
Pulumi. Infraestructura mediante lenguajes de programación.
Ansible. Automatización y configuración de sistemas.
Puppet. Gestión declarativa de configuración.
Chef. Automatización de infraestructura.
Vagrant. Creación de entornos reproducibles.
Vercel. Despliegue de aplicaciones frontend y frameworks.
Netlify. Despliegue de sitios y funciones.
Cloudflare Pages. Publicación de sitios y aplicaciones distribuidas.
GitHub Pages. Hosting estático desde repositorios.
Firebase Hosting. Alojamiento de aplicaciones web.
Render. Despliegue de servicios, sitios y bases.
Railway. Plataforma para aplicaciones y servicios.
Heroku. Plataforma como servicio.
AWS Elastic Beanstalk. Despliegue administrado de aplicaciones.
Azure App Service. Plataforma administrada para aplicaciones web.
Google App Engine. Plataforma administrada de aplicaciones.
AWS Lambda. Funciones serverless.
Azure Functions. Funciones activadas por eventos.
Google Cloud Functions. Ejecución serverless.
Sentry. Monitoreo de errores.
Prometheus. Métricas.
Grafana. Visualización y alertas.
OpenTelemetry. Telemetría estandarizada.
Datadog. Observabilidad y monitoreo.
New Relic. Monitoreo de aplicaciones.
LaunchDarkly. Gestión de feature flags.
Unleash. Plataforma abierta de feature flags.
FileZilla. Cliente de FTP, FTPS y SFTP.
rsync. Sincronización de archivos.
SSH. Administración y ejecución remota.
Relación con otros conceptos
Desarrollo de software. Proceso general de construcción de sistemas.
Entrega de software. Actividad de preparar y proporcionar versiones.
Lanzamiento de software. Presentación o disponibilidad formal de una versión.
Publicación. Acción de hacer visible contenido o software.
Release. Versión identificada y preparada.
Control de versiones. Registro histórico de cambios.
Git. Sistema distribuido de control de versiones.
CI/CD. Automatización de integración y entrega.
Integración continua. Validación frecuente de cambios.
Entrega continua. Preparación constante para desplegar.
Despliegue continuo. Publicación automática en producción.
DevOps. Colaboración entre desarrollo y operación.
Site Reliability Engineering. Ingeniería orientada a confiabilidad.
Infraestructura como código. Gestión de infraestructura mediante archivos.
GitOps. Operación declarativa basada en Git.
Contenedor. Unidad empaquetada de software.
Docker. Plataforma de contenedores.
Kubernetes. Orquestación.
Serverless. Ejecución administrada por eventos.
Hosting. Infraestructura donde se despliega un proyecto.
Servidor. Sistema que ejecuta servicios.
FTP. Protocolo histórico de transferencia.
SFTP. Transferencia protegida mediante SSH.
SSH. Acceso remoto seguro.
Rollback. Retorno hacia una versión anterior.
Feature flag. Activación de funciones mediante configuración.
Blue-green deployment. Estrategia con dos entornos.
Canary deployment. Exposición gradual de una versión.
A/B testing. Comparación experimental de variantes.
Observabilidad. Comprensión mediante telemetría.
Monitoreo. Seguimiento de métricas y estados.
Aplicación web. Producto que puede desplegarse en servidores.
Frontend. Capa visible que puede publicarse como archivos.
Backend. Servicios y lógica desplegados en infraestructura.
Base de datos. Almacenamiento que puede requerir migraciones.
Computación en la nube. Recursos bajo demanda.
CDN. Distribución global de contenido.
Webhook. Evento que puede iniciar un despliegue.
WordPress. CMS con procesos de actualización y despliegue.
SEO. Área afectada por cambios de estructura y contenido.
Marketing digital. Disciplina que depende de publicaciones confiables.
Diferencias entre despliegue y publicación
Publicación suele referirse a hacer visible un contenido, página o recurso.
Despliegue comprende un proceso técnico más amplio que puede incluir construcción, instalación, migraciones y verificación.
Una entrada editorial puede publicarse desde un CMS sin desplegar una nueva versión del software.
Diferencias entre despliegue y lanzamiento
El despliegue es una actividad técnica.
El lanzamiento es una decisión de producto, negocio o marketing mediante la cual una función se presenta a una audiencia.
Una versión puede desplegarse previamente y lanzarse después mediante una feature flag.
Diferencias entre despliegue y release
Un release es una versión identificada y preparada para distribución.
El despliegue es el proceso que instala o activa ese release dentro de un entorno.
El mismo release puede desplegarse en desarrollo, staging y producción.
Diferencias entre entrega continua y despliegue continuo
La entrega continua mantiene cada cambio listo para producción, pero puede requerir aprobación manual.
El despliegue continuo publica automáticamente cada cambio que supera las validaciones.
Diferencias entre despliegue y migración
El despliegue instala una versión o cambio.
La migración traslada o transforma datos, infraestructura o plataformas.
Una migración puede formar parte de un despliegue, aunque también puede ejecutarse como proyecto independiente.
Diferencias entre despliegue y actualización
Una actualización sustituye o modifica una versión existente.
El despliegue puede ser la instalación inicial o una actualización posterior.
Diferencias entre despliegue y aprovisionamiento
El aprovisionamiento crea recursos como servidores, redes y cuentas.
El despliegue instala software o configuración sobre esos recursos.
La infraestructura como código puede automatizar ambos procesos.
Buenas prácticas
Utilizar control de versiones. Todo cambio debe relacionarse con un commit identificable.
Construir una sola vez. El mismo artefacto debe promocionarse entre entornos.
Evitar modificar artefactos después de construirlos. Las diferencias reducen trazabilidad.
Automatizar tareas repetitivas. Disminuye errores manuales.
Mantener pipelines versionados. La configuración también forma parte del producto.
Ejecutar pruebas antes de producción. Las validaciones deben ser confiables.
Aplicar análisis de seguridad. Deben revisarse código, dependencias e imágenes.
Utilizar entornos separados. Producción no debe utilizarse para experimentar.
Mantener staging parecido a producción. Facilita detectar incompatibilidades.
Gestionar secretos correctamente. No deben aparecer dentro de repositorios ni logs.
Aplicar privilegio mínimo. El pipeline recibe permisos limitados.
Utilizar artefactos firmados. Ayuda a verificar procedencia e integridad.
Registrar aprobaciones. Los cambios de alto riesgo necesitan trazabilidad.
Desplegar cambios pequeños. Facilita análisis y recuperación.
Utilizar estrategias graduales. Canary y blue-green reducen impacto.
Preparar rollback. Debe probarse antes de necesitarlo.
Diseñar migraciones compatibles. Las versiones pueden coexistir temporalmente.
Realizar backups. Los cambios destructivos necesitan recuperación.
Automatizar smoke tests. Deben ejecutarse inmediatamente después.
Monitorear métricas técnicas. Errores y latencia pueden mostrar fallos.
Monitorear métricas comerciales. Leads y pagos deben seguir funcionando.
Mantener health checks. El balanceador debe retirar instancias defectuosas.
Evitar despliegues directos desde computadoras personales. Conviene utilizar pipelines controlados.
Mantener logs de despliegue. Debe conocerse qué ocurrió.
Utilizar feature flags con fecha de retiro. Las flags antiguas aumentan complejidad.
Documentar procedimientos de emergencia. El equipo debe saber cómo actuar.
Probar restauraciones. Un respaldo no verificado puede ser inútil.
Coordinar con marketing y soporte. Los cambios visibles necesitan comunicación.
Evitar ventanas de alto riesgo. Las tiendas pueden limitar cambios durante promociones.
Realizar retrospectivas. Los incidentes deben producir mejoras.
Errores comunes
Copiar archivos directamente sobre producción. Los usuarios pueden recibir una versión incompleta.
Desplegar sin respaldo. Los datos o archivos pueden perderse.
Modificar producción manualmente. Se crea una diferencia no registrada.
Utilizar la etiqueta latest sin versión. Dificulta saber qué se ejecuta.
Construir por separado en cada entorno. Los artefactos pueden diferir.
Incluir secretos en el repositorio. Las credenciales quedan expuestas.
No revisar permisos del pipeline. Una cuenta comprometida puede controlar producción.
Desplegar cambios grandes. Aumenta el impacto y dificulta diagnóstico.
No probar migraciones con datos representativos. Los tiempos reales pueden ser mayores.
Eliminar columnas inmediatamente. Las instancias anteriores pueden necesitarlas.
Asumir que rollback siempre funciona. Los datos pueden ser incompatibles.
No monitorizar después del despliegue. Los errores llegan mediante quejas.
Confiar únicamente en que el proceso terminó. Un pipeline verde no garantiza una experiencia correcta.
No probar formularios. Los leads pueden dejar de registrarse.
No probar pagos. La tienda puede permanecer visible y no vender.
No revisar analítica. Las conversiones pueden duplicarse o desaparecer.
No limpiar caché. Los usuarios pueden recibir archivos incompatibles.
Limpiar toda la caché durante un pico. Puede saturar el servidor.
Cambiar DNS sin planificación. Produce interrupciones y propagación desigual.
No conservar la versión anterior. Aumenta el tiempo de recuperación.
Compartir credenciales de producción. Impide auditoría.
Desplegar desde una rama incorrecta. Publica cambios no aprobados.
No fijar versiones de dependencias. La construcción puede cambiar sin modificar el código.
Descargar scripts externos durante producción. Introduce dependencia y riesgo.
No verificar la procedencia del artefacto. Puede desplegarse contenido manipulado.
Ignorar los entornos de preview. Los cambios visuales llegan sin revisión.
No eliminar feature flags antiguas. La lógica se vuelve difícil de mantener.
Realizar despliegues automáticos sin límites. Un error puede propagarse rápidamente.
No documentar el incidente. El mismo problema puede repetirse.
Desafíos éticos y organizacionales
Responsabilidad. Debe conocerse quién autoriza y quién responde por un despliegue.
Privacidad. Los entornos de prueba no deben exponer datos personales.
Seguridad de la cadena de suministro. El pipeline utiliza dependencias, acciones e imágenes externas.
Concentración de permisos. Los sistemas de CI/CD poseen acceso privilegiado.
Transparencia. Los usuarios deben conocer cambios relevantes en funciones, precios y privacidad.
Manipulación experimental. Las pruebas A/B deben respetar a los usuarios.
Accesibilidad. Una nueva versión no debe excluir a personas con discapacidades.
Continuidad. Un despliegue defectuoso puede interrumpir servicios esenciales.
Condiciones laborales. La presión por publicar rápidamente puede aumentar errores y agotamiento.
Ventanas fuera de horario. Los despliegues nocturnos pueden trasladar riesgos hacia el equipo.
Automatización sin supervisión. Los sistemas pueden publicar cambios dañinos a gran velocidad.
Vendor lock-in. Los pipelines pueden depender de plataformas propietarias.
Sostenibilidad. Los entornos duplicados consumen cómputo y almacenamiento.
Gobernanza. Las organizaciones necesitan políticas proporcionales al riesgo.
Un marco organizacional puede incluir:
- responsables;
- entornos;
- permisos;
- aprobaciones;
- pruebas;
- estrategias;
- métricas;
- comunicación;
- recuperación;
- auditoría.
Gobernanza organizacional
Cada despliegue puede documentar:
- aplicación;
- versión;
- entorno;
- responsable;
- fecha;
- cambios;
- riesgos;
- pruebas;
- migraciones;
- estrategia;
- rollback;
- resultado.
Los proyectos pueden clasificarse por riesgo.
Riesgo bajo. Cambio editorial o visual reversible.
Riesgo moderado. Modificación funcional sin datos críticos.
Riesgo alto. Pagos, autenticación, inventarios o bases.
Riesgo crítico. Infraestructura, permisos, datos regulados o procesos financieros.
Los cambios de mayor riesgo pueden requerir:
- revisión adicional;
- aprobación;
- ventana programada;
- respaldo;
- canary;
- observación extendida;
- plan de comunicación.
Impacto actual
El despliegue ha evolucionado desde una operación ocasional y manual hacia una capacidad continua de las organizaciones digitales.
Las plataformas modernas permiten publicar cambios varias veces al día.
La automatización ha reducido el costo de distribuir software y ha acelerado la experimentación.
El uso de contenedores, infraestructura como código y GitOps mejora la reproducibilidad de los entornos.
Las estrategias blue-green y canary permiten introducir versiones con menor impacto.
Las feature flags separan el despliegue técnico del lanzamiento comercial.
La observabilidad permite evaluar un cambio mediante métricas reales y no únicamente mediante pruebas previas.
En marketing, el despliegue se ha convertido en una parte directa de la ejecución de campañas. Publicar una página, modificar un formulario o activar un experimento requiere coordinación técnica y comercial.
La velocidad de despliegue puede convertirse en una ventaja competitiva cuando se mantiene la calidad.
La automatización también aumenta el alcance de los errores. Una configuración incorrecta puede afectar simultáneamente múltiples regiones y servicios.
El desarrollo asistido por inteligencia artificial permite crear pipelines y configuraciones con mayor rapidez, aunque aumenta la importancia de revisar permisos, dependencias y decisiones arquitectónicas.
Futuro y tendencias
Despliegues más pequeños y frecuentes. Los equipos reducirán el tamaño de cada cambio.
GitOps. Los repositorios declarativos continuarán coordinando infraestructura y aplicaciones.
Progressive delivery. Las versiones se activarán de forma gradual según métricas.
Automatización basada en políticas. Los pipelines evaluarán seguridad, costo y cumplimiento.
Artefactos firmados. La procedencia del software adquirirá mayor relevancia.
Software Bill of Materials. Los despliegues incluirán inventarios de componentes.
Entornos efímeros. Cada cambio podrá disponer de una vista previa aislada.
Plataformas internas. Los equipos utilizarán caminos estandarizados para publicar.
Serverless. Más aplicaciones se desplegarán mediante funciones y servicios administrados.
Edge deployment. El código se distribuirá hacia ubicaciones cercanas al usuario.
Bases de datos compatibles con múltiples versiones. Las migraciones progresivas serán más comunes.
Feature flags automatizadas. Las funciones podrán activarse según métricas y segmentos.
Rollback automático. Los sistemas revertirán versiones cuando detecten degradación.
Remediación asistida por IA. Los agentes analizarán errores y propondrán correcciones.
Despliegue agéntico. Agentes podrán construir, probar y publicar bajo políticas.
Observabilidad predictiva. Los modelos detectarán anomalías antes de incidentes graves.
Despliegues sostenibles. Las plataformas considerarán consumo energético y uso de recursos.
Mayor aislamiento. Los pipelines utilizarán identidades temporales y permisos mínimos.
Secretos de corta duración. Las credenciales permanentes serán sustituidas por tokens temporales.
Políticas como código. Las reglas organizacionales se evaluarán automáticamente.
Mayor separación entre deploy y release. Las funciones podrán instalarse y activarse de manera independiente.
Pruebas en producción controladas. Shadow traffic y canary se utilizarán con mayor frecuencia.
Reconciliación continua. Los controladores corregirán diferencias entre estado deseado y real.
Despliegues multicloud. Las organizaciones distribuirán servicios entre proveedores.
Revalorización de la simplicidad. Los proyectos pequeños evitarán infraestructura innecesariamente compleja.
Véase también
- Desarrollo de software
- Entrega de software
- Lanzamiento de software
- Release
- Publicación
- Control de versiones
- Git
- CI/CD
- Integración continua
- Entrega continua
- Despliegue continuo
- DevOps
- Site Reliability Engineering
- Infraestructura como código
- GitOps
- Contenedor
- Docker
- Kubernetes
- Serverless
- Hosting
- Servidor
- FTP
- SFTP
- SSH
- Rollback
- Feature flag
- Blue-green deployment
- Canary deployment
- A/B testing
- Observabilidad
- Monitoreo
- Aplicación web
- Frontend
- Backend
- Base de datos
- Computación en la nube
- CDN
- Webhook
- WordPress
- WooCommerce
- SEO
- Analítica web
- Automatización
- Marketing digital
- Ciberseguridad
- Cadena de suministro de software
Referencias
- Git. Reference Manual.
- GitHub Docs. GitHub Actions.
- GitHub Docs. Deployments and Environments.
- GitLab Docs. CI/CD.
- Jenkins. Documentation.
- Jenkins. Pipeline.
- Docker Docs. Build.
- Docker Docs. Building Images.
- Kubernetes. Deployments.
- Kubernetes. Managing Resources.
- Kubernetes. Liveness, Readiness and Startup Probes.
- Helm. Documentation.
- Argo CD. Documentation.
- Flux. Documentation.
- OpenGitOps. GitOps Principles.
- Terraform. Documentation.
- Ansible. Documentation.
- AWS. CodePipeline Documentation.
- AWS. Elastic Beanstalk Documentation.
- Microsoft. Azure Pipelines Documentation.
- Microsoft. Deployment Best Practices for Azure App Service.
- Google Cloud. Cloud Build Documentation.
- Google Cloud. Cloud Deploy Documentation.
- Vercel. Deployments.
- Netlify. Deploy Overview.
- Cloudflare. Pages Build Configuration.
- GitHub Docs. GitHub Pages.
- Firebase. Hosting Documentation.
- Render. Deploys.
- Railway. Deployments.
- Heroku Dev Center. Deployment.
- Fowler, Martin. Blue Green Deployment.
- Fowler, Martin. Canary Release.
- Fowler, Martin. Continuous Integration.
- Google. Release Engineering.
- Google. Canarying Releases.
- Google. Configuration Design and Best Practices.
- DORA. DevOps Research and Assessment.
- LaunchDarkly. Documentation.
- Unleash. Documentation.
- Semantic Versioning. Semantic Versioning 2.0.0.
- Supply-chain Levels for Software Artifacts. SLSA.
- CISA. Software Bill of Materials.
- OWASP. DevSecOps Guideline.
- OWASP. Software Component Verification Standard.
- OWASP. CI/CD Security Cheat Sheet.
- OWASP. Secrets Management Cheat Sheet.
- OpenTelemetry. Documentation.
- Prometheus. Documentation.
- Grafana. Documentation.
- WordPress Developer Resources. Upgrading WordPress.
- WordPress Developer Resources. Migrating WordPress.
- Google Search Central. Site Moves with URL Changes.
- Google Search Central. HTTP Status Codes and Network Errors.
Bibliografía
- Bass, Len; Weber, Ingo; Zhu, Liming. DevOps: A Software Architect's Perspective. Addison-Wesley.
- Beyer, Betsy et al. Site Reliability Engineering: How Google Runs Production Systems. O’Reilly Media.
- Beyer, Betsy et al. The Site Reliability Workbook. O’Reilly Media.
- Burns, Brendan. Designing Distributed Systems. O’Reilly Media.
- Davis, Jennifer; Daniels, Katherine. Effective DevOps. O’Reilly Media.
- Forsgren, Nicole; Humble, Jez; Kim, Gene. Accelerate. IT Revolution.
- Fowler, Martin. Continuous Integration.
- Humble, Jez; Farley, David. Continuous Delivery. Addison-Wesley.
- Kim, Gene; Humble, Jez; Debois, Patrick; Willis, John. The DevOps Handbook. IT Revolution.
- Morris, Kief. Infrastructure as Code. O’Reilly Media.
- Nygard, Michael T. Release It!. Pragmatic Bookshelf.
- Rosenthal, Casey; Jones, Nora. Chaos Engineering. O’Reilly Media.
- Sharma, Sanjeev. The DevOps Adoption Playbook. Wiley.
- Winters, Titus; Manshreck, Tom; Wright, Hyrum. Software Engineering at Google. O’Reilly Media.
- Google. Site Reliability Engineering.
- Kubernetes Project. Kubernetes Documentation.
- Docker. Docker Documentation.
- OWASP Foundation. CI/CD Security Cheat Sheet.