Cargando...
Estás aquí:  Inicio  >  Opinión  >  Gestión  >  Artículo actual

El abc de DevOps ante el desarrollo de aplicaciones

Por   /   12 noviembre, 2019  /   Sin Comentarios

Juan Rodríguez, de F5 NetworkPor Juan Rodríguez, Director General de F5 Networks, multinacional especializada en soluciones de aplicaciones.

 

¿En qué piensas cuando escuchas el término «DevOps»? ¿Concepto técnico impenetrable? Quizá ni siquiera has oído hablar de “DevOps”… En ese caso, prepárate, pues pronto lo harás.

Desarrollar una aplicación en el pasado era algo sencillo. Se definían los requisitos que debía cumplir el nuevo producto, se codificaba, se probaba el software resultante y se entregaba al equipo de operaciones para que lo pusiera en producción. Era un proceso limpio y ordenado.

Pero el tema se complica con la evolución hacia el escenario digital, en el que el negocio depende de la capacidad de incorporar nuevas funcionalidades y servicios con agilidad en el momento en el que se necesitan. Cuando la rapidez para adaptarse a nuevas circunstancias del mercado no era un requisito, el modelo tradicional era perfecto. Sin embargo, las dinámicas y exigencias de los negocios modernos, con plazos de “time tomarket” cada vez más cortos, hacen que ya no sea válido.

En esa línea, hay que tener en cuenta que en el desarrollo de una aplicación suelen intervenir diferentes equipos de programadores que trabajan en paralelo. Y con el modelo tradicional de desarrollo, no es raro que cuando cada equipo termina su trabajo y lo integra con el de los demás se descubra que algunos componentes son incompatibles, por lo que hay que realizar ajustes o, incluso, comenzar de nuevo, lo que puede convertir el proceso en algo muy tortuoso. Esto es algo muy común y que ha llevado a demostrar que si todos los equipos involucrados en el proyecto esperar a terminar sus respectivos trabajos antes de ponerlos en común, el resultado suele ser una gran pérdida de tiempo, cuando el tiempo es precisamente algo que ningún negocio actual puede permitirse perder.

También puede pasar que la integración de las distintas partes se lleve a cabo con éxito, pero que antes de pasar la aplicación a producción se solicite al departamento de Operaciones un entorno específico para probarla y garantizar su correcto funcionamiento. Y así, es posible que Operaciones tarde algunos días, incluso semanas, en proporcionar este entorno de pruebas, ya que puede requerir la intervención de otros departamentos, como el de Seguridad (que tendrá que ponerse al día al no trabajar en conexión con los equipos de desarrollo y operaciones), y que una vez comenzada la fase de “testing” se encuentren algunos errores cuya solución requiera de una revisión importante del código. Todo ello vuelve a suponer un retraso en la entrada en producción de la aplicación sobre la que se asienta el negocio.

¡DevOps al rescate!

Por todo ello, “DevOps” aparece como una nueva cultura de trabajo que llega para evitar las frustraciones y retrasos en los procesos de desarrollo e implementación de las aplicaciones, incorporando las siguientes características:

  • Integración continua (CI).

“DevOps” utiliza una metodología ágil donde, por lo general, los trozos de código funcionales más pequeños (por ejemplo, una nueva característica) se integran de manera regular y sin problemas en la rama principal de desarrollo de la aplicación, algo que permite detectar y corregir los posibles errores con rapidez. Y es que los pequeños fragmentos de código se crean dentro de su propio entorno aislado (en contenedor) donde cada componente se comunica con el resto a través de APIs (interfaces de programación de aplicaciones). Esto le da al desarrollador la flexibilidad suficiente para agregar o eliminar componentes sin afectar a otros. Es algo que se conoce como arquitectura de microservicios, en donde cada componente presenta una capacidad “plug-and-play”.

  • Entrega continua (CD).

El código integrado (CI) se va probando automáticamente a través de varios entornos durante todo el proceso hasta llegar a la fase de preproducción, donde queda listo para ser implementado definitivamente. La interacción entre CI y CD se denomina CI/CD.

  • Despliegue continuo.

El objetivo final de “DevOps” es que las aplicaciones puedan implementarse, es decir, ponerlas en funcionamiento de forma automatizada a través de tres pasos: integración continua, entrega continua y despliegue continuo (CI/CD²).

  • La importancia de la “nube”.

La “nube” es un entorno clave que facilita el desarrollo de “DevOps”, ya que proporciona a esta metodología la velocidad y la capacidad de automatización necesarias para hacer posible la innovación y el cambio de modelo.

  • La infraestructura como código.

Una infraestructura de TI altamente automatizada es ideal para que el equipo de desarrollo pueda desplegar automáticamente el código en cada coyuntura, desde la fase de pruebas hasta el entorno de implementación. Hay que tener en cuenta que la infraestructura como código es un potente antídoto para los posibles «cuellos de botella» de los equipos “dev” y “ops”. En cualquier caso, una infraestructura de este tipo debe abarcar herramientas de aprovisionamiento de infraestructura, que crean y despliegan infraestructura mediante un “clic” o completando rápidamente una plantilla. Además de que también debe incluir herramientas Desarrollo de aplicaciones con DevOps, de Pixabayde gestión de configuración que faciliten, por ejemplo, la actualización de 10.000 servidores con un solo comando.

  • Colaboración.

El éxito de “DevOps” depende en gran medida de la colaboración intensiva y coordinada entre el cliente, el desarrollador y los responsables de las operaciones de TI. Así, los desarrolladores deben centrarse en la codificación y los equipos de operaciones de TI en la gestión de la infraestructura automatizada. Y desde luego, ambos necesitan hablar entre ellos para descubrir nuevas formas de innovar y mejorar tanto los procesos como los entregables (el trabajo en silos sin comunicación ya es algo del pasado).

En definitiva, “DevOps” es una práctica que puede eliminar las fuentes de desperdicio en la entrega de aplicaciones, al margen de que impulsa la eficiencia al optimizar los procesos, eliminar silos, usar herramientas de automatización, estandarizar plataformas y establecer una sólida cultura de colaboración. Es, por tanto, una forma de evitar los “cuellos de botella” en el desarrollo de software y una fuerza imparable para la innovación. Es todo esto y mucho más. Y la verdadera influencia de “DevOps” solo se ha comenzado a sentir.

    Print       Email

Sobre el autor

Tras casi 35 años posicionada como la principal revista económica especializada en gestión y management, y habida cuenta de los nuevos modos y necesidades de sus habituales lectores (directivos, emprendedores y empresarios en un 90% de los casos), NUEVA EMPRESA lleva apostando desde principios de 2009 por el mercado digital, convirtiendo la Web en el principal punto de nuestra estrategia, dejando la edición en papel exclusivamente destinada a números especiales sin una periodicidad estipulada.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *