¿En qué consiste DevOps?

DevOps es un método relativamente nuevo e innovador para desarrollar y entregar software de calidad.

El término combina las últimas partes de los términos en inglés para desarrollo de software y operaciones de tecnología, porque DevOps trata de eliminar los aislamientos e integrar las actividades de desarrollo y operaciones.

DevOps ha recorrido un largo camino desde que surgió hace más de 10 años. Los administradores de sistemas querían mantenerse al día con equipos de desarrollo de productos Agile más eficientes, que creaban software de calidad de producción con mayor frecuencia. Los equipos estaban mejorando en la creación de software, pero los embotellamientos permanecían en el resto del flujo de valor, en áreas como la planificación inicial y la implementación y gestión de sistemas en producción. En aquel momento, e incluso ahora para muchas organizaciones, estos embotellamientos generaban fricciones entre los equipos de desarrollo y operaciones. A Andrew Clay Shafer y Patrick Debois se les atribuye la creación del término DevOps en 2008, y el concepto se afianzó con el primer evento DevOpsDays en Bélgica en 2009.

La implementación de DevOps no trata solo de herramientas; también trata de la forma en que las personas trabajan y de los procesos que utilizan. DevOps divide el aislamiento histórico entre los equipos de ingeniería que crean una aplicación o servicio y los responsables de ejecutar ese servicio en producción. Los procesos y el trabajo se alinean con todo el ciclo de vida de los productos y servicios y todo lo que se necesita para su creación y funcionamiento.

Lo ideal es que un equipo gestione todos los aspectos del servicio, incluidas las funciones de seguridad y pruebas. En organizaciones más grandes, puede que todavía exista alguna especialización funcional, pero sigue siendo fundamental que el proceso y la comunicación se centren en la entrega de un extremo a otro de todo el servicio. Esta vista centrada en el producto puede basarse en algo tan simple como un microservicio o un conjunto más complejo de productos finales que componen una versión (las circunstancias y el cliente final a menudo toman esa determinación). Con el tiempo, el objetivo es seguir realizando cambios más pequeños e iterar más rápidamente.

Los nuevos procesos y equipos aprovechan tanta automatización como sea posible y las tecnologías que facilitan la conexión de un extremo a otro del ciclo de vida del producto, incluido el bucle de comentarios del cliente al equipo, que resulta tan importante.

DevOps es importante porque tiene el potencial de ayudar a una organización a diferenciarse de la competencia al responder de forma más rápida a las demandas empresariales. DevOps es una nueva y mejor forma de desarrollar software con una colaboración mejorada de un extremo a otro, no solo entre los equipos de desarrollo y operaciones, sino también la colaboración con disciplinas como la seguridad (a veces denominada DevSecOps), las pruebas (control de calidad o QA), el control de versiones y las competencias de colaboración entre equipos como ChatOps. DevOps da como resultado un mejor producto de software e implementaciones más exitosas.

En esencia, DevOps es una práctica recomendada. Se concibió sobre la premisa de que las organizaciones de prestación de servicios y aplicaciones funcionan mejor cuando los equipos de desarrollo de software colaboran de verdad y realizan una integración y una entrega continuas (CI/CD). Eso significa que, al final de cada iteración, no importa lo breve que sea, el software está listo para producción, incluso si no siempre se implementa en producción cada vez.

Las grandes organizaciones se someten a transformaciones de DevOps para resolver un problema común y fundamental con la creación de software empresarial. Cuando los desarrolladores crean un software nuevo, lo codifican y prueban en un entorno de desarrollador, que está fuera de línea y les permite solucionar bugs, modificar el código y afinar los requisitos sin poner en peligro su empresa, agencia gubernamental o institución médica o educativa.

Sin embargo, cuando llega el momento de implementar el nuevo software o código en el entorno del mundo real, surgen problemas porque el entorno del desarrollador no es exactamente el mismo que el entorno de producción, que está en constante evolución. Esto puede causar un ardor de estómago real o incluso angustia. Los fallos de implementación pueden generar problemas que cuesta mucho tiempo y dinero solucionar. Históricamente, este problema empeoraba por la gran cantidad de cambios que se acumulaban en versiones poco frecuentes.

Los equipos de operaciones son responsables de garantizar que los productos funcionen de manera fiable en producción con los controles y equilibrios adecuados para garantizar una implementación fiable. Puede surgir fricción entre los equipos de operaciones y de desarrollo que intenten iterar y poner los cambios de código en producción lo más rápido posible.

