DevOps: qué es, cuáles son sus prácticas y beneficios

DevOps es, en principio, una metodología de desarrollo relacionada con la ingeniería de software. Sin embargo, en la práctica abarca mucho más: cultura, métodos, prácticas y herramientas.

Te invitamos a conocer más detalles de esta metodología y sus beneficios. Así como su relación con la automatización y con la prestación de aplicaciones nativas en la nube.

Qué es el DevOps y para qué sirve

Es un acrónimo que deriva de la combinación de las palabras en inglés:

  • Development o desarrollo de sistemas de software.
  • Operations o gestión de la operación de sistemas.

Se trata de equipos que se comunican y colaboran para ofrecer valor a sus clientes, a través de la elaboración de productos de mayor calidad y más confiables.

Los equipos de trabajo que adoptan la cultura DevOps integran prácticas y herramientas que incrementan la capacidad de la empresa. Así, se define un modelo de trabajo orientado a crear o mejorar servicios.

La idea es que las áreas de desarrollo, operaciones, control de calidad, seguridad y los usuarios intervengan de manera coordinada en las fases del ciclo de vida de las aplicaciones. Estas son:

  • Planeamiento (Plan).
  • Construcción (Build, desarrollo o codificación).
  • Prueba (Test).
  • Entrega (Release, instalación o puesta en marcha).
  • Supervisión del funcionamiento (Monitor) y obtención de mediciones.

Con la metodología GitOps se gestiona el proceso de extremo a extremo, cubriendo todas sus fases. Cuando las soluciones son creadas como aplicaciones en nube nativa (cloud native), se suma la flexibilidad, la disponibilidad y la reutilización.

Las cloud native son soluciones tecnológicas integradas por componentes discretos y reutilizables. Conocidos como microservicios, se diseñan para integrarse en cualquier entorno de nube.

Prácticas y herramientas

Además de metodologías, DevOps incluye un conjunto de prácticas que busca fomentar la mejora continua, tales como:

  • Desarrollo continuo, con el apoyo de herramientas de control de versiones, repositorios y contenedores. Herramientas: GitHub, GitLab, Stash o Kubernates.
  • Pruebas continuas del código, tanto programadas por equipos de control de calidad como automatizadas. Herramientas: JUnit, TestNG o Codeception.
  • Integración continua, con herramientas de gestión de configuraciones para saber cuándo el código puede pasar a producción.
  • Entrega continua a partir de la automatización de la incorporación de cambios en el código.
  • Puesta en marcha, a partir de la automatización de procesos de lanzamiento de código nuevo. Herramientas: Kubernetes, Jira, OpenShift, OpenStack o Docker.
  • Supervisión continua para detectar y notificar errores o problemas. Herramientas: Datadog, Slack o Grafana.
  • Gestión continua de la infraestructura del código para registrar las configuraciones de los entornos de desarrollo y de prueba. Esto simplifica la recuperación de versiones y la gestión de los cambios.

A continuación, veamos los principales beneficios de la implementación de esta cultura de trabajo.

5 beneficios del DevOps, tanto técnicos como empresariales

Al superar barreras en la comunicación, con la integración y las mejoras continuas, las empresas obtienen varios beneficios, tales como:

  1. Gestión compartida, basada en la colaboración, la propiedad, la responsabilidad y los valores de la cultura DevOps.
  2. Se aprovecha el talento especialista de la empresa, el cual es motivado para aplicar su conocimiento y experiencia.
  3. Desarrollo de una ventaja competitiva a partir de la entrega más frecuente y rápida de funcionalidades que responden a las necesidades del cliente.
  4. Cambios funcionales y seguros a partir de la integración, la entrega y el registro continuos de indicadores de desempeño y calidad.
  5. Administración de infraestructura y de procesos de desarrollo simples, complejos o cambiantes, gestionando el crecimiento con un menor riesgo.

Evolución: de la colaboración de equipos humanos al machine learning

Esta filosofía ha evolucionado desde su aparición en 2009, cuando Damon Edwards presentó el término y sus fundamentos en los “DevOps Days” de Bélgica. Luego en 2010, Damon Edwards junto con John Willis presentaron el acrónimo CAMS, donde resumían sus principios:

  • Culture (cultura).
  • Automation (automatización).
  • Measurement (medición).
  • Sharing (intercambio).

Al incluir prácticas de seguridad en la nube se habla de DevSecOps. Es decir, una visión compartida de la gestión de la seguridad, los procesos y las plataformas en la nube.

Lo más reciente en esta evolución son el BizDevOps (trabajo colaborativo de equipos comerciales, de desarrollo y de operación de sistemas). Su aplicación para apoyar la Data Science es otra de sus tendencias, ya que favorece el desarrollo de entornos de exploración, la visualización de datos y el aprendizaje automático.

La evolución tecnológica del DevOps ha complementado esta cultura de trabajo con metodologías, herramientas y plataformas cloud. Así pues, las empresas combinan las capacidades de sus equipos y agilizan el desarrollo de sus soluciones, bajo un enfoque de comunicación, mejora continua,  seguridad, integración y disponibilidad.

RELACIONADOS

astronauta-astrobee-robot

Astrobee, el robot ayudante de los astronautas

Desde aspiradoras que mantienen limpios los suelos de nuestras casas a dispositivos que asisten en operaciones a corazón abierto. Los robots se diseñan para...