Entregar servicios a través de software implica un reto cada vez mayor para todo tipo de organizaciones. Lograr una buena coordinación entre los equipos de desarrollo y operaciones, con las exigencias de time-to-market, seguridad y los frenéticos ritmos de actualización puede ser una pesadilla. El desarrollo ágil, de la mano de DevOps, vino a solucionar nominalmente este problema, pero no es tarea fácil: implica cambios culturales, estructurales, y también contar con las aplicaciones que mejor complementen este método de producción.
Los beneficios para las organizaciones no son pocos. Según el reporte Accelerate State of DevOps 2018, elaborado por DevOps Research and Assesment, las empresas usuarias de DevOps exceden sus objetivos de negocio en términos de rentabilidad, productividad y participación de mercado.
Es por esto que IT Masters Mag recopiló una lista de herramientas que facilitan la implementación y operación de DevOps, según los testimonios de numerosos usuarios de esta metodología:
- Jenkins: Servidor de integración continua, fácil de usar y con gran cantidad de plugins, que permite ejecutar trabajos que hagan uso de todo tipo de tecnologías. Se emplea en la construcción automática de proyectos, en deployment y principalmente en integración continua. Como alternativa, se recomienda Bamboo.
- SonarQube: Herramienta para análisis automatizado de código. Funciona con diferentes lenguajes y se integra con toda la cadena de herramientas de DevOps, incluidos los sistemas de compilación, los motores de CI, WebHooks y la REST API integral.
- SonarLint: Herramienta que se integra en el IDE para poder ver las incidencias del código antes de subirlo al sistema de control de versiones y de analizarlo con SonarQube.
- Git: Software de control de versiones. Modela los datos como un conjunto de instantáneas de un mini sistema de archivos. Cada vez que el desarrollador confirma un cambio, o guarda el estado de su proyecto en Git, básicamente hace una foto del aspecto de todos los archivos en ese momento y guarda una referencia a esa instantánea. Para ser eficiente, si los archivos no se han modificado, Git no almacena el archivo de nuevo, sólo un enlace al archivo anterior idéntico que ya tiene almacenado.
- Docker: Plataforma que utiliza contenedores para empaquetar aplicaciones. Se apega bastante a la metodología DevOps. Agiliza el proceso de implementación de software y permite una integración continua. Estos contenedores semejan máquinas virtuales: al desarrollar una aplicación y empaquetarla en contenedores, esta funcionará de la misma manera en cualquier servidor como lo hacía en el equipo del desarrollador porque incluye librerías, archivos y configuraciones.
- Bitbucket: Servicio colaborativo y escalable para administrar proyectos usando Git pero en la nube. Se integra con Jira Software. Como alternativa, sugiere GitHub o Gitlab.
- Maven: Herramienta de Java para utilizar librerías de terceros, manejar y construir software. Fue creada por Jason van Zyl, de Sonatype, en 2002. Puede compilar y empaquetar código, demás de permitir crear software con dependencias incluidas dentro de la estructura del JAR.
- Nexus Repository: Administra el repositorio de librerías para recompilar y administrar dependencias, con lo que evita hacer malabarismos constantemente con una colección de JAR.
- Zoekeeper: Programa de software libre de la Apache Software Foundation, que ofrece un servicio para la coordinación de procesos distribuidos. Entre las tareas para las que es útil están: mantenimiento de configuración, naming, sincronización distribuida y servicios de agrupación (que normalmente son consumidos por otras aplicaciones distribuidas).