Un canal de entrega basado en DevOps trata de lograr que los desarrolladores y el personal de operaciones:

  • Trabajen mejor juntos

  • Piensen y actúen en sintonía

  • Eliminen barreras y estructuras aisladas

  • Compartan responsabilidades

  • Se centren en el control de calidad, el control de versiones, la gestión de la configuración y la gestión de lanzamiento como una actividad de entrega continua y conectada, a menudo denominada flujo de valor

Al integrar equipos de desarrollo y operaciones y añadir automatización, las organizaciones pueden mejorar la colaboración, la cultura de trabajo y, en última instancia, la productividad. La integración de DevOps se basa en la automatización de la infraestructura y los flujos de trabajo, lo que permite la entrega continua de aplicaciones a la producción y mide constantemente el rendimiento de las aplicaciones.

La automatización es una de las prácticas recomendadas clave de las organizaciones que utilizan un modelo DevOps. Automatiza tantas tareas como sea posible, especialmente:

  • Pruebas de código funcional, de usuario y de seguridad

  • Flujos de trabajo, incluidos los lanzamientos y las fases

  • Implementaciones y cambios de infraestructura

  • Validación de cambios en la gestión de la configuración

DevOps ofrece una gran ventaja competitiva a través de funciones de código automatizadas que tienen lugar a lo largo del ciclo de vida del desarrollo del software. Sin embargo, la automatización solo ocurre si los equipos saben que las competencias de automatización están disponibles y que muchas funciones previamente manuales están cada vez más automatizadas, como la gestión de cambios de ITIL. La automatización puede mejorar significativamente la experiencia de los desarrolladores al liberarlos de las tareas administrativas.

Change Management de DevOps - ServiceNow DevOps para la gestión de cambios empresariales.

Otra de las prácticas recomendadas de DevOps es que los desarrolladores escriban software en pequeños fragmentos que puedan integrarse, probarse, supervisarse e implementarse en cuestión de horas. Esto mejora la antigua forma de pasar semanas o meses para escribir y probar grandes volúmenes de código de software. Los equipos de desarrollo pueden responder mejor a las necesidades de la empresa y hay menos probabilidades de que se produzca una interrupción grave debido a una versión más grande con muchos cambios. Además, es más fácil revertir un cambio pequeño si algo sale mal en la producción. Esta práctica recomendada se aplica tanto si utilizas nuevas tecnologías nativas en la nube como si prefieres una infraestructura más tradicional.

No todos los proyectos pueden entregarse en fragmentos pequeños con más frecuencia; a veces, sigue siendo lógico agrupar los cambios en versiones más grandes o menos frecuentes en un ciclo de vida de DevOps más amplio. Sin embargo, los equipos de DevOps operarán según el principio de que su código puede implementarse instantáneamente.

Si bien la mayoría de las empresas han adquirido una experiencia considerable en el desarrollo de Agile y están experimentando o invirtiendo completamente en los principios de DevOps, algunas creen que DevOps no está listo para implementarse en organizaciones más grandes. Esta creencia se debe a una serie de factores, incluido el requisito de que la adopción de DevOps puede requerir cambios importantes en la organización de personas, procesos y tecnología. El otro factor es que casi todas las grandes empresas están sujetas a una amplia gama de regulaciones, sobre todo cuando los sistemas tocan finanzas, información de identificación personal (PII) o datos sanitarios. El marco regulador para las grandes organizaciones es la razón por la que tienen fuertes controles en las operaciones de TI para lanzar actualizaciones de aplicaciones. Estos controles están listos para la automatización, ya que se han basado en procesos manuales.

A medida que continúen las implementaciones de DevOps y aumenten la experiencia y la automatización, DevOps se utilizará con más frecuencia para abordar problemas del mundo real y problemas empresariales. Y, cuando las personas vean cómo pueden equilibrar la velocidad y la agilidad con la regulación y el control, estarán más que preparadas para crear una funcionalidad de software verdaderamente nueva. Las prácticas exitosas de DevOps se basan en una apreciación fundamental de esta realidad y pueden hacer que las personas sean más productivas porque los sistemas de "planificar, desarrollar y ejecutar" funcionan de manera más eficiente.

