Skip to main content
DevOps

DevOps 2.0 o BizDevOps para pensar en transformación digital

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (119 votos, promedio: 4,55 de 5)
Cargando…

Ya sabemos que DevOps es una cultura, un movimiento, una filosofía de desarrollo de software y entrega. Se centra en la comunicación, colaboración e integración continua de toda la organización. Una nueva concepción del desarrollo de software, cuya adopción no es nada fácil. Pretende agilizar la entrega de software eliminando las barreras entre desarrolladores y los equipos de operación de TI. Persigue reducir las ineficiencias de los procesos, adoptando nuevas herramientas, e incluso proponiendo cambios en la arquitectura empresarial.

Las prácticas de Agilismo (Agile), consigue que los equipos de desarrollo realicen entregas iterativas con más frecuencia, entre otras cosas. En DevOps, se automatiza el ciclo completo de los procesos para obtener la integración y los despliegues continuos (CI/CD). Se implica a los equipos de prueba y seguridad desde el inicio hasta el final siguiendo una estrategia end-to-end. Al mismo tiempo, con los principios de Lean, hemos eliminado de todo el proceso lo que no aporta valor. Se esta consiguiendo mayor productividad, máximo valor y mejora en el Time to Market.

Cómo Lean, Agile y DevOps nos ayuda a eliminar las barreras organizativas tradicionales

Hablar de DevOps es pensar en técnicas, patrones y buenas prácticas. Nos ayudará a dotar a nuestra organización, de una eficiente arquitectura de software. Una arquitectura basada en microservices, con mentalidad “todo como servicio”. Un ecosistema de contenedores, automatización, elasticidad, autoescalado, infraestructura como código, monitorización, gestión de la configuración, sistemas autosostenibles y adaptables, etc. Todos estos elementos nos permiten entregar valor, con desarrollos rápidos, fiables y frecuentes. Además, con cero tiempo de inactividad y, por supuesto, con la capacidad para dar marcha atrás.

¿Cómo nos preparamos a las expectativas de los usuarios?

DevOps tiene como objetivo ayudar a una organización a producir productos y servicios de software rápidamente. Pero ahora, el usuario final, es cada vez más exigente. Tenemos que emplear técnicas que nos permitan realizar entregas funcionales más rápidas en producción, mitigando el riesgo que eso implica.

En este momento, nos encontramos usuarios con mayor conocimiento tecnológico y mayores expectativas en la experiencia dinámica e interactiva. Esto ha generado la aparición o evolución de un nuevo concepto llamado DevOps 2.0 o BizDevOps (Business, Development y Operations).

Si con DevOps 1.0 (como inicio del movimiento), el foco estaba puesto en conseguir que los equipos de operación diesen feedback continuo al equipo de desarrollo y al equipo de control de calidad. Ahora se pretende extender los beneficios de la retroalimentación a toda la organización (marketing, ventas, producto, etc). Esto es lo que permitirá una mayor adaptación al boom tecnológico y la transformación digital (IoT, Plataformas inteligentes, BigData, etc.). Con entrega continua de software más rápido y sin comprometer la estabilidad de los sistemas en producción.

DevOps 2.0 (BizDevOps) vs DevOps 1.0

En este punto, la clave es el uso de técnicas que ayuden a desacoplar el despliegue de nuevas funcionalidades de una aplicación. Se trata de hacer accesible esa nueva funcionalidad hacia el usuario final cuando decida negocio y no operación. La idea sería que marketing y ventas pueda decidir, a través de “banderas” (flags), cuándo se debe lanzar una funcionalidad. Nos permitirá desplegar cambios en producción con más frecuencia sin lanzar las nuevas funcionalidades al usuario final. Solucionando así el “miedo” que nos genera la necesidad de realizar despliegues a diario en producción. Es lo que se conoce, en DevOps 2.0, como el lanzamiento o rollout.

Con esta sencilla buena práctica de desarrollo (Flag Driven Development), usada por ejemplo en Google y Facebook, no lanzamos la nueva funcionalidad al 100% de los usuarios. Primero arrancamos con el 1% de los usuarios, luego con 10%, luego con 30%, etc. Con la posibilidad de activar y desactivar de forma sencilla si algo no va bien. Además, nos permite lanzar variaciones de una funcionalidad para diferentes tipos de usuarios (segmentación de clientes). Existen modelos SAAS y soluciones open source para implementar este tipo de técnicas: Feature Flags, Toggles, Controls.

¿Qué beneficios me ofrecen las técnicas DevOps 2.0?

Además, el uso de este tipo de técnicas durante el desarrollo, se realiza escalando de forma rápida. Manteniendo la estabilidad del sistema y sin comprometer la integridad de la aplicaciones. Por lo que conseguimos disminuir el riesgo asociado con el cambio, en cualquier entorno productivo. Las partes interesadas del negocio, tienen el control de cuando se divulgan las nuevas funcionalidades a usuarios finales. Usuarios que actualmente están demandando cambios a diarios y con nuevas emociones.

flag driven development

Para las organizaciones, DevOps 2.0 aportará el poder DevOps a los equipos no técnicos, como marketing, diseño, ventas y negocios. Ahora todos los equipos tendrán competencias y las responsabilidades que se requieren en una cultura DevOps. Se mejora la confianza, la comunicación y el feedback que se necesita de todos los equipos en una estrategia DevOps.

