ICM / servicio / ¿Qué es DevOps? ¿Para qué sirve?

¿Qué es DevOps? ¿Para qué sirve?

3 noviembre 2020 | Jesús Martínez

Antes de empezar a describir qué es DevOps, cómo se lleva a cabo y los diferentes roles y perfiles que forman parte de la metodología, hemos observado que existen multitud de sites que aportan una descripción académica mucho mejor de la que podríamos hacer desde ICM. 

¿Qué es DevOps?

No obstante, a nosotros nos gustaría describir DevOps desde un punto mucho más pragmático. En definitiva, para todos aquellos que no conocen los conceptos (en ocasiones complejos) que forman parte de la metodología. Así, desde ICM definimos DevOps como la puesta en producción de una nueva versión de nuestra aplicación, que debe realizarse sin que las pulsaciones por minuto de ningún miembro del equipo se disparen más allá de 80.

Se trata de una descripción jocosa, pero es la base. Si todo está probado en origen, se realizan tareas en entornos de integración y preproducción. La puesta en producción es algo que no nos debería preocupar. Serían tareas habituales, sencillas y muy probadas.

Históricamente los pasos a producción han sido puntos críticos en el desarrollo del software. En el pasado, hemos vivido puestas de producción de aplicaciones complejas en los que se veían involucrados decenas de servidores, implicaba el cambio de librerías, cambios en el modelo de bases de datos pesadas, … y siempre con procedimientos complejos de rollback. Sistemas, en conclusión,  muy complejos.

DevOps ha venido a resolver tal complejidad de los procesos de puesta en producción y, para ello, hay que redefinir primero el cómo se desarrollarán las aplicaciones.

¿Cómo funciona?

Así, las aplicaciones se pueden desarrollar de las siguientes formas:

  • Desarrollos cortos y con tests continuos en el desarrollo de aplicaciones. La utilización de herramientas de gestión de proyectos nos facilita llevar un control de las tareas, bugs e hitos que desencadenan en un evolutivo del software.
  • Trabajo con repositorio de código, por ejemplo, git, para la gestión de desarrollos, incluido en servicios como GitLab o Azure DevOps. Todos los commits al repositorio lleva asociado una tarea o un bug.
  • CI/CD: integración continua y continuo despliegue sobre producción. De esta forma se simplifican los procesos de despliegue en entornos complejos. Mediante los commits realizados sobre el repositorio, se realizan tareas de integración continua y despliegues automatizados sobre cada uno de los entornos, integración, desarrollo o producción.
  • Gestión de proyectos de desarrollo mediante metodologías ágiles. Siguiendo cualquiera de las metodologías (XP o scrum, por ejemplo), se desarrollan evolutivos basados en iteraciones cortas en el tiempo, idealmente una o dos semanas.

Cada uno de los puntos anteriores los iremos desgranando en diferentes entradas posteriores para profundizar, en la medida que una entrada puede hacerlo, en cada uno de ellos.

Debemos tener en cuenta que la integración de una política de DevOps implica cambios, en muchas ocasiones profundos, sobre todas las áreas de una compañía. Pero a cambio, genera una simplificación de todos los procesos y una mejora en la calidad global de la empresa muy alta ((seguridad incluida en la mejora).