DevOps un cambio dentro de la empresa

Que es y porque es importante DevOps

DevOps es la última tendencia que permite incrementar la agilidad y mejorar el performance de IT Se puso de moda y aún muchos jugadores de la industria no están seguros que es o como capitalizarlo DevOps no es una persona, ni una metodología, es una cultura dentro de la empresa que involucra los procesos de IT No es simplemente un set de herramientas, sino una nueva manera de desarrollar software Ayuda a dar claridad entre los equipos de desarrollo y operaciones, clarifica procesos y mejora el entendimiento de como afecta la performance del software al negocio Cuando se desarrolla software, las etapas se dividen entre diferentes equipos: — Un equipo desarrollara el software — Otro equipo hará el test del desarrollo — Y un tercer equipo se encargará de ponerlo en producción y mantenerlo Con tanta gente involucrada, los conflictos se pueden esperar todo el tiempo y los ciclos de actualizaciones pueden tomar demasiado tiempo para el ritmo del negocio DevOps evita exactamente esto “demasiados cocineros arruinan la comida” DevOps hace visibles todos los procesos dentro de desarrollo, testing y operaciones, con un equipo que tiene un entendimiento de como el código impacta en la performance de la aplicación y del negocio Operaciones informa y trabaja con desarrollo y alienta a compartir la responsabilidad y rendir cuentas Como resultado de esto, se pueden mantener claros objetivos, ciclos cortos de desarrollo, lo que permite hacer cambios mucho más rápidos, y IT se puede volver un ambiente mucho más ágil y eficiente

Que involucra este cambio

Hablamos de

  • Continuous development
  • Continuous integration
  • Coninuous delivery
  • Continuous improvement
  • End-to-end monitoring
  • Process automation

Un cambio cultural

DevOps presenta muchos cambios en la cultura de la empresa, la adopción de este nuevo modelo representa un gran desafío con la transición del Data center tradicional, lo que es un potencial punto de conflicto para la organización Es un desafío para Recursos humanos, el recruitment con un gran número de profesinales de IT aún acostumbrados a la división de funciones y no a trabajar en equipo con devs Las opciones son: encontrar alguien con los skills de DevOps o entrenar al equipo existente con los skills correctos Los problemas más recurrentes son:

  • Falta de tiempo
  • Equipos de desarrollo faltos de personal
  • Dificultades del lado de la organización para darle tiempo necesario al equipo de IT para desarrollar e implementar los cambios necesarios para ser un equipo de DevOps
  • No hay suficiente tiempo de aprendizaje y adaptación, y re-alinear procesos a un nuevo modelo La adopción de DevOps no necesariamente tiene que ser dolorosa, es posible que el cambio requiera varios meses

Preparando a los equipos ahora, y entendiendo lo que buscamos con implementar DevOps (la fortaleza de DevOps y en que ayuda al negocio), podemos negociar una implementación por etapas Colaboración es la clave

  • Que triunfemos o no con el cambio de modelo depende de la colaboración de todos
  • Nadie quiere hacer un cambio en una aplicación cuando estamos en el pico del uso
  • Con DevOps, los diferentes equipos se convierten en responsables completos del performance de la aplicación
  • Eso obliga al equipo a trabajar en su conjunto de forma eficiente y exige una visibilidad completa y consistente de la manera en la que el equipo trabaja, sus objetivos, y las herramientas que se usan. — Hay que hacer un cambio de mentalidad de IT y del paradigma del data-center, así estar preparados para hacer el cambio de DevOps.

Monitoreo y automatización

  • Para que DevOps funcione dentro de la organización, se necesita monitoreo de punta a punta y automatización de procesos dentro de desarrollo, testing y operaciones
  • El valor que le vamos a dar a al monitoreo punta a punta es entender el performance de la aplicación, que es un objetivo de todo el equipo
  • La visibilidad dentro del stack de aplicaciones de la organización mejora la eficiencia y la colaboración, y ayuda a identificar problemas con el software o la infraestructura
  • Test automáticos, monitoreo, alertas ayudan a que seamos más eficientes

Aumentamos la velocidad

  • Uno de los beneficios de DevOps es que crea un model agil de negocio
  • Con iteraciones más cortas en procesos clave, ayuda al equipo a manejar problemas e innovar de forma mucho más rápida
  • El impacto es enorme cuando pasamos de ciclos de desarrollo-producción de meses a semanas o días
  • Esto no impacta en el negocio y la toma de decisiones en proyectos a largo plazo, porque la flexibilidad que ofrece DevOps hace que podamos escalar con el equipo dependiendo del proyecto

Los usuarios finales

  • El objetivo final es dar al usuario final un producto que mejore su experiencia como usuario
  • Ofrecer aplicaciones usables hace que su trabajo sea más sencillo
  • Esta filosofía es la que debe mover a los equipos de DevOps para tener exito
  • Cada parte del software debe ser hecho pensando en el usuario final y cualquier problema debe ser informado de inmediato
  • Esto requiere compromiso de parte del equipo, es la única forma en que DevOps tenga exito en la organización
  • Ofrecer updates, deployments, resolver problemas de forma mucho más rápida y mejorar la experiencia del usuario es el objetivo final de DevOps

La incorporación de DevOps en la organización puede parecer complicada al principio, pero estamos seguros que el cambio del modelo dara un gran beneficio competitivo al negocio y veremos significantes resultados en el futuro cercano

Links

Linux fundation DevOps course 
The DevOps Handbook:: How to Create World-Class Agility, Reliability, and Security in Technology Organizations by Gene Kim
DevOps: From newbie to professional. Fast and simple guide to DevOps The IT managers guide to continuos delivery