Por lo tanto, una de los principales pilares del enfoque DevOps 2.0, es la capacidad de controlar, a través de una interfaz de panel de control, los lanzamientos de nuevas características de las aplicaciones en producción. Sería de forma controlada e independientemente del desarrollo y despliegue continuo, desde personas tanto de perfil técnico como no técnico.

Al mismo tiempo, este tipo de técnicas en la codificación, permitirán realizar analítica en tiempo real, efectuando cambios en la funcionalidades de un sistema y en herramientas de monitorización del rendimiento de aplicaciones (APM). Esto permite determinar cuándo una determinada funcionalidad está degradando el sistema global y requiere ser desactivada de forma rápida, así como identificar qué funcionalidades están mejorando la experiencia del usuario final (UI/UX, User Interface/User Experiencie).

La actitud de todas las personas como principal activo

Ahora sí que parece que estamos más cerca de gobernar la industrialización del software, consiguiendo que toda la organización se comunique y tenga intereses comunes, puesto que todos los interesados participan en la creación de valor de forma eficiente:

Estrategia DevOps 2.0 end-to-end

  • Diseñadores, puede llevar a cabo pruebas del usuario al activar y desactivar características experimentales del sistema y para un grupo de usuarios de pruebas.
  • Ventas, puede agrupar nuevas funcionalidades que se demanden o realizar demostraciones de productos a clientes.
  • Marketing, puede ejecutar programas beta para obtener feedback de un colectivo de usuarios antes de un lanzamiento final a todo el mercado.
  • Producto, puede ver las características antes de su lanzamiento, obtener retroalimentación real de los usuarios y supervisar continuamente el desarrollo del producto.
  • Desarrollo, puede utilizar la codificación basada en “banderas” para liberar pequeñas funcionalidades y mitigar el riesgo. Además de poder revertir las funcionalidades que no se desarrollen correctamente en cualquier momento, sobre producción, sin tener que realizar un nuevo despliegue.
  • Operación, pueden analizar qué funcionalidades activadas mejoran o generan un problema en el sistema y pueden comunicarlo con rapidez.

¿Cómo podemos ayudarte hacia una cultura DevOps 2.0?

A continuación se muestra una tabla resumen con las iniciativas y líneas de trabajo que Gfi propone para abordar una estrategia DevOps:

Servicios de acompañamiento DevOps en Gfi

Por último, si te ha gustado este artículo y te gustaría profundizar desde un punto de vista práctico, te recomiendo los libros The DevOps 2.0 Toolkit: Automating the Continuous Deployment Pipeline with Containerized Microservices y el The DevOps 2.1 Toolkit: Docker Swarm, que seguro te ayudará a entender y comprender un cambio de actitud en el mundo IT.

El primer libro cubre el ciclo completo de desarrollo y despliegue de microservicios, usando algunas de las prácticas y herramientas más comunes de software libre: Docker, Ansible, Ubuntu, Docker Swarm y Docker Compose, Consul, etcd, Registrator, confd, Jenkins, nginx, etc. El segundo libro profundiza en Docker Swarm.

Y como ya sabemos que DevOps no son solo herramientas, si te estas iniciando en esta filosofía, una buena opción sería el libro The Devops Handbook, que te ayudará a comprender la cultura y el movimiento DevOps desde sus inicios. También el curso de la Fundación Linux gratuito: Introduction to DevOps: Transforming and Improving Operations, con el que aprenderás a transformar tu organización usando los principios y prácticas de DevOps.

Nos gusta compartir el conocimiento. No dudes en dejar tu comentario sobre cualquier punto 😉

Jesús Pérez Franco

Jesús Pérez Franco

Gerente de Operaciones en gfi.es con más de 17 años de experiencia en el sector, con perfil tecnológico mixto combinando conocimientos técnicos, negocio y de gestión. Seguidor de las tendencias #devops #agile #lean #cloud #aws #bigdata #iot #ecommerce

Jesús Pérez Franco ha escrito 3 entradas


Jesús Pérez Franco

Jesús Pérez Franco

Gerente de Operaciones en gfi.es con más de 17 años de experiencia en el sector, con perfil tecnológico mixto combinando conocimientos técnicos, negocio y de gestión. Seguidor de las tendencias #devops #agile #lean #cloud #aws #bigdata #iot #ecommerce

6 comentarios en “DevOps 2.0 o BizDevOps para pensar en transformación digital

  1. Muy interesante el artículo. En nuestra empresa estamos aplicando desde hace meses el activar nuevas funcionalidades de forma controlada a través de switches. Creo que es muy buena práctica controlar aspectos técnicos como el rendimiento de nuestra sistema, por ejemplo activando de forma controlada una parte de nuestro código, y checkqueando cómo está mejorando / empeorando el hardware.

  2. Sin duda DevOps es la filosofía y la evolución natural para la creación de software, los clientes demandan agilidad eficiencia y eficiencia en los desarrollos. Muy buen articulo.

  3. ¡Un artículo genial!
    Me has creado la necesidad de querer profundizar más en esta materia.
    ¡Enhorabuena Jesús!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *