Es posible que ya hayas escuchado el término DevOps. Pero ¿qué es DevOps en realidad? ¿qué implica para los equipos de trabajo? y ¿en qué contextos se puede aplicar el término? Acá te cuento como.
No obstante, DevOps no solo impacta los equipos de TI en las organizaciones. La implementación de DevOps en una organización transforma profundamente la forma como otras áreas interactúan con TI.
DevOps además es un elemento habilitador de la agilidad organizacional – ya explicaré más adelante qué significa esto. Las grandes compañías y los nuevos jugadores que deseen mantenerse vigentes y competitivos deben comprender, dominar y sacar provecho de DevOps.
¿Significado de la palabra DevOps?
DevOps es el resultado de unificar dos palabras:
- Desarrollo, en el contexto específico de software, y
- Operaciones, de dichos productos de software desarrollados
DevOps representa la combinación de una forma de pensar, unas prácticas, y unas herramientas. Podríamos decir que:
- Forma de pensar: mindset y cultura de la organización
- Prácticas: procesos y procedimientos.
- Herramientas: Sistemas informáticos, programas de automatización y control de sistemas.
DevOps según Wikipedia
Parafraseando – y mejorando de paso – la definición de DevOps en Wikipedia podemos decir que:
DevOps es un acrónimo y se refiere a una metodología de desarrollo y disposición – releasing – de software que plantea la unificación de los equipos de desarrollo y de operación de sistemas. DevOps surge como una respuesta a modelos de intermediación y transición donde los equipos de desarrollo y operaciones son antagonistas.
En resumen, DevOps es:
- Un modelo de trabajo que impacta la colaboración de negocio y TI para reducir los tiempos de puesta en operación (o TTL).
- Procesos de puesta en operación basados en automatización, que incluyen:
- Despliegue – deployment
- Verificación del producto o pruebas.
- Puesta en operación – liberación o releasing.
- En los casos, no tan felices – cuando las cosas no salen bien, DevOps también contempla todo el esquema de recuperación – rolling back y disaster recovery.
- Nuevos modelos de diseño de productos de SW. Poco se habla de esto, pero la verdad es que, con la llegada de nuevas tecnologías como los contenedores, las arquitecturas de microservicios y modelos como serverless, DevOps se potencia y se hace más simple de adoptar.
¿DevOps es una metodología?
Muchos podrían decir que DevOps es una metodología, pero la verdad es que su impacto arranca en los mismos procesos de definición de producto – o ideación. Es decir, para compañías de base tecnológica, DevOps modifica la forma como diseñamos los productos.
El famoso MVP de un emprendimiento – startup – que no contemple DevOps seguramente solo distanciará su salida al mercado y desde luego, el retorno sobre la inversión.
¿DevOps es una cultura?
No. Pero el cambio cultural es parte de las organizaciones que deseen adoptar y sacar provecho de DevOps.
Imagina que eres dueño de una gran corporación y cada año, durante la planificación estratégica se te permite opinar ante la junta directiva sobre un proyecto o un nuevo producto. Qué frustrante sería terminar el año sin haber visto un resultado.
Ahora imagina que tu equipo de trabajo no solo es capaz de escucharte, es capaz de materializar en cuestión de días, horas o minutos, cambios en los sistemas en operación. Por ejemplo, DevOps surgió como un requerimiento de un emprendimiento tecnológico para renovar el producto en operación al menos 10 veces al día, ¡AL DÍA!
Te pregunto: ¿tener esta habilidad en tu equipo cambiaría la forma como concibes tus proyectos e iniciativas de negocio?
¡Desde luego que sí!
DevOps, DevSecOps, ITOps y los otros
Se entiende la idea, DevOps busca reducir el tiempo de puesta en operación del resultado de un equipo de desarrollo. Sin embargo, esto plantea otros retos a la organización.
DevOps
Ya hemos hablado de DevOps, es la unificación de los equipos de desarrollo de SW y operaciones de TI.
DevSecOps
Dentro del contexto de unificación de Desarrollo y Operaciones, el concepto de seguridad – tanto del proceso de desarrollo, como de la operación misma es cada vez más importante. No en vano vemos todos los días noticias sobre ataques cibernéticos que, en muchas ocasiones, se atribuyen a gobiernos.
La seguridad no puede menospreciarse, por este motivo DevSecOps, que es una extensión del concepto de DevOps plantea una dimensión adicional: la de la seguridad.
ITOps, DataOps y SysOps
Se entiende que con el auge del término DevOps, otros movimientos o puntos de vista se alzan con ideas similares. Acá un pequeño resumen de estos movimientos:
- DataOps: Es la conjunción del concepto de DevOps en industrias o empresas que manejan grandes volúmenes de datos. Por lo tanto, DataOps tiene un componente fuerte en la gestión de los datos y los analistas de datos – data scientist y developers.
- SysOps: Con un foco especial en la operación de los sistemas a gran escala. No solo para una empresa si no a escala global. Ahora con el auge de los modelos PaSS e IaSS – plataforma e infraestructura como servicio, hay grupos enfocados en operar infraestructura.
- ITOps: Operaciones de tecnologías de la información. Un nuevo nombre para operaciones de TI.
NoOps
Este es tal vez el concepto más radical. NoOps significa: SIN OPERACIONES. Es decir, todo está 100% automatizado y por lo tanto no hay equipo de administración. Algo arriesgado para grandes compañías, pero muy útil para empresas pequeñas que antes de escalar – crecer – pueden acceder a grandes tecnologías sin invertir demasiado.
AIOps: AI al servicio de las operaciones de tecnología
Si de innovar se trata, AIOps está a la vanguardia. Gartner predice que el personal a cargo de las operaciones de TI experimentará un cambio radical en los años por venir. Por lo tanto, la demanda de tecnología y de nuevos, más flexibles y más confiables servicios requerirá de una transformación de las capacidades de las empresas de TI.
El objetivo, usar tecnologías de ML – machine learning y big data para fortalecer las operaciones de TI.
¿Por qué DevOps es fundamental para la agilidad?
De qué sirve tener el mejor piloto de autos a tu servicio si tu auto no funciona, o incluso peor, tu auto falla muy seguido cuando está andando y debes parar continuamente.
La agilidad organizacional es la capacidad de introducir cambios e innovaciones en el entorno empresarial – o adaptarse rápidamente a los cambios que otros introducen.
Así pues, si esta agilidad depende en gran medida de los sistemas informáticos y las tecnologías que usa la organización para operar e interactuar con sus clientes, DevOps es clave.
Imagina hacer parte del equipo scrum más deslumbrante, lleno de talento y buenas ideas. Capaz no solo de idear sino de materializar los productos más innovadores y – seguramente – más exitosos. De qué sirve si tu organización es incapaz de ponerlos a operar de forma orquestada con los demás productos y servicios existentes de la organización.
DevOps es parte fundamental de lo que en SAFe se conoce como el Continuous Delivery Pipeline. Es la capacidad de explorar, integrar y desplegar soluciones de forma continua – o muy seguido.
El reto de DevOps, operar productos en desarrollo
¿Cuál es el reto detrás de DevOps? El problema verdadero es que tendrás que operar productos – para habilitar los ciclos de aprendizaje y feedback tan necesarios en innovación y desarrollo de nuevos productos. Es decir, estas en la disyuntiva de:
- Desarrollar un producto lo suficientemente bueno para salir al mercado
- Tan barato como sea posible
- Tan rápido para garantizar que es conveniente y oportuno
- Tan incompleto que permita adaptar el producto a las necesidades cambiantes del mercado.
Al final, tienes que convivir de manera armoniosa entre «definir el producto», «completar el producto» y «operar el producto».
DevOps es un habilitador de los emprendimientos de base tecnológica
¿Cómo han logrado empresas pequeñas o nacientes como NuBank competir con grandes empresas con millones de dólares en sus cuentas? ¿Cómo es posible para un emprendimiento pasar de tener pocos cientos de clientes a millones de clientes en lo que se conoce como «crecimiento exponencial»?
Fácil, a través de la adopción de DevOps como línea de pensamiento. Incorporando:
- Un cambio cultural dentro de la empresa para sacar provecho de este pensamiento de «siempre Beta«.
- Un reto en el diseño de nuestros productos y servicios para adaptarse de forma inesperada al crecimiento exponencial – les recomiendo leer el libro «organizaciones exponenciales» si este es un tema que les llama la atención.
- Un paradigma para adquirir productos y servicios tecnológicos orientados a soportar dicho crecimiento – PaSS o servicios en la nube ofrecidos por Amazon, Google y Microsoft.
Herramientas DevOps
Existen miles de herramientas que resuelven necesidades específicas de los equipos de desarrollo o de operaciones. Desde pequeños servicios de integración, hasta plataformas complejas para el diseño y los flujos de automatización.
La mejor herramienta que les puedo compartir es la Tabla Periódica de DevOps que, sin ser perfecta, contempla una lista muy detallada de herramientas enfocadas a mejorar el flujo de productos desde su concepción hasta su operación.
Tabla periódica de DevOps por Digital.AI
La tabla periódica de herramientas DevOps es un excelente índice que sirve de referencia para quienes inician. Es ideal para identificar herramientas populares dentro del ciclo de vida del desarrollo y la entrega del software – como dije, en SAFe lo llaman el Continuous Delivery Pipeline.
Esta tabla periódica de herramientas DevOps fue creada por profesionales con experiencia que emitieron – según los autores – más de 18K votos para más de 400 productos.
Los invito siempre a darle una mirada a la Tabla Periódica de DevOps para mantenerse actualizados.
Excelente informacion, para los que no somos tan informaticos, aclara muchisimo el concepto de Devops. Saludos!