HEADER_lecciones_de_software

Tecnologías de código abierto para implementar DevOps

por Anderson Cabezas Arboleda, el 22 de mayo de 2019

tecnologias_para_implementar_devOps

La estructura de DevOps busca entregar productos finales completamente funcionales y de alta calidad, de forma más rápida y rentable, de acuerdo con las definiciones de diferentes fuentes como microsoft  y RedHat.  Esta metodología integra los equipos de desarrollo y operaciones de manera que se desplieguen cambios con mayor frecuencia.

Un elemento fundamental del modelo DevOps es la Integración Continua, mediante la cual los desarrolladores agrupan las nuevas funcionalidades en un repositorio central de forma periódica, seguidamente se ejecuta una serie de tareas automatizadas que conllevan a acelerar notablemente el proceso de despliegue. Te puede interesar: Automatización, el camino a la transformación digital

Todo esto se traduce en entregas ágiles y frecuentes, rápida resolución de problemas, equipos más productivos, mejora de la comunicación y colaboración en los equipos , feedbacks continuos, ambientes más estables  y si a esto añadimos herramientas de código abierto; también tendremos reducción de costos, amplia documentación, continua evolución, fiabilidad y seguridad.

Para lograr esta integración continua se deben cubrir algunos aspectos fundamentales:

  • Repositorio de código
  • Control de versiones
  • Orquestación de tareas
  • Catálogo de componentes / Repositorio de artefactos
  • Análisis  y calidad de código

A continuación veremos cuatro herramientas que nos permitirán abarcar los aspectos fundamentales para lograr esa integración continua.

1. Repositorio de código compartido

Es necesario contar con un sistema de versionamiento que nos permita centralizar  y gestionar los diversos cambios sobre el producto de software.

GIT es una herramienta que se destaca en este aspecto por su fiabilidad y por ser de código abierto, que controla las versiones de los desarrollos en flujos de trabajo no lineales, brindándonos seguridad de datos y facilitando la extracción de código para una continua integración.

Además, existen plataformas como GitHub y BitBucket que proveen almacenamiento gratuito de repositorios que permiten el desarrollo de la integración continua brindando funcionalidades como:

  • Revisión de código
  • Generación de versiones para despliegues
  • Aprobación de cambios
  • Integración con herramientas de análisis de código

2. Orquestador de tareas - Servidores de integración

Cada una de las herramientas implicadas en el ciclo de vida del modelo DevOps forman parte de un camino paso a paso para lograr las entregas continuas garantizando rapidez y calidad, para que en dicho camino sepamos cuál es el paso a seguir.  Lee: 3 razones para implementar DevOps en una empresa que busca ser ágil

Se requiere de una integración algorítmica entre dichas herramientas, y es aquí donde se hace necesario contar con una herramienta que lleve la batuta y tenga la capacidad de dirigir de forma ordenada la secuencia de tareas necesarias para completar el proceso de despliegue de forma correcta.

Para este fin nos encontramos con JENKINS, un servidor de automatización de código abierto que se puede usar para automatizar múltiples tipos de tareas relacionadas con la construcción, prueba y entrega de software.

3. Repositorio de artefactos

En los proyectos de desarrollo suelen existir paquetes de código con recursos y funcionalidades que se pueden reutilizar, lo que nos permite concentrarnos en aspectos más relevantes de lo que se está creando.

Estas funcionalidades, que en muchos casos suelen ser transversales a los proyectos, deben ser fácilmente accesibles para acelerar el proceso de compilación. Para esto se requiere de una herramienta que almacene y brinde un acceso rápido y seguro  a todos estos recursos, de tal manera que se agilicen los despliegues. Es aquí donde encontramos a NEXUS que nos brinda funcionalidades para disponer de las librerías de nuestros proyectos, además de contar con manejo de versionamiento de dichas librerías.

4. Análisis de código

Mantener un nivel de calidad y legibilidad de código constituye un factor importante para el éxito en entornos de desarrollo ágil. Debido a esto se requiere de una herramienta que nos permita garantizar que el código cumpla con ciertos estándares mínimos de calidad.

Por ello, recomendamos Sonarqube, una tecnología que suple estos estándares de calidad, ya que es de código abierto y compatible con muchos lenguajes de programación. Por medio de la automatización,  esta herramienta medirá bajo criterios de aceptación, previamente definidos, la calidad del desarrollo entregado. Además, evitará un despliegue de mala calidad, dándonos la confianza de que cada entrega esté sujeta a análisis y verificación.

El modelo DevOps agiliza el camino, desde el desarrollo hasta las entregas a producción. Si a esto le sumamos el conjunto de herramientas de código abierto que pueden ser implementadas, se tiene como resultado un mayor provecho del tiempo y los productos de software.

Conoce las claves para tener una transformación digital ágil

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal