12 DIC 2017

DevOps, ¿qué es y cómo se integra en un entorno tradicional?

El término DevOps nace de la contracción inglesa de “development” (desarollo) y “operations” (operaciones), es decir el equipo que se ocupa de los aspectos de la producción del software y de su funcionamiento. El DevOps, pero, no se refiere simplemente a un grupo operativo, sino a un cambio cultural y metodológico que incluye un conjunto de prácticas, instrumentos automáticos y procesos de Desarollo y de Lean Management. Gracias a eso, es posible mejorar la cadena de producción del software para que sea más rápida y eficiente. Para que esto sea posible, es fundamental la colaboración entre los dos equipos Development y Operations que tienen que estar alineados siempre sobre las actividades hechas y los objectivos comerciales que se quieren perseguir.

DevOps, una mezcla de cultura, metodología y team building

El DevOps no es una metodología de los últimos tiempos, ni una construcción desde cero, sino un flujo operativo que en las empresas siempre se ha practicado en beneficio del negocio, pero solo en los últimos años ha recibido una denominación y un reconocimiento. Il DevOps es fundamental para mejorar la integración entre los miembros del grupo operations y los del grupo desarollo en una óptica de crecimiento y optimización. Para nuestro DevOps Evangelist, Pasquale Camastra, el DevOps se  puede definir como:

“Una mezcla de cultura (es el elemento principal), competencia, intercambio, colaboración, de diseño pensado para el Usuario Último (y no contra de él), liderazgo, team building, no es estrechamente Ágil, no es (solo) entrega continua y un proceso de mejora continua, no ha nacido con el cloud, pero con el cloud (de última generación) ha emergido y se ha vuelto más cómodo”.

Para incentivar la colaboración entre los miembros del grupo operations y los del grupo desarollo puede ser útil el DevOps Officer, una figura de autoridad, con excelentes dotes de comunicación y capaz de conducir los equipos Dev y Ops hacia el objectivo común que es la producción de la aplicación. Al mismo tiempo esta figura tendría que difundir la cultura de la colaboración que es fundamental para que esta metodología pueda funcionar correctamente.

DevOps y Cloud, un círculo virtuoso

La evolución tecnológica de los últimos años, así como la aparición del cloud y de los smartphones, ha hecho más “estrechos” los ciclos de realización de las aplicaciones, borrando las barreras entre las competencias de quien se ocupa del desarollo del software y de quien se ocupa de su producción, competencias que antes eran claramente separadas.

El cloud, sobretodo en su significado PaaS y SaaS, ahora ya dispone de servicios pensados para aliviar las tareas del equipo operation que siempre más se ocupa principalmente de la monitorización de los ANS de los servicios cloud más bien que del funcionamiento en los sistemas, estimulando en sus miembros un conocimiento aplicativo que antes no era necesario. En la misma manera, los servicios Cloud ayudan al desarollador en la creación de las aplicaciones que él ya no crea desde cero, sino utiliza los servicios externos abastecidos por terceros y así es obligado a adquirir competencias de gestión que no tendría que conocer en los entornos on-premise. En este caso el concepto de DevOps se realiza en el uso por parte de los grupos Dev y Ops, en Cloud, de una arquitectura pipeline en común donde es dificil definir exactamente los límites operativos entre los dos grupos.

Entrega continua, un ejemplo de integración DevOps

En la metodología DevOps la “entregua continua” es uno de los conductores de colaboración entre los grupos Dev y Ops. Gracias a este modelo de desarollo del software, los cambios al código son aplicados a una build, puestos a pruebas y preparados para la entrega en producción, todo este flujo es automático. Antes que los cambios sean entregados en producción, el grupo DevOps tiene que aprobarlos. Pueden ser puestos a pruebas varios aspectos: por ejemplo las interaces, las integraciones, la carga o la seguridad de las API.

La entrega continua es muy útil para los desarolladores porque así pueden hacer un análisis profundo de las actualizaciones y detectar los posibles problemas.

DevOps y metodología Ágil, beneficios e innovación

El objectivo de la metodología Ágil es entregar softwares de calidad desarollados en tiempos rápidos. Esta metodología desarolla el software agrupando varias tareas en pequeñas etapas repetitivas que se llaman “iteraciones”, cada iteración tiene que estar lista en tiempos rápidos y en cada una se desarollan nuevas funcionalidades del software. El tiempo de cada iteración es de algunas semanas para reducir los fallos del programa. Gracias a la colaboración, a la integración y a la comunicación entre el equipo de desarollo y lo de operation, se aspira a reducir los tiempos del proceso: entrega del producto, prueba del software, evolución y funcionamiento constante para diseñar un programa más afidable y seguro. Además se reducen los riesgos de frecuentes y relevantes cambios al programa.

Para nuestros expertos de DevOps implementar el DevOps en un entorno donde ya se usa la metodología Ágil da los resultados mejores y hace que acercarse a la metodología sea más fácil respecto a una implementación en un entorno tradicional. Claramente eso no significa que en un entorno tradicional el DevOps no pueda ser implementado, al contrario sería conveniente implementarlo para que los dos equipos no sigan trabajando por separado y puedan integrarse y colaborar en la mejor manera. La metodología DevOps introducida en un entorno tradicional podría tener otra ventaja: favorecer la modernización de las metodologías usadas estimulando hacia la innovación.

Elaborado por Lucia D’Adamo, en colaboración con Pasquale Camastra, supervisado por Marco Pirrone