Elogio fúnebre para DevOps
(matduggan.com)El concepto y la historia de DevOps
- DevOps es un concepto introducido alrededor de 2007, con el objetivo de eliminar la separación entre las personas que administran hardware y las que escriben software
- Al principio, fue un intento de aumentar la seguridad de los despliegues de código imitando procedimientos e ideas de la NASA
- En ese momento, el proceso de despliegue de software era el siguiente:
- El equipo de desarrollo preparaba una versión del software del servidor, el equipo de QA la probaba y luego se desplegaba al cliente
- El equipo de operaciones recibía un playbook con los cambios del software y cómo responder si surgían problemas
- Las actualizaciones se desplegaban gradualmente dentro del centro de datos mientras se monitoreaban
- Se fijaba una fecha de despliegue y se monitoreaba después del despliegue
Los problemas de DevOps
- DevOps era muy intensivo en trabajo
- Requería colaboración entre el equipo de desarrollo, el equipo de QA, redactores técnicos y el equipo de operaciones
- El despliegue de funcionalidades era lento y se priorizaban las actualizaciones importantes
- Muchas organizaciones adoptaron DevOps por las siguientes razones:
- No era fácil reemplazar al personal técnico
- Contratar era difícil y costoso
- Los vendors de SaaS reducían la complejidad
- Se enfatizaban las ventajas de las plataformas en la nube
- Los desarrolladores estaban molestos porque pequeños cambios tardaban mucho en desplegarse
Cómo era realmente DevOps
- DevOps tenía como objetivo integrar al equipo de desarrollo y al equipo de operaciones en un solo equipo
- Se despidió al equipo de QA, y el período de pruebas internas se redujo gracias a despliegues rápidos y retroalimentación veloz
- A veces DevOps se confunde con el SRE de Google, pero SRE tiene un enfoque más estructurado y estricto
- El proceso real de DevOps era el siguiente:
- Un desarrollador crea una rama en git y agrega una funcionalidad
- Abre un PR y, después de que un compañero lo revisa, se fusiona en main
- El sistema de CI/CD inicia la compilación y hace push del contenedor al registro
- El sistema de CD notifica a los servidores sobre una nueva release y monitorea si el despliegue fue exitoso
- Se monitorean los cambios posteriores al despliegue mediante métricas de reconocimiento de release
Factores del fracaso de DevOps
- Los desarrolladores probaban en entornos locales y desplegaban en servidores Linux, lo que generaba pequeñas diferencias
- Como el equipo de operaciones no monitoreaba el despliegue, era difícil resolver problemas
- Los desarrolladores carecían de conocimiento sobre la operación de sistemas
- La introducción de contenedores resolvió algunos problemas, pero la complejidad operativa seguía presente
La introducción de los contenedores y sus límites
- Los contenedores resolvieron el problema de "en mi máquina sí funciona"
- Simplificaron los componentes de configuración de los servidores Linux
- Problemas que aún permanecían
- Operar: mantenimiento de infraestructura, upgrades, etc., que requieren especialización
- Observar: dificultad para construir y administrar sistemas de monitoreo complejos
- Retroalimentación continua: deficiencias en el manejo de la retroalimentación interna
- Descubrir: falta de intercambio de conocimiento entre equipos
- Planificar: dificultad para establecer una planificación centralizada
La aparición de Platform Engineering
- Platform Engineering es un concepto posterior a DevOps: en lugar de que el equipo de desarrollo entienda la operación de la plataforma y resuelva problemas, un equipo de plataforma se encarga de ello
- Este enfoque separa con claridad las responsabilidades entre el equipo de desarrollo y la operación de la plataforma, dejando más claro el reparto de roles, pero sigue requiriendo muchas habilidades técnicas
- Tanto los desarrolladores como el equipo de operaciones tienen que hacer más trabajo
Conclusión
- Está creciendo la tendencia a buscar herramientas simples y no atadas a una plataforma dentro del espacio de infraestructura
- Muchas organizaciones están abandonando tecnologías complejas como Kubernetes y volviendo a workflows más simples
- Platform Engineering no es una solución universal, y las organizaciones deben distinguir entre lo que realmente necesitan y lo que no
- Se deben conservar las ventajas del enfoque DevOps mientras se pone el foco en la simplificación y la estabilidad
Opinión de GN⁺
-
La evolución de DevOps y su situación actual muestran bien el cambio de tendencias en la industria tecnológica. Resulta interesante reconocer la brecha entre los objetivos ideales iniciales y la realidad, y el proceso de buscar un enfoque práctico
-
La transición hacia platform engineering parece ser un intento de reconocer los límites de DevOps y buscar nuevas soluciones. Sin embargo, tampoco es una solución perfecta, y hará falta un enfoque personalizado según el tamaño y las características de cada organización
-
A medida que aumenta la complejidad de las tecnologías cloud native y de la arquitectura de microservicios, se está reevaluando la simplicidad y la estabilidad. Esto sugiere que, al elegir tecnología, deben considerarse aún más el valor de negocio y la eficiencia operativa
-
Los cambios en DevOps y platform engineering enfatizan la importancia del aprendizaje continuo y la adaptación en el desarrollo y la operación de software. Los profesionales técnicos deberán desarrollar no solo el aprendizaje sobre nuevas herramientas y metodologías, sino también la capacidad de equilibrar los requisitos de negocio con la complejidad técnica
-
Se espera que, en el futuro, las formas de desarrollar y operar software adopten enfoques más flexibles y situacionales. En lugar de que grandes organizaciones y startups pequeñas sigan el mismo método, se fortalecerá la tendencia a elegir los procesos y herramientas óptimos según la situación de cada una
2 comentarios
Bastante a menudo
los directivos
esperan que con solo adoptar el concepto de DevOps
aparezca una gran innovación sin esfuerzo
sin importar si se trata de empresas grandes o pequeñas
ese es el pensamiento equivocado de las empresas anticuadas
Opinión de Hacker News
La clave es enfocarse en "build, test, deploy" en el diagrama del "ciclo de devops"
Es una opinión basada en los problemas que enfrentó un equipo de devops
Las críticas a Kubernetes están equivocadas
Devops consiste en eliminar barreras para facilitar el despliegue de software
Devops es una filosofía, no una metodología
Eso de "romper los silos" desde liderazgo es casi algo ceremonial
Si los usuarios pueden ser testers, entonces deberían serlo
Los equipos de plataforma solo son viables en grandes empresas
Devops es una filosofía, no una metodología
Devops tiene buenas intenciones