Desde el comienzo del siglo XX los avances tecnológicos que la sociedad ha ido experimentando ha hecho que el mundo se transforme muy deprisa, un cambio que se ha ido dando a paso agigantado hasta llegar al contexto actual de nuestros días. Teléfonos móviles, ordenadores, GPS, cámaras integradas, redes sociales y multitud de dispositivos tecnológicos, esos sí, todos ellos creados bajo una misma premisa: hacernos la vida, un poco más fácil.
Pero toda esta tecnología estaría vacía sin lo que habita en su interior: aplicaciones, programas y servicios, en ocasiones extremadamente complejos que las sostienen. Todas estas aplicaciones y arquitecturas de sistema tienen algo en común, y es el hecho de que están creadas mediante software, equipos de trabajo y todo ello en entornos digitales.
Qué es DevOps y para qué sirve
El término DevOps proviene de las palabras development (desarrollo) y operations (operaciones). La cultura DevOps es una filosofía de trabajo que busca acercar o unificar dentro de una compañía el desarrollo o construcción de software (Dev), y la administración de sistemas (Ops).
Algunas de las actividades que realizan estos dos equipos de trabajo son:
- Desarrollo: Análisis de requisitos del software, diseño arquitectónico, codificación, pruebas, integración, pruebas de aceptación.
- Operaciones: Instalación, actualización, migración, monitorización, administración de configuración, soporte.
Ambos equipos utilizan un conjunto de prácticas y herramientas que buscan la reducción del tiempo entre la introducción de un cambio en el código del sistema y la puesta en producción de ese cambio, al mismo tiempo que se garantiza la calidad del sistema.
Habitualmente los equipos de desarrollo y operaciones han estado separados en las empresas de creación de software, ya que normalmente desempeñan funciones muy diferentes. En los últimos años se ha visto la necesidad de acercar ambos grupos debido a dos factores:
- La utilización de metodologías ágiles para la creación de software. Estas metodologías se basan en iteraciones cortas, donde son liberadas nuevas funcionalidades del software en un plazo reducido de tiempo. Para implementar está nueva forma de trabajar es necesario mejorar la colaboración entre los desarrolladores y el equipo de sistemas, para que el proceso transcurra de la manera más fluida posible.
- La popularización del uso de plataformas de cloud computing como Amazon Web Services o Microsoft Azure e infraestructuras de contenedores avanzadas con orquestadores como Kubernetes, RedHat OpenShift o Amazon ECS, que permiten que las operaciones y el desarrollo sean actividades cada vez más próximas.
En este contexto surge DevOps, supervisando todo el proceso de construcción de software y automatizando numerosas tareas relacionadas con la integración, pruebas y despliegue de las aplicaciones.
Con DevOps se trata de buscar la intersección entre desarrollo y operaciones, teniendo en cuenta la calidad del producto. Como vemos en la figura, DevOps no es una metodología, ni un conjunto de actividades sino un enfoque cultural que adoptará cada empresa dependiendo de sus necesidades.
Hay una estrecha relación entre DevOps y las metodologías ágiles. Al aproximar los equipos de desarrollo y operaciones, DevOps mejora el desarrollo ágil. Las metodologías ágiles se basan en actualizaciones frecuentes de software para mejorar las funcionalidades del producto final, lo cual provoca que sea necesario entregas continuas de código.
Para poder realizar entregas continuas, como las pruebas, el despliegue, o el propio desarrollo, se debe automatizar en la medida de lo posible, todo el proceso que va desde la codificación hasta el despliegue, pasando por la ejecución de pruebas de validación, integración, seguridad y calidad. Por tanto, las compañías han de adaptarse a este nuevo mecanismo de desarrollo y operación.
Está demostrado que la metodología DevOps mejora la comunicación y colaboración entre los desarrolladores y los profesionales de TI, facilitando la transición y articulando los procesos entre los diferentes ámbitos de creación de los softwares y aplicaciones. Pero más allá de crear un entorno de trabajo más ágil, este sistema aporta numerosas ventajas a las empresas que lo aplican.
Puedes profundizar más sobre lo qué es DevOps, casos de ejemplo, herramientas y soluciones sobre DevOps en la página web de Qualoom y a través de la guía de contenidos sobre DevOps.