¿Tendencia o Tradición?: DevOps ya no es una tendencia innovadora, sino una forma consolidada de hacer negocios, arraigada en las prácticas tanto de desarrolladores como de profesionales de TI, lo que marca su evolución de una idea radical a una metodología convencional.
La Filosofía DevOps: DevOps representa la unión de desarrollo y operaciones para acelerar la entrega y mejorar la calidad del software. Se basa en una cultura de colaboración y evolución continua, buscando romper los silos tradicionales.
La Evolución Tecnológica Impulsa DevOps: El auge de la contenerización, los ecosistemas nativos en la nube y la Infraestructura como Código (IaC) potenciaron el movimiento DevOps, aportando mayor agilidad y eficiencia a los procesos de desarrollo y despliegue de software.
La Seguridad Toma un Papel Protagonista: La aparición de DevSecOps integra la seguridad desde las primeras etapas del desarrollo de software, resaltando el cambio hacia la detección temprana de vulnerabilidades para minimizar riesgos.
Cultura y Herramientas Van de la Mano: Aunque DevOps se beneficia enormemente de avances tecnológicos como la IA y el aprendizaje automático, su esencia gira en torno a fomentar una cultura positiva que priorice a las personas, la colaboración y la mejora continua.
¿Cuándo una tendencia tecnológica deja de ser una tendencia y simplemente se convierte en una práctica habitual empresarial?
Podríamos pasar tiempo debatiendo ese punto de inflexión en particular; no hay una respuesta "correcta" para la pregunta. Basta decir que cuando una "tendencia" lleva más de dos décadas —como es el caso de la cultura DevOps y sus prácticas— entonces simplemente es la forma en que se hacen las cosas. (Según la mayoría, DevOps empezó a tomar su forma actual alrededor de 2007.)
En nuestra Guía definitiva de DevOps, así definimos el término: “DevOps es un conjunto de prácticas y filosofías que combina el desarrollo de software (Dev) y las operaciones de TI (Ops), con el objetivo de acortar el ciclo de vida del desarrollo de sistemas y proporcionar entrega continua con alta calidad de software. Es un enfoque que enfatiza la colaboración, la comunicación y la integración entre desarrolladores y profesionales de TI.”
En sus fases iniciales, esto sonaba extraño y aterrador —incluso radical— para algunos profesionales de TI. Ahora, es tan común que hasta resulta cotidiano. En el informe State of CI/CD de la CD Foundation, el 83 % de los desarrolladores dijo estar involucrado en actividades relacionadas con DevOps. No es que sea todo el mundo, pero se está acercando.
Dicho esto, DevOps —que es tanto una cultura como un conjunto concreto de herramientas o procesos—, por naturaleza, evoluciona continuamente.
En este artículo, veremos cómo llegamos a este punto y cómo DevOps sigue evolucionando hoy en día. Primero, es importante entender por qué existe DevOps.
¿Por qué es importante DevOps?
DevOps combina los términos "desarrollo" y "operaciones", dos áreas tecnológicas con larga trayectoria. El objetivo principal de DevOps es fomentar un alto grado de integración entre estos dos componentes clave de un sistema de TI, centrándose principalmente en la entrega continua y la prueba de calidad del software. Tradicionalmente, estas funciones estaban separadas y aisladas, lo que causaba cuellos de botella, retrasos en la entrega, problemas de calidad, señalamientos de culpabilidad (cuando algo fallaba), debilidades en la seguridad y otros inconvenientes.
DevOps —tanto como término, pero sobre todo como cultura y práctica— refleja la necesidad de que las organizaciones de software construyan y entreguen código más rápido y de manera más frecuente sin sacrificar calidad, confiabilidad o seguridad.
¿Cómo llegamos aquí? Tendencias DevOps del pasado
El gran crecimiento de DevOps durante la última década o más se cruzó con múltiples tendencias tecnológicas relacionadas que permitieron prácticas DevOps y surgieron a partir de los principios y la cultura DevOps. Algunos de los factores más notables que nos llevaron a este punto incluyen:
Contenerización: Hemos visto una mayor adopción de Docker y otras herramientas para la contenerización de software, lo que ha permitido que las aplicaciones sean portables entre diferentes plataformas, como diversos entornos de nube pública y privada (incluidos Amazon Web Services, Microsoft Azure y Google Cloud Platform), así como infraestructuras locales.
Ecosistema nativo de la nube: Hemos visto un gran auge en el desarrollo de aplicaciones nativas de la nube, lo que garantiza la escalabilidad de la infraestructura y los servicios. Para representar todo el panorama nativo de la nube en un solo lugar, ¡se necesitaría un pizarrón del tamaño de una cartelera— incluso en un navegador web, seguramente tendrás que desplazarte para verlo todo!
Ciberseguridad: Si bien DevOps podría haberse enfocado inicialmente en una alineación más estrecha entre desarrollo y operaciones, también puso de manifiesto la necesidad de priorizar la seguridad temprano en el ciclo de vida del desarrollo de software (SDLC). DevSecOps surgió como una tendencia importante, integrando la seguridad en la cadena DevOps en lugar de tratarla como una entidad separada. Esto facilitó la detección temprana de vulnerabilidades, entre otros beneficios, minimizando los riesgos e impactos en producción.
Infraestructura como Código (IaC): DevOps hizo de la automatización un ciudadano de primera clase en los entornos de TI, y esa tendencia se destacó especialmente en el ámbito de la infraestructura; la gestión de la infraestructura solía ser una tarea muy manual y repetitiva, pero la introducción de Infraestructura como Código (IaC) proporcionó mecanismos eficientes, confiables y repetibles para gestionar la infraestructura que sostiene a las aplicaciones de software.
Cultura: DevOps nunca fue solo tecnología. Más bien, su objetivo fue dar prioridad a las personas y aliviarles cargas u obstáculos innecesarios en su trabajo. Como resultado, DevOps ayudó a dar un nuevo enfoque en la importancia de una cultura laboral saludable y no tóxica, enfatizando aspectos como la seguridad psicológica, los exámenes post mortem sin culpas, incentivos compartidos, mejora continua y mucho más.
Inteligencia artificial y aprendizaje automático: Aunque los grandes modelos de lenguaje (LLMs) y lo generativo están en auge en este momento, la IA/ML ciertamente no es algo nuevo. El aprendizaje automático, en particular, ya se ha utilizado para análisis predictivos, detección de errores y automatización de procesos en varios contextos DevOps.
Tendencias actuales de DevOps
Aunque la mayoría de los patrones mencionados anteriormente se mantienen vigentes desde hace tiempo, eso no significa que DevOps se haya estancado. De hecho, parece estar tan de moda como siempre —y tan solicitado como nunca desde la perspectiva de contratación—. Una reciente búsqueda en todo Estados Unidos de puestos de ingeniero DevOps en LinkedIn —un solo título de trabajo entre una multitud de roles potencialmente relevantes— arrojó cerca de 5,000 vacantes abiertas.
A medida que ha madurado, DevOps ha seguido evolucionando. Analicemos cinco de las formas más visibles en las que DevOps continúa cambiando.
1. Adopción generalizada de Kubernetes
Con el aumento vertiginoso de la adopción de contenedores, se hizo rápidamente evidente que los equipos DevOps necesitaban una mejor forma de gestionar todo. Ahí es donde entra Kubernetes, que se convirtió en el estándar de orquestación de contenedores y en una plataforma común (disponible en muchas distribuciones o variantes) para que los equipos gestionen sus aplicaciones e infraestructura.
“Kubernetes y los contenedores hicieron posible que los equipos empaquetaran todos los entornos necesarios y ejecutaran su código en una plataforma estándar, de modo que los equipos de operaciones solo tuvieran que preocuparse por la salud de la plataforma de Kubernetes”, nos cuenta Vitor Avancini, CTO de la consultora de IA y datos Indicium.
Kubernetes ofrece una infraestructura robusta de automatización, redes y almacenamiento para las cargas de trabajo nativas en la nube. También es lo que hizo una de las promesas iniciales de la contenerización —la capacidad de mover cargas de trabajo entre entornos sin tener que reconstruirlas esencialmente— mucho más realista: “Facilitó al equipo de operaciones copiar y pegar múltiples entornos, ya que no se necesitan entornos diferentes para diferentes pilas de aplicaciones.”
Eso ayuda a explicar por qué aproximadamente dos tercios de las organizaciones están ejecutando Kubernetes en producción, según la encuesta de 2023 de la Cloud Native Computing Foundation, mientras que otro 18 por ciento lo está evaluando activamente para uso en producción.
Herramientas DevOps que ayudan: Kubernetes (la distribución open source básica), más una amplia gama de software comercial y gestionado de gestión de contenedores.
2. La automatización está en todas partes en DevOps
Kubernetes es el ejemplo principal de una tendencia más amplia que echó raíces en los primeros días de DevOps: Automatizarlo todo.
Lo que empezó como un meme está cada vez más cerca de convertirse en realidad, ya que la automatización parece estar presente en todas partes dentro de DevOps, así como en la integración y entrega continuas (CI/CD) y los pipelines GitOps—desde escaneos de seguridad hasta revisiones de control de calidad, tareas de construcción y despliegue, implementación de políticas y más. Esto también se refleja en la enorme variedad de herramientas de automatización existentes. Algunas de ellas —en concreto, las herramientas low-code y no-code— ni siquiera requieren conocimientos de programación.
“Las cosas pueden volverse caóticas con toda la libertad que [DevOps] le da a los equipos, así que las herramientas de [automatización] pueden jugar un papel importante para mantener las cosas organizadas y gobernadas”, señala Avancini, señalando que las herramientas de Infraestructura como Código (IaC) como Terraform siguen desempeñando un papel importante aquí.
Herramientas DevOps que ayudan: Terraform, Ansible
La priorización es un desafío muy común, ya que las empresas suelen posponer tareas críticas en la nube como la optimización de bases de datos y el desarrollo de infraestructura para los trimestres posteriores o incluso para el año siguiente. Los equipos de DevOps están ansiosos por abordar estos problemas, pero una vez que se sientan a trabajar, el gran volumen de tareas suele dificultar descifrar cuáles son las de mayor valor y deben recibir prioridad.
Esta es en realidad la razón por la que Zesty se expandió a una plataforma que incluye información procesable, ayudando a las empresas a priorizar e implementar eficientemente primero las soluciones de mayor valor. Para priorizar efectivamente estas tareas, las empresas necesitan percepciones claras sobre el tiempo y las inversiones financieras involucradas. Las plataformas que automatizan estos procesos son invaluables, ya que permiten tomar mejores decisiones y asignar recursos de manera más eficiente. DevOps se ha vuelto cada vez más consciente del valor que aportan las plataformas con automatización, visibilidad y recomendaciones prácticas.
3. La arquitectura de microservicios también está en todas partes
La arquitectura de microservicios – que básicamente implica descomponer aplicaciones más grandes en componentes pequeños y discretos que se ejecutan de manera independiente mientras siguen trabajando juntos para formar el sistema mayor – no es nueva. Sin embargo, durante muchos años, este enfoque no siempre fue realista para muchas organizaciones.
Hoy, tres cuartas partes (74%) de las empresas utilizan microservicios, según Gartner, y casi todas las demás (23%) planean hacerlo en el futuro cercano.
“Los microservicios trajeron la oportunidad para que los equipos eligieran sus propios stacks de herramientas, lo que antes requería que los equipos de operaciones centrales proporcionaran diferentes entornos de pruebas y despliegue a los equipos de desarrollo”, dice Avancini.
Aquí se puede discutir el dilema del huevo y la gallina porque la arquitectura de microservicios se adapta de manera natural a los contenedores y Kubernetes; así que la madurez de lo primero probablemente impulsó la adopción de lo segundo, como también lo ha hecho la maduración general de las tecnologías y el desarrollo nativo en la nube. (Las aplicaciones completamente nuevas o "greenfield" que se construyen hoy en día es más probable que se desarrollen para entornos cloud-native, con los microservicios como una de las opciones arquitectónicas más destacadas).
La arquitectura de microservicios también ha ido de la mano con la computación sin servidor (o arquitectura serverless). Son cosas diferentes pero a menudo relacionadas: una forma simple de distinguirlas es que los microservicios son un enfoque arquitectónico para el diseño de software, mientras que el serverless es un enfoque arquitectónico para cómo se ejecuta ese software realmente.
Herramientas DevOps que ayudan: Prometheus, Compass, AWS Fargate
4. La ingeniería de plataformas es el nuevo DevOps (más o menos)
De acuerdo, el titular es un poco exagerado – la ingeniería de plataformas y DevOps son disciplinas diferentes, pero su relación continúa creciendo. Un dato anecdótico: el informe anual "State of DevOps" de Puppet incluyó en su subtítulo 2024: “La evolución de la ingeniería de plataformas”.
La ingeniería de plataformas es la disciplina de construir plataformas internas – con un fuerte énfasis en el autoservicio – para dar a desarrolladores y otros tecnólogos todo lo que necesitan para crear aplicaciones y servicios. Al igual que en DevOps, hay un gran énfasis en la automatización de infraestructura, flujos de trabajo y cadenas de herramientas estandarizadas, y demás. Por ejemplo, aprovisionar un ambiente de desarrollo o testeo no debería requerir enviar un ticket de solicitud a un equipo separado de gestión de infraestructura.
“[Una] gran tendencia es la ingeniería de plataformas, que proporcionará las herramientas y prácticas para que los equipos de desarrollo no solo puedan desarrollar sino también probar, monitorizar y revertir aplicaciones” de una forma unificada y coherente, dice Avancini, y sin tener que solicitar regularmente a los profesionales de operaciones la infraestructura y servicios que necesitan para lograrlo.
Avancini señala que también hay un cambio general en DevOps hacia la centralización de procesos, lo que al principio puede parecer contradictorio dados los desarrollos orgánicos de muchas culturas DevOps. Pero la ingeniería de plataformas puede verse bajo esta perspectiva: DevOps no significa anarquía. Los desarrolladores y otros profesionales de IT siguen necesitando herramientas, infraestructura y – sí – límites claros.
También verás a veces los términos "Plataforma de Desarrolladores Interna" (IDP) y Entorno de Desarrollo Integrado (IDE) en este contexto.
Herramientas DevOps que ayudan: Kubernetes, Humanitec
5. La IA tendrá un papel cada vez mayor en DevOps
Las aplicaciones emergentes de IA – representadas más recientemente por la nueva clase de aplicaciones de IA generativa basadas en LLM que han captado la atención últimamente – probablemente también encontrarán su camino en los procesos y cadenas de herramientas de DevOps. Incluso hay un término para esta combinación: AIOps.
Quizás la manera más sencilla de pensar en dónde será útil la IA es desde la perspectiva más amplia de la automatización: Si algo puede automatizarse, o si la inteligencia y el esfuerzo humanos pueden aprovecharse de alguna manera, la IA podría (y probablemente lo hará) tener un papel.
“La asistencia de IA tendrá un papel importante en DevOps, principalmente en la asistencia a la revisión de código, el análisis de calidad y seguridad del código, y la descripción automática de todos los efectos que podría tener el nuevo código al implementarse”, dice Avancini.
De hecho, existe una larga lista de posibles casos de uso, muchos de los cuales siguen apareciendo en la actualidad. Se espera que la automatización de la productividad de los desarrolladores y la seguridad sean dos de las áreas de mayor enfoque en un futuro próximo.
Herramientas de DevOps que pueden ayudar: GitHub Copilot
Conclusión
La cultura y las prácticas de DevOps han superado la prueba del tiempo, pero eso no significa que sean estáticas. ¿Cuáles son las últimas tendencias DevOps en tu organización? ¿Hacia dónde ves que se dirige DevOps en los próximos años? ¡Únete al boletín de The CTO Club para más noticias y debates del sector!