Puedes difundir la metodología DevOps en toda tu organización de manera inteligente, eliminando el riesgo de trabajar rápidamente y minimizando la fricción entre los equipos de operaciones de TI y de desarrollo. Las grandes empresas que dependen de fuertes controles para la continuidad empresarial pueden aprovechar las tecnologías emergentes, como la gestión de flujo de valor (VSM), para ayudarles a realizar la transición.

Ciclo de vida de DevOps - ServiceNow Aprovecha la plataforma ServiceNow para la gestión del ciclo de vida de DevOps.

Un equipo de DevOps bien administrado itera rápidamente y proporciona beneficios de algunas formas muy básicas: lanzamientos de software más pequeños y frecuentes entregados a tiempo o antes de lo programado y con menos problemas en la producción. Incluso si se encuentran bugs en la producción, se solucionan más rápidamente y el equipo aprende y mejora aprovechando los datos disponibles a través de la colaboración y la gestión del flujo de valor.

Los buenos equipos de DevOps implementan código mucho más rápido que sus compañeros con menor rendimiento y experimentan menos fallos. La transición a DevOps fomenta una mentalidad de mejora continua en toda la organización, porque todos los involucrados tienen acceso a información sobre el ciclo de vida completo. Además, las competencias emergentes de IA en DevOps conducirán a una mayor eficiencia a través de la automatización y una mayor fiabilidad.

Hay un caso de negocio obvio para DevOps, pero implementarlo puede ser un desafío de liderazgo que no esperabas. Se necesita una buena preparación y perseverancia para que las empresas pasen del desarrollo de software de Waterfall a Agile y, a continuación, adopten DevOps. Sin embargo, la recompensa puede ser impresionante.

Estabilidad

Muchas de las prácticas recomendadas de DevOps ayudan a mejorar la estabilidad. Un ejemplo es centrarse en realizar cambios más pequeños que probablemente no causen interrupciones graves; se pueden revertir rápida y, a menudo, automáticamente si algo sale mal. El proceso de integración continua de DevOps ayuda a garantizar que los cambios en el código se combinen y prueben de manera adecuada, y que la aplicación de políticas y herramientas pueda eliminar problemas lo antes posible en el ciclo.

Alerta de

El informe Puppet State of DevOps de 2019 muestra que una base sólida de DevOps hace que la seguridad sea más simple y más fiable de implementar. La seguridad se convierte en parte del equipo de DevOps de la misma manera que el desarrollo de código, las pruebas y las operaciones. La colaboración mejora y la seguridad es inherente al proceso.

Velocidad

Trabajar en iteraciones más pequeñas y en equipos combinados de un extremo a otro significa que los cambios pueden implementarse más rápidamente y que los equipos se vuelven más receptivos a las necesidades de la empresa. El tiempo total desde la idea inicial hasta el cambio que aparece en la producción se puede acortar considerablemente, lo que significa un tiempo necesario para obtener valor más corto.

Colaboración

Los beneficios DevOps aumentan gracias a la mejora de la colaboración y la comunicación. Los desarrolladores obtienen comentarios directos sobre el rendimiento de su trabajo en producción y los operadores tienen más información sobre lo que se está entregando y por qué. Todos los involucrados, incluida la seguridad y la garantía de calidad, tienen la oportunidad de compartir y perfeccionar sus políticas a través del apoyo de todo el equipo.

No es fácil lograr que los equipos de desarrolladores y de operaciones trabajen juntos, desarrollen rápidamente y publiquen código en producción. DevOps depende en gran medida de los cambios culturales y de procesos, junto con la disponibilidad de las herramientas de DevOps adecuadas. Es comprensible que muchos líderes de TI, ingeniería y unidades de negocios de grandes organizaciones se pongan nerviosos al planificar dicha transición. Sin embargo, el caso de negocio de DevOps es convincente, y productos como ServiceNow DevOps simplifican el flujo de trabajo. Simplemente, no hay ninguna razón para que una organización evite una implementación de DevOps.

El modelo híbrido de DevOps conecta Dev con Ops - ServiceNow ServiceNow DevOps le ayuda a conectar el desarrollo con las operaciones.

¿Cómo obtengo DevOps?

Multiplica el éxito de DevOps en toda la empresa. Elimina el riesgo de la velocidad y minimiza las fricciones entre las operaciones de TI y el desarrollo.

Recursos