DevOps – Desarrollo, Operaciones y mucho más

DevOps

Es uno de los términos más mencionados actualmente en el mundo del desarrollo de software. DevOps es desarrollo, Operaciones y mucho más. Se asocia especialmente a metodologías de desarrollo ágil como “Continuous Delivery” y a modelos de transformación digital.

Origen del término DevOps

Se tiene entendido que la primera vez que se utilizó públicamente el término DevOps fue en el año 2008. Estaríamos hablando de la conferencia AGILE 2008 llevada a cabo en la capital canadiense de Toronto.

El concepto de DevOps surgió de una discusión entre Andrew Clay y Patrick Debois. Estaban preocupados por los inconvenientes de la metodología Agile en aquel momento y querían idear algo mejor. La idea comenzó a difundirse lentamente y, tras el evento DevOpsDays celebrado en Bélgica en 2009, se convirtió en lo que en términos anglosajones se llama una Buzzword o palabra de moda.

A partir de entonces, el término DevOps ha sido impulsado constantemente y se ha adoptado generalmente a través de los devopsdays​ que, aunque comenzaron en Bélgica y ya se han extendido a otros países. ​

La amplia proliferación de este término DevOps hace que se utilice en múltiples contextos diferentes.

El concepto DevOps. Desarrollo y Operaciones

DevOps (acrónimo inglés de development -desarrollo- y operations -operaciones-)

Como término general, se refiere a una metodología de desarrollo de software que se centra en la comunicación, colaboración e integración entre desarrolladores de software y los profesionales de sistemas en las tecnologías de la información (IT).

Es decir, integra el conjunto de prácticas que combina las operaciones de TI (Ops) y el desarrollo de software (Dev).

Su objetivo es acortar el ciclo de vida del desarrollo de sistemas y proporcionar una entrega continua con software de alta calidad.

DevOps es complementario con el desarrollo de software ágil de hecho varios aspectos del término DevOps provienen de la metodología Agile.

File:Devops-toolchain.svg

Las principales características de DevOps son la automatización y el control monitorizado en todos los pasos del diseño y desarrollo de software, incluyendo la integración, las pruebas, la administración de la infraestructura y la liberación hasta la implementación.

DevOps incide en ciclos más cortos, pero con mayor frecuencia de implementación. Está muy enfocado a empresas con entregas (releases) muy frecuentes.

Posiblemente la primera implementación DevOps más destacable de desarrollo web fue la de Flickr, que diseñó una metodología DevOps de llevar a cabo el requisito de negocio de diez despliegues diarios. Un claro ejemplo de lo que se conoce como entrega continua (continuous delivery).

Etapas en los ciclos de desarrollo continuo

  1. Desarrollo

El desarrollo del software es continuo. Todo el desarrollo se divide en ciclos más pequeños y frecuentes. El equipo DevOps acelera el proceso de entrega.

  1. Prueba

El equipo de QA identifica y corrige errores del nuevo código en cada ciclo.

  1. Integración

Las nuevas funcionalidades se integran con las existentes y se realizan las pruebas continuas.

  1. Despliegue

En esta etapa, las funcionalidades ya probadas se implementan de manera forma continua. Los cambios no deben afectar al funcionamiento en producción.

  1. Monitoreo

En esta fase, El equipo de operación realiza un seguimiento exhaustivo y monitoriza el comportamiento en producción en busca de cualquier tipo de problemas o errores.

  • DevOps proviene de la metodología ágil para el desarrollo de software.
  • DevOps se basa en integrar desarrollo y operaciones . Los equipos Dev y Ops.
  • Posibilita la automatización y el control monitorizado en todos los pasos
  • Facilita desarrollar software más rápido, a menor coste y mayor frecuencia de entregas.

¿DevOps es una nueva profesión?

DevOps no consiste en expandir la actuación de los desarrolladores de software y el alcance de su responsabilidad en los despliegues. Se trata de que el equipo de desarrollo esté muy centrado en desarrollar eliminando el trabajo y las preocupaciones de la puesta en producción y el resto de trabajo se realice también de forma ágil.

Para un perfil de desarrollador formar parte de un equipo DevOps puede resultar relativamente sencillo ya que frecuentemente las responsabilidades del despliegue han recaído en los desarrolladores. Por el contrario, un administrador de sistemas necesita nuevas habilidades para el mismo fin ya que no ha sido habitual que realice esas labores. Estas habilidades, según una investigación de Puppet Labs, son scripting, don de gentes, reingeniería de procesos, y en último lugar experiencia con herramientas específicas.

Estamos hablando de un perfil que no es fácil de encontrar por la rápida proliferación de nuevas y complejas técnicas y herramientas y su complejidad en la integración en equipos de trabajo.

Dicho esto, podríamos identificar el término DevOps con ciertas aptitudes en las técnicas para la metodología de desarrollo ágil. Y sí, hablamos de aptitudes y no de una profesión o una titulación en si pero es muy frecuente encontrar este concepto en el mercado de trabajo relacionado con puestos específicos, titulaciones o formaciones que tienen mucho tirón, así que posiblemente sea cuestión de tiempo ir viendo cómo prolifera el mundo DevOps.

Deja una respuesta