DevOps Tools como módulo de Onesait Platform
Disponible desde la versión 6.1.0-Warcraft
Introducción
Se ha incorporado en Onesait Platform un nuevo módulo denominado «DevOps Tools», el cual incluye un conjunto de herramientas CI/CD generalistas en su ámbito y open source para ofrecer un sistema DevOps completo al proyecto en modo «Servicio» en instalaciones de la Plataforma en las que no existen estas o no estén accesibles.
El módulo de DevOps Tools aplica el mismo modelo de suscripción de Onesait Platform
¿Qué incluye DevOps Tools?
Este módulo incluye las siguientes funcionalidades.
GitLab como repositorio centralizado de código
GitLab es una plataforma de gestión de repositorios de código que utiliza el sistema de control de versiones Git.
Además de la gestión de código fuente, GitLab también ofrece herramientas para la gestión de proyectos, la revisión de código y la integración continua:
Las principales características de GitLab son:
Repositorio Git: utiliza el sistema de control de versiones distribuido Git para gestionar y seguir los cambios en el código fuente de un proyecto.
Gestión de proyectos: permite organizar y gestionar proyectos de desarrollo de software, como la creación y gestión de tareas, el seguimiento y resolución de problemas, los hitos conseguidos… (como los repositorios Git).
Herramientas colaborativas: proporciona funcionalidades que facilitan la colaboración entre los distintos miembros de un equipo de desarrollo (comentar problemas, desarrollo de líneas específicas de código, etc.).
Integración Continua (CI) y Despliegue Continuo (CD): añade capacidades integradas de CI/CD que permiten automatizar la construcción, las pruebas y el despliegue de aplicaciones.
Control de acceso y seguridad: facilita la tarea de configurar niveles de acceso y roles para controlar quién puede realizar acciones específicas en el repositorio.
Sistema eficiente de registros y seguimiento: ofrece registros detallados de todas las actividades relacionadas con el proyecto, lo que facilita el seguimiento de los cambios y las acciones realizadas en el repositorio.
Documentación de proyectos: incluye herramientas para crear y gestionar documentación relacionada con el proyecto.
Flexibilidad y escalabilidad: es una plataforma que se puede utilizar tanto en pequeños proyectos, como en grandes desarrollos, pudiendo adaptarse a las necesidades de cada momento específico.
Jenkins como servidor de construcción de software
Jenkins es una herramienta DevOps de automatización de integración continua, entrega e implementación continua (CI/CD) de código abierto escrita en el lenguaje de programación Java.
Se utiliza para implementar flujos de trabajo de CI/CD, llamados canalizaciones:
Entre sus funcionalidades y características se puede destacar:
Servidor de automatización extensible: Jenkins puede usarse como un simple servidor de CI o convertirse en el centro de entrega continua para cualquier proyecto.
Programa autónomo basado en Java: Jenkins está listo para ejecutarse de inmediato, con paquetes para Windows, Linux, macOS y otros sistemas operativos similares a Unix.
Instalación y configuración sencilla a través de su interfaz web: que incluye comprobaciones de errores sobre la marcha y ayuda integrada.
Integración extensa: con cientos de complementos en el centro de actualización, Jenkins se integra con prácticamente todas las herramientas de la cadena de herramientas de integración y entrega continua.
Ampliación: se puede ampliar a través de su arquitectura de complementos, lo que brinda posibilidades casi infinitas de lo que Jenkins puede hacer.
Distribución optimizada: puede distribuir fácilmente el trabajo entre varias máquinas, lo que ayuda a impulsar compilaciones, pruebas e implementaciones en múltiples plataformas más rápidamente.
ArgoCD como herramienta de distribución de Kubernetes
ArgoCD es una herramienta declarativa de entrega continua de GitOps para Kubernetes.
ArgoCD ofrece diversas funcionalidades entre las que destacan:
Despliegue automático de aplicaciones.
Gestión de varios clústeres de Kubernetes.
Multitenant.
Compatibilidad con diferentes repositorios: Git, Helm Repositories.
Integración SSO.
Políticas de autorización con RBAC.
Sincronización con aplicaciones desplegadas.
Interfaz de usuario sencilla e intuitiva.
CLI para integrar con otras herramientas de CI/CD.
Webhooks.
Métricas con Prometheus.
Harbor: Private Registry como repositorio de imágenes
Harbor es un registro de imágenes de código abierto que protege los artefactos con políticas y control de acceso basado en roles, garantiza que las imágenes se escaneen y estén libres de vulnerabilidades, y firma las imágenes como confiables.
Entre las funcionalidades del aplicativo destacamos:
Creación de diferentes proyectos: con informacion ampliada sobre la imagen: etiquetas (tags y labels), numero de pulls, fecha de creación, SHA, vulnerabilidades, visibilidad del proyecto, etc.
Creación de diferentes usuarios: con diferentes permisos, conocido como control de acceso basado en roles, en donde los usuarios se podrán crear a nivel de registro y seleccionar a qué proyectos tienen acceso y quépermisos tienen sobre ellos (administrador, responsable, desarrollador, invitado, etc.).
Análisis de imágenes: de forma automática o manual.
Conectar registros externos.
Sincronización de imágenes desde un repositorio externo (pull): pudiendo hacer una sincronización automatizada o manual de un registro externo hacia una o más imágenes y etiquetas para poder traerse imágenes de ese registro externo al privado de Harbor.
Sincronización de imágenes hacia repositorio externo (push): se puede hacer una sincronización automatizada o manual hacia un registro externo donde se suba una imagen al registro de Harbor y el mismo registro haga push hacia el registro externo.
Conectar un analizador de imágenes diferente al que trae por defecto Harbor.
Disponible en nueve idiomas: incluido el español.
Nexus como repositorio de artefactos
Sonatype Nexus es un repositorio que organiza, almacena y distribuye los artefactos necesarios para el desarrollo.
Con Nexus, los desarrolladores pueden controlar completamente el acceso y la implementación de cada artefacto en una organización desde una única ubicación, lo que facilita la distribución del software.
Nexus ofrece funcionalidades tales como:
Publicación y caché en un repositorio central: que se conecta de forma nativa a todos los administradores de paquetes populares.
Control del ciclo de vida: de las compilaciones preparadas y los metadatos personalizados directamente desde su servidor CI/CD.
Inicio de sesión único (SSO): con controles de acceso basados en roles y auditabilidad total.