top of page
Buscar

¿Por qué DevOps?

Actualizado: 3 ene 2020

Seguramente te preguntarás cual es la razón de que haya tanta confusión con su significado tratándose de una palabra palabra tan viralizada. Si te da pereza seguir leyendo permite que te lo adelante de forma muy resumida: DevOps (desarrollo + operaciones) es en realidad un modelo organizacional y su objetivo es la entrega rápida, frecuente y segura de software.

DevOps (desarrollo + operaciones) es en realidad un modelo organizacional y su objetivo es la entrega rápida, frecuente y segura de software.

El problema de la definición corta es que no resuelve absolutamente nada, vamos a ir un poco más a fondo para ver por qué.


Múltiples significados en la práctica

DevOps tiene un solo significado, pero llama la atención la variabilidad de cómo lo entiende cada persona en la práctica: algunos piensan que se trata del uso de contenedores y orquestación, a otros les sugiere automatizaciones, nube o plataforma-como-código… hay quien percibe DevOps como la aceptación de principios ágiles por parte de los administradores de sistemas. No es que estén equivocados, es que DevOps es un concepto complejo que durante su nacimiento y evolución ha ido aglutinando todo un ecosistema compuesto por cultura, metodología, disciplinas y herramientas.


Un poco de “prehistoria”

El desarrollo de software es relativamente joven. Hace aproximadamente 60 años del primer lenguaje de programación. Durante los años 80 y 90 ya había una gran industria en torno a la creación y mantenimiento de aplicaciones.

Fueron apareciendo nuevos métodos de trabajo y ya por aquel entonces muchos profesionales se esforzaban en tratar de identificar las mejores pautas de diseño y desarrollo de software.

Los programadores son humanos y el resultado de su trabajo es una solución algorítmica ¿cómo se manufactura una solución así? ¿cómo se mide? ¿cómo se comprueba que funciona bien? si no puedo saber lo que el negocio querrá implementar mañana o el mes que viene… ¿cómo puedo garantizar que seguirá funcionando?

Ya hacía tiempo que la industria convencional de productos “tangibles” llevaba ventaja en cuanto a optimización de procesos se refiere, métodos como el JIT, TPS que dieron como resultado Lean manufacturing, paralelamente había otros ejemplos como six-sigma diseñada por un ingeniero de Motorola.

Consideremos un momento esto con detenimiento: mientras cualquier sistema productivo de convencional consideraba imprescindible el análisis continuo, los procesos estandarizados, las herramientas de medida y el aseguramiento de la calidad… paralelamente miles de programadores pasaban el día picando líneas de código y leyendo requisitos que alguien había escrito meses antes. Cruzaban los dedos para que el resultado funcionara como por arte de magia en entornos oscuros custodiados por administradores de sistemas que los protegían con gran celo… no suena a la receta del éxito ¿verdad?

Hacia mediados de los 90 se produjo algo así como una crisis en el mundo del desarrollo de software debido a la impredecibilidad de los proyectos y la poca calidad de los resultados.


Llega el agilismo

Comprendiendo lo anterior no es sorprendente que el mundo del software aceptara de manera tan positiva el agilismo en la primera década del nuevo milenio.

Pero en tecnología todo se mueve muy rápido y al mismo tiempo otras cosas también cambiaban. Para empezar el software era cada vez menos “local” y se volvía más “distribuido”, las aplicaciones y módulos requerían más comunicación entre ellos (integraciones, SOA y más tarde micro-servicios). Todo esto fue implicando cada vez una mayor diversidad de tecnologías, localizaciones y disciplinas. ¿Cómo voy a ser ágil si dependo de muchas otras personas que además no tienen las mismas preocupaciones que yo? (negocio, operaciones, seguridad) y habiendo tantos elementos… ¿cómo hacemos que este conglomerado funcione? El negocio a su vez cada vez pide más cambios en menor plazo debido a la presión competitiva en el mundo globalizado.


Por fin DevOps

En el año 2008 Patrick Debois y Andrew Clay Shafer empezaron a madurar la idea de que había que revisar todo el enfoque de trabajo (no solo el de los programadores), de esta manera ayudaron a concebir el modelo DevOps en torno al agilismo y el lean thinking que tan buenos resultados había dado en la industria convencional.

Así que DevOps más allá de “colaboración entre desarrollo y operaciones” es un modelo de organización de alto rendimiento. Se adopta a nivel de compañía y consiste en la aplicación de las mejores prácticas en cada una de las fases clave del proceso iterativo de producción: desarrollo, despliegue, testing, empaquetado, gestión de cambios, configuración y monitorización. Para ello es imprescindible la colaboración ágil de todos los actores (¡queremos cambios!) dentro de un marco de mejora continua. El objetivo es la entrega rápida y confiable de software.


¿Y las tecnologías?

Detrás de DevOps hay una enorme lista de tecnologías y herramientas que resulta imposible no mencionar: sistemas de colaboración y documentación, QA a todos los niveles (métricas de código, testing unitario, tests end-to-end, rendimiento), abstracción (máquinas virtuales, cloud), aislamiento de procesos(contenedores), entrega continua, observabilidad (monitorización, logging, APM, alert management), seguridad, Platform as code, y un largo etcétera.

Lo interesante es que con la adopción del modelo DevOps no sólo incrementamos la eficiencia, velocidad y seguridad, también estamos añadiendo herramientas de medición y mejorando la precisión de lo predecible.


12 visualizaciones0 comentarios

Entradas recientes

Ver todo

Commentaires


Post: Blog2_Post
bottom of page