Despliegue

De Wiki del Marketing
Ir a la navegación Ir a la búsqueda

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:

  1. Existencia de una versión: se identifica el código, configuración o artefacto que será publicado.
  1. Entorno de destino: el cambio se dirige hacia desarrollo, pruebas, staging, producción u otro espacio.
  1. Preparación: se validan dependencias, recursos, permisos y configuraciones.
  1. Distribución: los archivos o paquetes se trasladan hacia la infraestructura.
  1. Instalación: la versión se coloca dentro del sistema de destino.
  1. Configuración: se proporcionan variables, secretos, rutas, dominios y conexiones.
  1. Activación: la versión comienza a recibir solicitudes o ejecutar tareas.
  1. Verificación: se comprueba que el sistema funciona correctamente.
  1. Observabilidad: se monitorean métricas, registros, trazas y resultados.
  1. Recuperación: existe un procedimiento para revertir, reparar o reemplazar la versión.
  1. Trazabilidad: se registra quién desplegó, qué versión, cuándo y con qué resultado.
  1. 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:

  1. editar archivos localmente;
  1. abrir un cliente FTP;
  1. conectarse al hosting;
  1. reemplazar la versión anterior;
  1. abrir el sitio dentro del navegador;
  1. 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:

  1. equipo interno;
  1. usuarios piloto;
  1. clientes seleccionados;
  1. 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:

  1. generar una copia local;
  1. realizar respaldo del servidor;
  1. conectar mediante SFTP o FTPS;
  1. subir archivos a una carpeta temporal;
  1. verificar integridad;
  1. reemplazar la versión anterior;
  1. limpiar caché;
  1. 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:

  1. se carga la versión completa;
  1. se prueban archivos;
  1. se cambia el enlace `current`;
  1. 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:

  1. construir imagen;
  1. ejecutar pruebas;
  1. etiquetar imagen;
  1. publicar en registro;
  1. actualizar la plataforma;
  1. comprobar salud;
  1. 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:

  1. despliegue;
  1. validación;
  1. monitoreo;
  1. 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

Referencias

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.