Marketing

Apoyo al desarrollo de aplicaciones: infraestructura y DevOps sin magia de más

Rustam Atai10 min

Cuando un equipo empieza a desarrollar una aplicación, todo suele parecer sencillo. Un repositorio, un servidor, una base de datos, a veces Docker, despliegue por SSH — y parece que funciona. En esa fase casi nadie piensa en DevOps, SRE, plataformas de desarrollo y palabras parecidas.

Los problemas llegan después. Aparece staging, varios servicios, varios desarrolladores, releases, migraciones de base de datos, monitorización, logs, copias de seguridad, certificados, colas, CDN, Kubernetes, nubes. En un momento la infraestructura es más compleja que la propia aplicación y el tiempo se va en mantener todo eso, no en el producto.

Ahí es cuando las empresas empiezan a hablar de DevOps y SRE.


DevOps no va de servidores

Hay una idea equivocada habitual: DevOps es la persona que configura Kubernetes. En realidad DevOps trata de la velocidad y la estabilidad del desarrollo.

Existe un programa de investigación conocido, DevOps Research and Assessment (DORA) — informes anuales de Google que analizan miles de empresas y equipos en todo el mundo. Llevan años estudiando por qué unos equipos publican cambios rápido y con estabilidad y otros van lento y con fallos constantes. (Google Research)

Lo más útil de esos estudios es muy simple: el rendimiento del desarrollo no lo marcan el número de desarrolladores ni las tecnologías, sino el proceso de llevar cambios a producción.

En DORA hay métricas para ver la madurez: con qué frecuencia se despliega, cuánto tarda desde el commit hasta producción, con qué frecuencia fallan los releases y cuánto tarda el sistema en recuperarse tras un incidente. (Splunk)

Y eso importa para la dirección: la velocidad de desarrollo no es la velocidad de escribir código, sino la de llevar cambios al usuario.


Qué acelera de verdad el desarrollo

Quitando modas y quedándonos con la práctica, hay pocas cosas que pesan más.

La principal son compilación y despliegue automáticos (CI/CD). Cuando el código se compila, prueba y despliega solo, el release deja de ser un acontecimiento. Pasa a ser rutina. El equipo publica cambios pequeños a menudo, no grandes releases una vez al mes. Eso baja el riesgo y acelera el producto.

La segunda: entornos bien hechos. Si dev, staging y producción se parecen, hay muchos menos “a mí me funcionaba”. Eso ahorra muchísimo tiempo.

La tercera: monitorización y logs. Sin ellos el equipo va a ciegas. Con ellos se detectan problemas antes y los incidentes cuestan menos tiempo.

Otra pieza poco valorada: infraestructura como código. Si la infra está descrita en código, se pueden crear entornos nuevos, entornos de prueba y copias parecidas a producción con rapidez. Eso acelera servicios nuevos y experimentos.

Los estudios de DevOps muestran que los equipos con automatización de releases e infra publican más a menudo y se recuperan antes de los fallos — y eso va ligado al éxito del producto y del negocio. (Atlassian)


La infraestructura de desarrollo como plataforma

En un momento los equipos maduros dejan de ver la infra como un montón de servidores. La ven como plataforma de desarrollo.

Es decir, el desarrollador no tiene que pensar: dónde desplegar, cómo construir el contenedor, cómo configurar nginx, cómo hacer copias de seguridad, cómo revertir un release, cómo ver los logs.

Escribe código, hace merge — y lo demás ocurre solo. Compilación, pruebas, despliegue, métricas, logs, alertas, rollback — ya está montado.

Eso cambia mucho la velocidad del equipo. Desaparece mucha fricción alrededor del trabajo diario.


Qué podemos ofrecer

No soy una gran empresa de outsourcing ni vendo “transformación digital.” Soy ingeniero y llevo años en infraestructura, CI/CD, Kubernetes, monitorización y explotación de sistemas, y puedo ayudar a que el equipo tenga un proceso de desarrollo razonable.

Normalmente revisamos la infra y el flujo actuales y vamos acercando todo a un modelo más maduro. Aparecen compilaciones y despliegues automáticos, entorno de staging, monitorización, logging, copias de seguridad y un proceso de releases claro. Después el equipo publica más rápido y con menos problemas.

A veces la infra se monta en la del cliente — su nube o on-premise. A veces es más simple entregar una plataforma de desarrollo llave en mano para que el equipo pueda desarrollar y desplegar ya.

En ambos casos el objetivo es el mismo: que el desarrollo sea rápido, predecible y estable.


Lo esencial

Lo más importante que conviene tener claro: DevOps y SRE no son Kubernetes, Terraform y Grafana.

Tratan de:

  • que los cambios lleguen pronto a los usuarios,
  • que los releases no rompan el sistema,
  • que los problemas se detecten pronto,
  • que la infra no frene el desarrollo,
  • que el equipo pueda centrarse en el producto.

Cuando eso está bien hecho, la empresa avanza mucho más rápido aunque el tamaño del equipo no cambie.