Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Disponible desde Release 6.1

Introducción

Con DevOps Tools nos referimos a un conjunto de herramientas (ArgoCD, GitLab, Jenkins, Docker Registry, Nexus) ofrecidas junto a Plataforma para entornos en los que no exista o no se puedan usar las herramientas CI/CDEn esta release hemos incorporado a Plataforma un nuevo módulo denominado DevOps Tools que incluye un conjunto de herramientas CI/CD open-source estandarizado en su ámbito para ofrecer un sistema DevOps completo al proyecto en modo Servicio en instalaciones de Plataforma en las que no existen estas o no estén accesibles.

Consideramos DevOps Tools como otro componente de plataforma, aplicando el mismo modelo de suscripción de Plataforma.

¿Qué incluye DevOps Tools?

ArgoCD

...

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 clusters 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.

  • UI sencilla e intuitiva.

  • CLI para integrar con otras herramientas de CI/CD.

  • Webhooks.

  • Métricas con Prometheus.

  • Gestión de varios clusters 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.

  • UI sencilla e intuitiva.

  • CLI para integrar con otras herramientas de CI/CD.

  • Webhooks.

  • Métricas con Prometheus.

GitLab Community

...

Jenkins

...

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 software 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 caracteristicas características se puede destacar:

  • Como 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.

  • Jenkins es un programa autónomo basado en Java, listo para ejecutarse de inmediato, con paquetes para Windows, Linux, macOS y otros sistemas operativos similares a Unix.

  • Jenkins se puede instalar y configurar fácilmente a través de su interfaz web, que incluye comprobaciones de errores sobre la marcha y ayuda integrada.

  • 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.

  • Jenkins se puede ampliar a través de su arquitectura de complementos, lo que brinda posibilidades casi infinitas de lo que Jenkins puede hacer.

  • Jenkins 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.

Docker Private Registry

...

Los registros privados de docker contienen imágenes de contenedores confidenciales o de propiedad exclusiva que no están destinadas a la distribución pública. Al requerir autenticación, estos registros restringen quién puede extraer y enviar imágenes, creando un entorno de desarrollo más seguro.

...

Entre las caracteristicas a destacar:

  • Posibilidad de tener diferentes ingress para la UI y el registry.

  • Posibilidad de tener desactivaa la UI.

  • Borrado de imagenes desde la UI.

  • Autenticacion con varios usuarios para UI y registry.

  • Interfaz de usuario con bastante informacion sobre las imagenes:

    • Fecha de creacion

    • Tamaño de imagen

    • Dockerfile al completo

    • sha digest

Nexus

...

  • .

ArgoCD como herramienta de distribución 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 clusters 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.

  • UI sencilla e intuitiva.

  • CLI para integrar con otras herramientas de CI/CD.

  • Webhooks.

  • Métricas con Prometheus.

  • Gestión de varios clusters 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.

  • UI 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 imagenes 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 a destacar:

  • Creacion de diferentes proyectos:

    • Informacion ampliada sobre la imagen: tags, numero de pulls, fecha de creacion, sha, labels, vulnerabilidades, visibilidad del proyecto…

  • Creacion de diferentes usuarios con diferentes permisos, conocido como control de acceso basado en roles:

    • Los usuarios se podran crear a nivel de registry y seleccionar que proyectos tienen acceso y que permisos tienen sobre ellos (administrador, maintainer, developer, guest…)

  • Analisis de imagenes en automatico o manual

  • Conectar registries externos

  • Sincronizacion de imagenes desde repositorio externo (pull):

    • Se puede hacer una sincronizacion automatizada o manual de un registry externo (ejemplo GCR) hacia una imagen/es y tag/s para poder traerse imagenes de ese registry externo al privado de harbor

  • Sincronizacion de imagenes hacia repositorio externo (push):

    • Se puede hacer una sincronizacion automatizada o manual hacia un registry externo (ejemplo GCR) donde se suba una imagen al registry de Harbor y el mismo registry haga push hacia el registry externo

  • Conectar un analizador de imagenes diferente al que trae por defecto Harbor.

  • Disponible en 9 idiomas, incluido Español.

...

Nexus como repositorio de artefactos

Nexus de Sonatype 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 diferentes funcionalidades como:

  • Publique Publicación y almacene en caché componentes en un repositorio central que se conecta de forma nativa a todos los administradores de paquetes populares.

  • Controle el Control del ciclo de vida de las compilaciones preparadas y los metadatos personalizados directamente desde su servidor CI/CD.

  • Maneje cargas de trabajo globales con almacenamiento dinámico, políticas de limpieza y resiliencia de múltiples nodos.

  • Controle el acceso a sus componentes con inicio Inicio de sesión único (SSO), controles de acceso basados ​​en roles y auditabilidad total.

  • Centralice su consumo de código abierto para obtener información sobre el riesgo en su cadena de suministro de software.

  • Agregue Sonatype Repository Firewall para evitar que el riesgo de OSS ingrese a su SDLC mediante análisis de comportamiento de próxima generación y aplicación automatizada de políticas.

...

Artefactos:

...