Una plataforma practica, con IA integrada y pensada para que mejores desarrollando. Se adapta a tu ritmo, te corrige al instante y te muestra tu progreso real.
Correccion magica
Feedback inteligente
Aprende de cada acierto y fallo con explicaciones claras
¿A quién va dirigida esta formación en Gitlab Environment Toolkit?
Pensado para quienes deben dominar Gitlab Environment Toolkit en su día a día
Administradores GitLab Self-Managed
Este curso encaja con administradores que ya conocen GitLab a nivel funcional y necesitan evolucionar hacia despliegues más robustos, escalables y mantenibles. Aprenderán a interpretar arquitecturas de referencia, configurar componentes, preparar upgrades, revisar backups, diagnosticar incidencias y operar GitLab como una plataforma crítica de empresa.
Equipos de infraestructura y sistemas
Los equipos de sistemas podrán utilizar GET para aprovisionar máquinas, configurar nodos, gestionar dependencias, separar componentes y mantener una infraestructura GitLab más ordenada. La formación les ayuda a entender qué despliega Terraform, qué configura Ansible y qué responsabilidades siguen quedando fuera del Toolkit.
Equipos DevOps, CloudOps y Platform Engineering
Los perfiles DevOps y plataforma aprenderán a integrar GET en flujos de infraestructura como código, repositorios versionados, pipelines, controles de cambio, revisión de configuración y operación por entornos. El curso refuerza un uso disciplinado de GET para evitar despliegues manuales, configuraciones opacas o cambios sin trazabilidad.
Arquitectos cloud e infraestructura
Los arquitectos podrán evaluar cuándo desplegar GitLab en AWS, GCP, Azure, on-premise o Cloud Native Hybrid, considerando red, almacenamiento, balanceo, PostgreSQL, Redis, Gitaly, Praefect, OpenSearch y monitorización. El curso aporta criterio para diseñar entornos escalados sin copiar configuraciones de ejemplo sin análisis.
Equipos de seguridad y compliance técnico
Los perfiles de seguridad podrán revisar TLS, secretos, IAM cloud, SSH, permisos, red, acceso administrativo, backups, hardening, custom config, exposición de servicios y trazabilidad de cambios. La formación ayuda a reducir riesgos en una plataforma donde viven código, CI/CD, runners, paquetes, registros y credenciales.
Responsables de continuidad, soporte y operación
Los equipos que deben garantizar disponibilidad, recuperación y mantenimiento podrán trabajar upgrades, zero downtime upgrades, Geo, backups, monitorización, alertas, runbooks, troubleshooting y post-deployment considerations. El curso facilita pasar de “desplegar GitLab” a operar un servicio empresarial con procedimientos claros.
Proveedor con 16 años de experiencia en formación empresarial
Sobre
En Imagina Formación llevamos más de 16 años ayudando a profesionales y empresas a mejorar sus habilidades con formación práctica y totalmente adaptada a sus necesidades. Durante este tiempo, hemos formado a más de 480.000 personas y colaborado con más de 3.500 empresas, convirtiéndonos en un referente en el sector.
16
Años de liderazgo
+480.000
Alumnos formados en Imagina
¿Tienes dudas?
Resolvemos todas tus dudas sobre nuestra formación en Gitlab Environment Toolkit
Explora las respuestas a las preguntas que guian a nuestra comunidad. Aqui encontraras claridad sobre como funciona todo, desde el acceso hasta los detalles de los cursos. Si buscas respuestas, este es el lugar para comenzar.
GitLab Environment Toolkit, o GET, es un conjunto de scripts opinados de Terraform y Ansible para ayudar a desplegar entornos GitLab escalados siguiendo las Reference Architectures oficiales.
No. GET está pensado para despliegues escalados y opinados, especialmente alineados con arquitecturas de referencia. La documentación advierte que puede requerir personalización y que no garantiza compatibilidad con todas las necesidades específicas.
La documentación actual indica soporte para GCP, AWS y Azure en despliegues Linux package/Omnibus, además de Cloud Native Hybrid en AWS y GCP. También contempla soporte on-premise mediante Ansible.
Es recomendable tener buen conocimiento de Terraform, Ansible, administración GitLab e infraestructura. La propia documentación de GET advierte que el Toolkit no elimina la complejidad de operar grandes aplicaciones en producción.
Sí. Terraform se usa para provisionar máquinas e infraestructura asociada, y Ansible para configurar las máquinas y componentes GitLab en el orden adecuado mediante etiquetas o labels generados durante el provisioning.
Sí. El curso incluye Cloud Native Hybrid, GitLab Charts, Kubernetes, Helm, secretos, configuración personalizada y criterios para decidir cuándo esta arquitectura aporta valor o añade demasiada complejidad operativa.
Sí. GET documenta soporte para Advanced Search con OpenSearch, Geo y Container Registry, y el curso incluye configuración, validación, operación, monitorización y troubleshooting de estos componentes.
Sí. El temario incluye actualización de GitLab, actualización del Toolkit, rutas de upgrade, validación previa, zero downtime upgrades cuando aplique, rollback, pruebas posteriores y documentación de cambios.
No completamente. GET puede ayudar en despliegue y configuración, pero la documentación advierte que puede requerirse configuración manual posterior y que no ofrece garantías sobre seguridad o integridad de datos. Por eso el curso trabaja backups, validación, hardening y gobierno.
Sí. Al tratarse de una formación corporativa avanzada en GitLab, infraestructura, DevOps, cloud, automatización, seguridad y competencias digitales, puede plantearse como formación bonificable hasta el 100% a través de FUNDAE, según el crédito disponible y cumpliendo los requisitos administrativos aplicables.
GitLab Environment Toolkit, o GET, es un conjunto de scripts opinados de Terraform y Ansible para ayudar a desplegar entornos GitLab escalados siguiendo las Reference Architectures oficiales.
No. GET está pensado para despliegues escalados y opinados, especialmente alineados con arquitecturas de referencia. La documentación advierte que puede requerir personalización y que no garantiza compatibilidad con todas las necesidades específicas.
La documentación actual indica soporte para GCP, AWS y Azure en despliegues Linux package/Omnibus, además de Cloud Native Hybrid en AWS y GCP. También contempla soporte on-premise mediante Ansible.
Es recomendable tener buen conocimiento de Terraform, Ansible, administración GitLab e infraestructura. La propia documentación de GET advierte que el Toolkit no elimina la complejidad de operar grandes aplicaciones en producción.
Sí. Terraform se usa para provisionar máquinas e infraestructura asociada, y Ansible para configurar las máquinas y componentes GitLab en el orden adecuado mediante etiquetas o labels generados durante el provisioning.
Sí. El curso incluye Cloud Native Hybrid, GitLab Charts, Kubernetes, Helm, secretos, configuración personalizada y criterios para decidir cuándo esta arquitectura aporta valor o añade demasiada complejidad operativa.
Sí. GET documenta soporte para Advanced Search con OpenSearch, Geo y Container Registry, y el curso incluye configuración, validación, operación, monitorización y troubleshooting de estos componentes.
Sí. El temario incluye actualización de GitLab, actualización del Toolkit, rutas de upgrade, validación previa, zero downtime upgrades cuando aplique, rollback, pruebas posteriores y documentación de cambios.
No completamente. GET puede ayudar en despliegue y configuración, pero la documentación advierte que puede requerirse configuración manual posterior y que no ofrece garantías sobre seguridad o integridad de datos. Por eso el curso trabaja backups, validación, hardening y gobierno.
Sí. Al tratarse de una formación corporativa avanzada en GitLab, infraestructura, DevOps, cloud, automatización, seguridad y competencias digitales, puede plantearse como formación bonificable hasta el 100% a través de FUNDAE, según el crédito disponible y cumpliendo los requisitos administrativos aplicables.
Comprensión de GET como Toolkit opinado basado en Terraform y Ansible para desplegar entornos GitLab escalados siguiendo Reference Architectures oficiales.
Diferenciación entre instalar GitLab Omnibus en un único servidor y desplegar una arquitectura distribuida con componentes separados y responsabilidades claras.
Identificación de los problemas que GET ayuda a resolver: repetibilidad, configuración coherente, aprovisionamiento cloud, orden de instalación y alineación con arquitecturas de referencia.
Revisión de los límites del Toolkit: no sustituye diseño de infraestructura, gobierno operativo, backups validados, seguridad, costes, soporte ni conocimiento experto de GitLab.
Análisis del modelo de responsabilidad compartida descrito por la documentación, donde el Toolkit configura buenas prácticas, pero el entorno sigue siendo responsabilidad del usuario.
Reconocimiento de las áreas que GET cubre: Terraform, Ansible, cloud providers, Omnibus, Cloud Native Hybrid, Geo, OpenSearch, Registry, SSL/TLS y monitorización.
Identificación de áreas que GET no pretende cubrir por completo, como gestión de cuentas cloud, DNS server management, observabilidad más allá de Prometheus o configuración directa de email y OmniAuth.
Evaluación de cuándo GET es adecuado frente a GitLab SaaS, GitLab Dedicated, instalación manual, Helm chart independiente o servicios profesionales.
Definición de roles internos para un proyecto GET: owner GitLab, cloud engineer, administrador Linux, seguridad, redes, storage, DBA y responsable de cambios.
Creación de una visión de adopción por fases: laboratorio, despliegue controlado, validación, hardening, migración, operación y mejora continua.
Comprensión de GET como Toolkit opinado basado en Terraform y Ansible para desplegar entornos GitLab escalados siguiendo Reference Architectures oficiales.
Diferenciación entre instalar GitLab Omnibus en un único servidor y desplegar una arquitectura distribuida con componentes separados y responsabilidades claras.
Identificación de los problemas que GET ayuda a resolver: repetibilidad, configuración coherente, aprovisionamiento cloud, orden de instalación y alineación con arquitecturas de referencia.
Revisión de los límites del Toolkit: no sustituye diseño de infraestructura, gobierno operativo, backups validados, seguridad, costes, soporte ni conocimiento experto de GitLab.
Análisis del modelo de responsabilidad compartida descrito por la documentación, donde el Toolkit configura buenas prácticas, pero el entorno sigue siendo responsabilidad del usuario.
Reconocimiento de las áreas que GET cubre: Terraform, Ansible, cloud providers, Omnibus, Cloud Native Hybrid, Geo, OpenSearch, Registry, SSL/TLS y monitorización.
Identificación de áreas que GET no pretende cubrir por completo, como gestión de cuentas cloud, DNS server management, observabilidad más allá de Prometheus o configuración directa de email y OmniAuth.
Evaluación de cuándo GET es adecuado frente a GitLab SaaS, GitLab Dedicated, instalación manual, Helm chart independiente o servicios profesionales.
Definición de roles internos para un proyecto GET: owner GitLab, cloud engineer, administrador Linux, seguridad, redes, storage, DBA y responsable de cambios.
Creación de una visión de adopción por fases: laboratorio, despliegue controlado, validación, hardening, migración, operación y mejora continua.
Tema 1: GitLab Environment Toolkit dentro de la operación GitLab empresarial
Comprensión de GET como Toolkit opinado basado en Terraform y Ansible para desplegar entornos GitLab escalados siguiendo Reference Architectures oficiales.
Diferenciación entre instalar GitLab Omnibus en un único servidor y desplegar una arquitectura distribuida con componentes separados y responsabilidades claras.
Identificación de los problemas que GET ayuda a resolver: repetibilidad, configuración coherente, aprovisionamiento cloud, orden de instalación y alineación con arquitecturas de referencia.
Revisión de los límites del Toolkit: no sustituye diseño de infraestructura, gobierno operativo, backups validados, seguridad, costes, soporte ni conocimiento experto de GitLab.
Análisis del modelo de responsabilidad compartida descrito por la documentación, donde el Toolkit configura buenas prácticas, pero el entorno sigue siendo responsabilidad del usuario.
Reconocimiento de las áreas que GET cubre: Terraform, Ansible, cloud providers, Omnibus, Cloud Native Hybrid, Geo, OpenSearch, Registry, SSL/TLS y monitorización.
Identificación de áreas que GET no pretende cubrir por completo, como gestión de cuentas cloud, DNS server management, observabilidad más allá de Prometheus o configuración directa de email y OmniAuth.
Evaluación de cuándo GET es adecuado frente a GitLab SaaS, GitLab Dedicated, instalación manual, Helm chart independiente o servicios profesionales.
Definición de roles internos para un proyecto GET: owner GitLab, cloud engineer, administrador Linux, seguridad, redes, storage, DBA y responsable de cambios.
Creación de una visión de adopción por fases: laboratorio, despliegue controlado, validación, hardening, migración, operación y mejora continua.
Tema 2: Arquitecturas de referencia GitLab y dimensionamiento inicial
Interpretación de las GitLab Reference Architectures como punto de partida para definir tamaño, distribución de componentes, capacidad y resiliencia.
Revisión de los tamaños soportados por GET, desde entornos 1k hasta 50k usuarios, y de cómo el Toolkit permite desplegarlos dinámicamente.
Análisis de componentes críticos: GitLab Rails, Sidekiq, PostgreSQL, Redis, Gitaly, Praefect, Consul, HAProxy, OpenSearch y monitorización.
Diferenciación entre usuarios, carga real, repositorios, pipelines, runners, CI minutes, paquetes, Registry y patrones de uso que afectan al dimensionamiento.
Evaluación de cuándo usar arquitectura monolítica, distribuida, altamente disponible o Cloud Native Hybrid según criticidad y escala.
Identificación de riesgos de sobredimensionar por copia de ejemplos o infradimensionar por ignorar tráfico CI/CD, almacenamiento Git y Sidekiq.
Diseño de criterios para elegir instancia, discos, IOPS, red, balanceo, almacenamiento de objetos y servicios gestionados.
Revisión de dependencias entre Gitaly, Praefect y almacenamiento para entornos con repositorios grandes o alta concurrencia.
Creación de una matriz de dimensionamiento inicial con usuarios, repositorios, CI/CD, storage, disponibilidad, cloud y presupuesto.
Preparación de una recomendación ejecutiva que explique tamaño, costes aproximados, riesgos y siguientes validaciones técnicas.
Tema 3: Preparación del nodo de control y herramientas base
Configuración del nodo de control desde el que se ejecutarán Terraform y Ansible, separándolo de nodos target y de estaciones personales no gobernadas.
Instalación y validación de Terraform, Ansible, Python, Git, OpenSSH, cliente cloud, herramientas de shell y dependencias requeridas por GET.
Uso de versiones compatibles con los requisitos actuales del Toolkit, incluyendo Terraform 1.13.0+, Ansible 13.0, ansible-core 2.20 y Python 3.12+.
Preparación de entornos virtuales Python para aislar dependencias Ansible y reducir conflictos con paquetes del sistema operativo.
Organización local del repositorio GET, claves SSH, carpetas de entorno, documentación, configuraciones Terraform y configuraciones Ansible.
Definición de convenciones de naming para carpetas de entorno, prefijos, regiones, nodos, discos, balanceadores, buckets y estados.
Configuración de acceso seguro a clouds o infraestructura on-premise mediante perfiles, variables de entorno, credenciales temporales o mecanismos corporativos.
Validación de conectividad SSH hacia nodos target o instancias provisionadas antes de ejecutar playbooks complejos.
Preparación de controles locales para evitar ejecutar comandos contra el entorno equivocado, región incorrecta o credenciales productivas.
Documentación del nodo de control con versiones, rutas, credenciales admitidas, owners, procedimientos de actualización y normas de uso.
Tema 4: Preparación del proveedor cloud, red y estado Terraform
Selección del proveedor soportado según escenario: AWS, GCP, Azure para Omnibus, o Ansible sobre servidores existentes en on-premise.
Preparación de autenticación cloud para que Terraform pueda crear recursos y Ansible pueda acceder a las instancias resultantes.
Diseño de red base con VPC o VNet, subredes, rutas, gateways, grupos de seguridad, reglas de firewall y separación por función.
Reserva de IP externa o mecanismo equivalente para el endpoint principal, revisando el impacto sobre DNS, TLS y balanceadores.
Configuración de backend remoto para Terraform state, evitando estados locales perdidos, divergentes o compartidos por correo.
Protección del state remoto, recordando que puede contener información sensible, nombres de recursos, outputs y referencias internas.
Definición de política de bloqueo, versionado, cifrado y permisos del backend para evitar escrituras concurrentes o accesos no autorizados.
Preparación de tags, labels y metadatos cloud que GET usará para identificar recursos y que Ansible necesitará para inventario dinámico.
Revisión de cuotas cloud, límites de instancias, discos, IPs, balanceadores, buckets y servicios gestionados antes de lanzar un entorno escalado.
Creación de una checklist previa al `terraform apply` con cuenta, región, coste, state, credenciales, permisos, red, IP, SSH y aprobación.
Tema 5: Provisioning con Terraform: módulos, variables y despliegue inicial
Lectura de la estructura Terraform de GET para entender módulos, entornos, variables, providers, outputs y recursos generados.
Creación de una carpeta de entorno dentro de `terraform/environments` con `variables.tf`, `main.tf` y `environment.tf` adaptados al caso.
Configuración de variables base como prefijo, región, clave SSH pública, IP externa, tipos de instancia, número de nodos y discos.
Uso de módulos de referencia para AWS, GCP o Azure, entendiendo qué recursos cloud se crean y qué queda fuera del alcance.
Ejecución de `terraform init` para inicializar providers, backend y módulos antes de generar infraestructura.
Revisión de `terraform plan` como punto de control obligatorio para detectar costes, errores, recursos inesperados o regiones incorrectas.
Ejecución de `terraform apply` con aprobación controlada, registro de outputs y validación posterior de recursos provisionados.
Interpretación de outputs para conectar Terraform con Ansible, inventario dinámico y documentación del entorno.
Gestión de errores de provisioning: permisos insuficientes, cuotas, nombres duplicados, IP incorrecta, backend mal configurado o red incompleta.
Documentación del despliegue Terraform con commit, plan aprobado, outputs, recursos creados, coste esperado y evidencia de validación.
Tema 6: Inventario dinámico Ansible y configuración base del entorno
Comprensión de cómo GET usa etiquetas, labels o metadatos generados por Terraform para que Ansible identifique cada grupo de nodos.
Creación del inventario dinámico correspondiente al proveedor, ubicándolo dentro de la estructura de entorno de Ansible.
Configuración de `vars.yml` como archivo central para definir versión GitLab, contraseñas, tokens, dominios, TLS, componentes y comportamiento del despliegue.
Validación de que Ansible detecta correctamente nodos Rails, Sidekiq, Gitaly, Praefect, PostgreSQL, Redis, Consul, HAProxy y monitor.
Gestión de claves SSH privadas, usuario remoto, privilegios, conexión, host key checking y acceso desde el nodo de control.
Instalación de colecciones y roles Ansible requeridos para ejecutar los playbooks del Toolkit sin errores de dependencias.
Revisión del orden de configuración de componentes para entender por qué no todos los nodos pueden instalarse en paralelo sin coordinación.
Ejecución de comandos Ansible de comprobación antes de desplegar GitLab, validando ping, facts, grupos, conectividad y privilegios.
Diagnóstico de errores iniciales de inventario: filtros incorrectos, tags ausentes, permisos cloud, clave SSH inválida o nodos no accesibles.
Documentación del inventario con grupos, nodos, roles, IPs, owner, componente GitLab y dependencia operativa.
Tema 7: Configuración Omnibus con Ansible y Linux package
Comprensión de cómo GET configura GitLab Linux package, también conocido como Omnibus, en cada grupo de nodos según su componente.
Instalación y configuración de componentes en el orden adecuado para preparar PostgreSQL, Redis, Consul, Praefect, Gitaly, Rails, Sidekiq y balanceo.
Gestión de variables que controlan versión GitLab, URL externa, secretos, tokens, certificados, almacenamiento y conexión entre componentes.
Revisión de configuraciones generadas en `gitlab.rb` y relación con las plantillas internas del Toolkit.
Ejecución de playbooks principales para instalar, reconfigurar y validar servicios GitLab sobre los nodos provisionados.
Análisis de logs de Ansible y logs de Omnibus para detectar fallos durante instalación, reconfigure, servicios o dependencias.
Validación de estado con `gitlab-ctl status`, checks de salud, endpoints, servicios internos y acceso al frontend.
Comprensión de cuándo un fallo corresponde al Toolkit, al sistema operativo, a red, a DNS, a permisos, a recursos o a GitLab Omnibus.
Revisión de buenas prácticas para no modificar manualmente configuraciones que luego serán sobrescritas por Ansible.
Documentación de la configuración aplicada, variables relevantes, versiones, nodos, cambios manuales prohibidos y procedimiento de rerun.
Tema 8: Componentes GitLab distribuidos: Rails, Sidekiq, Gitaly y Praefect
Revisión del papel de GitLab Rails como capa de aplicación web y API, conectada con base de datos, Redis, Gitaly, Registry y otros servicios.
Comprensión de Sidekiq como sistema de jobs asíncronos que procesa tareas de background críticas para CI/CD, repositorios, notificaciones y mantenimiento.
Análisis de Gitaly como servicio responsable de operaciones Git y de su impacto directo en rendimiento, latencia y experiencia del usuario.
Revisión de Praefect como capa de enrutamiento y coordinación para Gitaly en arquitecturas que requieren distribución o alta disponibilidad Git.
Diseño de separación de nodos según carga esperada, evitando colocar componentes críticos juntos sin motivo operativo.
Identificación de métricas y síntomas de saturación en Rails, Sidekiq, Gitaly, Praefect y almacenamiento asociado.
Revisión de cómo GET configura estos componentes y qué variables permiten ajustar topología, nodos y comportamiento.
Validación de comunicación entre componentes mediante logs, checks de salud, conectividad y pruebas funcionales básicas.
Análisis de errores frecuentes: Gitaly inaccesible, Praefect mal configurado, Sidekiq saturado, Rails sin conexión a Redis o PostgreSQL.
Creación de un mapa de dependencias para que soporte entienda qué componente revisar ante cada síntoma.
Tema 9: PostgreSQL, PgBouncer, Redis y Consul en arquitecturas GitLab
Comprensión del papel de PostgreSQL como base de datos central de GitLab y de por qué su disponibilidad afecta a todo el servicio.
Revisión de PgBouncer como componente de pooling para controlar conexiones, proteger PostgreSQL y mejorar estabilidad bajo carga.
Diferenciación entre Redis cache y Redis persistent cuando la arquitectura separa responsabilidades para rendimiento y resiliencia.
Análisis del papel de Consul en determinadas arquitecturas para coordinación, servicio discovery o soporte de componentes distribuidos.
Revisión de cómo GET provisiona y configura nodos de datos, servicios, variables y conexiones entre componentes.
Identificación de riesgos al usar servicios gestionados cloud para PostgreSQL o Redis frente a nodos administrados por Omnibus.
Validación de conectividad, autenticación, latencia, salud de servicios y métricas básicas de datos.
Preparación de criterios de backup, restauración, retención, pruebas de recuperación y protección de datos para servicios críticos.
Diagnóstico de fallos de conexión, saturación, errores de pooling, problemas de Redis o dependencia de Consul.
Documentación de responsables, endpoints, credenciales, backups, mantenimiento y ventanas de actualización de cada servicio de datos.
Tema 10: Balanceo, HAProxy y entrada al entorno GitLab
Comprensión del papel de los balanceadores externos e internos en arquitecturas GitLab distribuidas.
Revisión de HAProxy como opción incluida por GET para balancear tráfico hacia Rails, Registry, SSH u otros endpoints.
Diferenciación entre balanceadores gestionados cloud, HAProxy desplegado por Toolkit y balanceadores existentes en la empresa.
Configuración de IP externa, DNS, certificados, puertos, health checks y rutas de entrada según arquitectura seleccionada.
Revisión de tráfico HTTP, HTTPS, SSH, Registry, API, Git over HTTPS y Git over SSH para diseñar exposición correcta.
Identificación de riesgos de seguridad al abrir puertos, publicar endpoints internos o mezclar tráfico administrativo y público.
Integración con balanceadores corporativos cuando GET no gestiona directamente el componente o cuando se requiere arquitectura específica.
Validación de health checks y comportamiento ante caída de nodos Rails o componentes de backend.
Diagnóstico de errores de entrada: certificados incorrectos, DNS mal apuntado, firewall, backend unhealthy, timeout o cabeceras incorrectas.
Documentación del flujo de tráfico desde usuario hasta GitLab Rails, incluyendo DNS, IP, balanceador, puertos, TLS y nodos destino.
Tema 11: SSL/TLS, certificados y seguridad de comunicaciones
Diseño de estrategia TLS para GitLab: certificados públicos, internos, wildcard, certificados gestionados, certificados propios o integración con balanceador.
Configuración de certificados dentro de GET mediante archivos personalizados, variables o hooks cuando la arquitectura lo requiere.
Revisión de rutas donde deben copiarse certificados y claves, cuidando permisos, owner, grupo y protección de material sensible.
Comprensión de escenarios con terminación TLS en balanceador frente a terminación directa en nodos GitLab.
Validación de cadena de confianza, SANs, expiración, algoritmo, compatibilidad de cliente y correspondencia con el external URL.
Preparación de renovaciones de certificados sin caída, evitando vencimientos inesperados en servicios críticos.
Protección de claves privadas en repositorios, inventarios, state, logs y carpetas compartidas del nodo de control.
Integración con PKI corporativa o ACME cuando el entorno lo permite y la empresa lo requiere.
Diagnóstico de errores TLS en navegador, Git CLI, runners, Registry, API, webhooks y clientes internos.
Documentación del ciclo de vida de certificados con owner, ubicación, fecha de expiración, procedimiento de renovación y validación.
Tema 12: OpenSearch y Advanced Search en GitLab
Comprensión de Advanced Search como funcionalidad relevante en entornos grandes donde la búsqueda sobre proyectos, issues, merge requests y código debe escalar.
Revisión del soporte de GET para desplegar Advanced Search con OpenSearch como parte de configuraciones avanzadas.
Diseño de nodos OpenSearch según volumen de datos, uso esperado, memoria, disco, IOPS, shards, replicas y criticidad.
Configuración de variables necesarias para habilitar o ajustar integración entre GitLab y OpenSearch.
Validación de indexación, estado del cluster, búsqueda funcional, logs de errores y rendimiento percibido por usuarios.
Identificación de problemas frecuentes: nodos sin memoria, índices incompletos, conectividad, autenticación, latencia o mala configuración de URL.
Revisión de consideraciones de backup y recuperación para datos de índice frente a datos fuente de GitLab.
Preparación de alertas sobre salud de OpenSearch, espacio en disco, estado de shards, latencia y errores de indexación.
Evaluación de cuándo Advanced Search justifica coste y complejidad según tamaño, usuarios y necesidades de búsqueda.
Documentación de arquitectura OpenSearch con nodos, endpoints, configuración, métricas, owners y procedimiento de mantenimiento.
Tema 13: Container Registry y almacenamiento de objetos
Revisión del Container Registry de GitLab como componente crítico cuando los equipos usan CI/CD, imágenes Docker y despliegues Kubernetes.
Configuración de Registry en entornos desplegados con GET, revisando URL, certificados, almacenamiento, autenticación y conectividad.
Diseño de almacenamiento de objetos para Registry, artifacts, LFS, uploads, packages, backups u otros datos GitLab según arquitectura.
Evaluación de servicios cloud como S3, GCS o Blob Storage frente a almacenamiento local, considerando durabilidad, coste y operación.
Revisión de límites de tamaño, retención, limpieza, garbage collection, políticas de lifecycle y crecimiento de imágenes.
Validación de push, pull, login, certificados, permisos y experiencia desde runners o estaciones de desarrollo.
Identificación de riesgos de exponer Registry sin TLS correcto, sin limpieza, con credenciales débiles o sin control de cuotas.
Diagnóstico de problemas frecuentes: 403, 500, certificados no confiables, almacenamiento inaccesible, tokens inválidos o rutas mal configuradas.
Integración de Registry con runners, Kubernetes, pipelines y políticas internas de imágenes.
Documentación del flujo de imágenes desde CI/CD hasta Registry, almacenamiento, limpieza, permisos y recuperación.
Tema 14: Data disks, almacenamiento y rendimiento de nodos críticos
Diseño de discos de datos adicionales para grupos como Gitaly, PostgreSQL, Redis, OpenSearch o nodos con cargas intensivas.
Configuración de discos mediante Terraform según cloud provider y posterior montaje con Ansible desde GET.
Revisión de parámetros cloud como tamaño, tipo de disco, IOPS, snapshots, caching, tier y comportamiento ante destrucción o recreación.
Comprensión de que el Toolkit monta discos mediante UUID para asegurar consistencia tras reinicios, según la documentación avanzada.
Separación de datos, logs, sistema operativo y componentes críticos para mejorar mantenimiento, rendimiento y recuperación.
Evaluación de necesidades de Gitaly, OpenSearch y PostgreSQL, donde latencia e IOPS pueden impactar directamente en usuarios y pipelines.
Configuración de snapshots o políticas de backup de discos cuando encajan con la estrategia de protección de datos.
Validación del montaje, filesystem, permisos, fstab, espacio libre y comportamiento tras reinicio.
Diagnóstico de cuellos de botella de almacenamiento mediante métricas de disco, logs GitLab, tiempos de operación y crecimiento.
Documentación de discos por nodo, finalidad, tamaño, tipo, snapshot, owner, coste, retención y procedimiento de ampliación.
Tema 15: Custom Config, custom tasks y archivos personalizados
Uso de custom config para aplicar configuraciones GitLab no cubiertas directamente por GET, entendiendo que siempre prevalecen sobre plantillas internas.
Revisión del riesgo de custom config: puede romper entornos, generar incompatibilidades o dificultar upgrades si se usa sin control.
Creación de plantillas Jinja2 para `gitlab.rb` en componentes Omnibus concretos, respetando estructura y variables disponibles.
Aplicación de custom config para casos como OmniAuth, email, object storage personalizado o ajustes específicos no gestionados nativamente.
Uso de custom tasks en puntos definidos del despliegue: common, post-Omnibus, Helm, post-configure o uninstall.
Preparación de tareas Ansible personalizadas para instalar agentes, configurar herramientas internas, copiar certificados o integrar controles corporativos.
Uso de custom files para copiar certificados, scripts, configuraciones u otros ficheros a nodos específicos antes de configurar componentes.
Control de versiones y revisión por pares de cualquier custom config, tarea o archivo añadido al Toolkit.
Prueba de personalizaciones en sandbox antes de aplicarlas a entornos críticos, validando re-run, idempotencia y rollback.
Documentación de cada personalización con motivo, owner, componente afectado, riesgo, procedimiento de retirada y prueba de upgrade.
Tema 16: Cloud Native Hybrid con Kubernetes y GitLab Charts
Comprensión de Cloud Native Hybrid como variante donde algunos componentes se ejecutan en Kubernetes mediante GitLab Charts u Operator.
Revisión de que GET soporta variantes Cloud Native Hybrid de Reference Architectures actualmente para AWS y GCP, según la documentación del proyecto.
Diferenciación entre despliegue Omnibus distribuido y despliegue híbrido con componentes en Kubernetes y servicios externos o nodos dedicados.
Preparación de cluster Kubernetes, networking, storage, ingress, certificados y permisos antes de ejecutar la configuración híbrida.
Configuración de GitLab Charts mediante plantillas personalizadas cuando se requieren ajustes no cubiertos por defaults.
Gestión de secretos sincronizados entre Omnibus y Kubernetes cuando la arquitectura lo exige.
Evaluación de la complejidad operativa adicional: Helm, Kubernetes, pods, ingress, secrets, storage classes, logs y actualización de charts.
Revisión de cuándo Cloud Native Hybrid aporta valor y cuándo un despliegue Omnibus distribuido es más simple y operable.
Diagnóstico de errores en híbrido: pods no listos, ingress incorrecto, secrets ausentes, charts mal configurados o comunicación con servicios Omnibus.
Documentación del límite operativo entre GET, Kubernetes, Helm, GitLab Charts, cluster platform y equipo responsable.
Tema 17: Servicios cloud gestionados y componentes externos
Evaluación del uso de servicios gestionados para PostgreSQL, Redis, balanceo, object storage u otros componentes soportados de forma alternativa.
Revisión de la documentación avanzada de GET sobre component cloud services y custom services para reducir operación directa de algunos nodos.
Diseño de arquitectura donde la empresa decide qué opera GET y qué delega en servicios cloud gestionados.
Análisis de ventajas: backups gestionados, HA nativa, escalabilidad, parches, menor administración y posible integración cloud.
Análisis de riesgos: límites del proveedor, costes, compatibilidad, latencia, configuración específica y menor control sobre ciertos parámetros.
Configuración de variables, endpoints, credenciales y dependencias cuando se integra un servicio externo con GitLab.
Validación de conectividad, TLS, rendimiento, failover, permisos y comportamiento ante reinicios o mantenimiento gestionado.
Definición de ownership entre equipo GitLab, equipo cloud, DBA, seguridad y proveedor cuando el componente no lo administra directamente GET.
Preparación de pruebas de recuperación y mantenimiento para servicios externos antes de considerarlos productivos.
Documentación de cada servicio gestionado con SLA, owner, credenciales, configuración, backup, costes y procedimiento de soporte.
Tema 18: Monitorización con Prometheus y salud del entorno
Comprensión del soporte de GET para desplegar monitorización opcional basada en Prometheus dentro del entorno GitLab.
Revisión de métricas clave: disponibilidad, CPU, memoria, disco, latencia, errores, Sidekiq, Gitaly, PostgreSQL, Redis, Praefect y OpenSearch.
Configuración de nodos de monitorización según arquitectura, volumen de métricas, retención, acceso y criticidad.
Validación de targets, scraping, métricas expuestas, dashboards básicos y estado general del stack.
Identificación de alertas imprescindibles: servicios caídos, disco bajo, backups fallidos, PostgreSQL degradado, Redis inaccesible y colas Sidekiq crecientes.
Integración conceptual con plataformas corporativas de observabilidad, SIEM, ITSM o alerting fuera del alcance directo del Toolkit.
Revisión de que GET no pretende cubrir observabilidad completa más allá de Prometheus, por lo que puede requerirse integración adicional.
Diagnóstico de problemas mediante métricas, logs GitLab, logs de Ansible, systemd, `gitlab-ctl` y checks de salud.
Creación de runbooks asociados a alertas frecuentes para que soporte actúe sin improvisar durante incidencias.
Documentación del modelo de monitorización con métricas, targets, owners, retención, alertas y escalado.
Tema 19: Backups, recuperación y consideraciones posteriores al despliegue
Revisión de tareas que deben realizarse tras un despliegue GET, incluyendo backups, seguridad, validaciones y configuración adicional.
Diseño de estrategia de backup para GitLab: base de datos, repositorios, uploads, artifacts, LFS, Registry, paquetes, configuración y secretos.
Validación de backups mediante restauraciones de prueba, evitando asumir que un job correcto implica recuperación garantizada.
Protección de secretos GitLab y claves internas, especialmente cuando se distribuyen entre nodos o se aportan mediante custom secrets.
Preparación de almacenamiento externo para backups con cifrado, retención, acceso controlado y pruebas de recuperación.
Revisión de RPO y RTO según criticidad de GitLab para desarrollo, CI/CD, despliegues y continuidad de negocio.
Documentación de procedimiento de restauración, responsables, orden de recuperación, dependencias y validaciones posteriores.
Ejecución de pruebas de recuperación en sandbox para conocer tiempos reales, obstáculos y riesgos.
Análisis de dependencias externas que también deben recuperarse: object storage, bases gestionadas, Registry, DNS, TLS y runners.
Creación de un checklist post-despliegue con seguridad, backups, monitorización, soporte, usuarios, licencias, DNS, TLS y documentación.
Tema 20: Upgrades de GitLab y del Toolkit
Diferenciación entre actualizar GitLab, actualizar GET, actualizar dependencias Terraform/Ansible y actualizar infraestructura subyacente.
Revisión de la documentación de upgrades para planificar cambios con control, pruebas previas y conocimiento de versiones soportadas.
Preparación de entorno de ensayo para validar upgrade antes de tocar producción, especialmente en arquitecturas distribuidas o con custom config.
Análisis de rutas de actualización GitLab, versiones intermedias, notas de release, breaking changes y requisitos de PostgreSQL u otros componentes.
Uso de playbooks y procesos GET para aplicar upgrades de entorno de forma ordenada.
Revisión de zero downtime upgrades cuando la arquitectura, versión y procedimiento lo permiten, sin asumir disponibilidad absoluta.
Validación post-upgrade de frontend, Git, CI/CD, Registry, Sidekiq, Gitaly, búsqueda, integraciones, webhooks y usuarios.
Preparación de rollback o plan de contingencia realista, teniendo en cuenta datos, migraciones, backups y límites de downgrade.
Documentación de cada upgrade con versión origen, versión destino, pasos, incidencias, tiempos, validaciones y owner.
Creación de una política de actualización periódica que reduzca deuda técnica, versiones fuera de soporte y upgrades demasiado grandes.
Tema 21: Geo con GitLab Environment Toolkit
Comprensión de GitLab Geo como estrategia para replicación geográfica, recuperación ante desastres o mejora de acceso en regiones distribuidas.
Revisión del soporte documental de GET para provisionar, configurar y operar escenarios Geo.
Diseño de un entorno primario y secundario con red, DNS, almacenamiento, replicación, base de datos, object storage y certificados adecuados.
Evaluación de cuándo Geo responde a necesidades reales de resiliencia o latencia y cuándo añade complejidad innecesaria.
Configuración de variables y playbooks específicos para provisionar y configurar componentes Geo.
Validación de replicación de repositorios, datos relevantes, estado de nodos y experiencia de usuarios en sitios secundarios.
Revisión de procedimientos de failover, failback, mantenimiento y pruebas periódicas de recuperación.
Monitorización de lag, errores de sincronización, estado de nodos, almacenamiento y disponibilidad de endpoints.
Diagnóstico de problemas frecuentes: conectividad entre sitios, credenciales, object storage, latencia, DNS o datos no sincronizados.
Documentación del modelo Geo con RPO, RTO, responsables, pruebas, limitaciones, costes y procedimiento de activación.
Tema 22: Seguridad operativa, hardening y control de acceso
Revisión de seguridad cloud: IAM, grupos de seguridad, firewall, SSH, redes, subredes, balanceadores, buckets y credenciales de despliegue.
Aplicación de mínimo privilegio en cuentas cloud, usuarios del nodo de control, claves SSH, service accounts y acceso a state remoto.
Protección de secretos en Terraform state, inventarios Ansible, `vars.yml`, logs, repositorios, pipelines y almacenamiento compartido.
Revisión de superficie expuesta: puertos HTTP, HTTPS, SSH, Registry, Prometheus, administración interna y endpoints no destinados a usuarios.
Integración con controles corporativos como bastion hosts, VPN, segmentación, SIEM, EDR, hardening Linux y gestión de vulnerabilidades.
Validación de TLS, certificados, cabeceras, acceso administrativo y reglas de red antes de abrir el entorno a usuarios.
Gestión de actualizaciones del sistema operativo y paquetes, coordinada con upgrades GitLab y mantenimiento del entorno.
Revisión de custom config con enfoque de riesgo, especialmente cuando afecta autenticación, email, object storage, KAS, OmniAuth o seguridad.
Preparación de auditoría de cambios sobre configuración GET, Terraform, Ansible, cloud y GitLab.
Creación de una matriz de riesgos y controles para entornos GitLab Self-Managed gestionados con GET.
Tema 23: Troubleshooting avanzado de despliegues GET
Diagnóstico de errores de Terraform relacionados con providers, permisos, state, locks, quotas, redes, discos, IPs o nombres duplicados.
Investigación de fallos Ansible por inventario, SSH, privilegios, dependencias, variables, templates, roles o tareas no idempotentes.
Revisión de errores Omnibus durante `gitlab-ctl reconfigure`, servicios systemd, conectividad interna o configuración inválida.
Interpretación de logs de GitLab, Rails, Sidekiq, Gitaly, Praefect, PostgreSQL, Redis, HAProxy y OpenSearch.
Separación entre problemas del Toolkit, problemas de infraestructura cloud, errores de GitLab y fallos derivados de personalizaciones.
Uso de reruns controlados de Ansible, limitación por grupos, tags, checks y validaciones para no repetir acciones innecesarias.
Recuperación ante despliegues parciales donde Terraform creó infraestructura, pero Ansible no completó configuración.
Gestión de drift entre estado Terraform, recursos cloud reales, inventario Ansible y configuración manual aplicada fuera del Toolkit.
Documentación de incidencias con comandos, logs, entorno, versión GET, versión GitLab, proveedor cloud, cambios recientes y salida relevante.
Creación de una guía interna de troubleshooting con síntomas, causas probables, evidencias, resolución y escalado.
Tema 24: Integración de GET en CI/CD e Infrastructure as Code corporativa
Diseño de repositorio IaC para GET con ramas, entornos, revisiones, pull requests, aprobaciones, changelog y control de versiones.
Separación de configuraciones por entorno: laboratorio, desarrollo, preproducción, producción y recuperación ante desastres.
Automatización parcial de validaciones Terraform, linting, análisis de configuración, revisión de secretos y comprobaciones previas.
Evaluación de cuándo ejecutar `terraform plan` en pipeline y cuándo reservar `apply` para ejecución manual aprobada.
Gestión segura de credenciales cloud y claves SSH en CI/CD, evitando exponer secretos en logs o variables no protegidas.
Preparación de artefactos de despliegue: plan aprobado, logs, inventario, outputs, versiones de herramientas y evidencias.
Integración de controles de seguridad antes de cambios en redes, IAM, buckets, discos, certificados o exposición pública.
Diseño de flujos de promoción de cambios entre entornos, evitando aplicar directamente en producción configuraciones no ensayadas.
Gestión de drift detection para detectar cambios cloud manuales que ya no coinciden con Terraform.
Documentación del modelo CI/CD de GET con responsables, aprobaciones, credenciales, entornos, rollback y auditoría.
Tema 25: Costes, capacidad y FinOps en entornos GitLab escalados
Estimación de costes de instancias, discos, IOPS, balanceadores, object storage, OpenSearch, backups, snapshots, tráfico y servicios gestionados.
Revisión de cómo las Reference Architectures pueden implicar costes relevantes, especialmente en entornos 10k, 25k o 50k.
Preparación de presupuestos cloud, alertas de consumo, tags obligatorios y reporting por entorno, componente y centro de coste.
Identificación de componentes más costosos: Gitaly, PostgreSQL, OpenSearch, nodos Rails, Sidekiq, discos SSD, snapshots y transferencia de datos.
Evaluación de trade-offs entre alta disponibilidad, rendimiento, simplicidad operativa y coste mensual.
Medición de uso real frente a dimensionamiento inicial para ajustar nodos, discos, almacenamiento y retención.
Revisión de costes ocultos: logs, métricas, backups, entornos duplicados, pruebas escaladas y recursos no destruidos tras laboratorios.
Preparación de políticas para apagar, destruir o reducir entornos no productivos cuando no se usan.
Creación de informes FinOps que expliquen coste por usuario, coste por componente, crecimiento y oportunidades de optimización.
Documentación de supuestos de capacidad, límites, alertas y criterios para escalar o redimensionar.
Tema 26: Migración desde instalaciones manuales a entornos gobernados con GET
Inventario de la instalación GitLab actual: versión, componentes, datos, almacenamiento, integraciones, runners, certificados, backups y custom config.
Evaluación de si conviene migrar hacia una arquitectura nueva desplegada con GET o adaptar parcialmente la instalación existente.
Identificación de diferencias entre configuración manual y configuración gestionada por Toolkit, evitando trasladar deuda técnica sin revisión.
Preparación de backups completos y restauraciones de prueba antes de cualquier migración o rediseño.
Diseño de transición con ventana, congelación de cambios, DNS, certificados, validaciones, usuarios piloto y plan de vuelta atrás.
Revisión de compatibilidad de versiones GitLab, PostgreSQL, object storage, Registry, runners y componentes externos.
Migración de datos, repositorios, artifacts, Registry, configuración y secretos con procedimientos documentados.
Validación posterior de proyectos, usuarios, grupos, CI/CD, runners, webhooks, paquetes, búsqueda, Registry y permisos.
Comunicación a usuarios, responsables de desarrollo, seguridad, negocio y soporte sobre cambios, ventanas y riesgos.
Documentación final de la nueva arquitectura GET como fuente oficial de operación y mantenimiento.
Tema 27: Soporte, Statement of Support y relación con GitLab
Comprensión de que el soporte técnico de GET se limita al major version actual y debe canalizarse según los canales de soporte indicados por GitLab.
Revisión de qué incidencias corresponden a Toolkit, GitLab Self-Managed, cloud provider, sistema operativo, custom config o infraestructura corporativa.
Preparación de información útil para soporte: versión GET, versión GitLab, cloud, arquitectura, logs, comandos, cambios recientes y configuración relevante.
Identificación de cambios personalizados que pueden quedar fuera de soporte o complicar diagnóstico por introducir comportamiento no estándar.
Gestión de issues del Toolkit cuando el problema afecta al código del proyecto y no a una personalización local.
Documentación de acuerdos internos sobre quién contacta con soporte, quién ejecuta cambios y quién valida recomendaciones.
Revisión del impacto de usar versiones antiguas de Toolkit, versiones GitLab no soportadas o sistemas operativos deprecados.
Preparación de una matriz de escalado interna antes de abrir caso externo, evitando enviar problemas sin diagnóstico básico.
Control de evidencias y datos sensibles antes de compartir logs, inventarios o configuraciones con soporte externo.
Creación de un procedimiento de soporte que reduzca tiempos de resolución y mejore calidad de información enviada.
Tema 28: Gobierno operativo de GitLab desplegado con GET
Creación de un inventario vivo de componentes GitLab, nodos, roles, IPs, versiones, discos, certificados, owners y criticidad.
Definición de rutinas de revisión: salud diaria, backups, certificados, uso de disco, colas Sidekiq, errores, upgrades y capacidad.
Establecimiento de ventanas de mantenimiento, comunicación, aprobación de cambios y validación post-mantenimiento.
Diseño de runbooks para fallos habituales: nodo caído, Gitaly lento, PostgreSQL degradado, certificado vencido, Registry inaccesible o backup fallido.
Mantenimiento de documentación de arquitectura, Terraform, Ansible, red, TLS, custom config, monitorización, backups y recuperación.
Revisión periódica de accesos al nodo de control, state remoto, clouds, GitLab admin, Prometheus y recursos críticos.
Gestión de deuda técnica: versiones antiguas, componentes sin owner, customizaciones no documentadas o entornos que ya no se usan.
Medición de madurez operativa mediante disponibilidad, incidencias, tiempo de recuperación, éxito de backups, upgrade cadence y drift.
Preparación de comités de revisión con infraestructura, DevOps, seguridad, desarrollo, compliance y dirección técnica.
Conversión de GET en parte de un sistema operativo de plataforma, no en un repositorio que solo se usa durante el despliegue inicial.
Tema 29: Proyecto final integrador: despliegue gobernado de GitLab con GET
Definición de un caso empresarial con número de usuarios, carga esperada, cloud, criticidad, presupuesto, requisitos de seguridad y necesidades de disponibilidad.
Selección de Reference Architecture adecuada, justificando componentes, nodos, balanceadores, almacenamiento, Redis, PostgreSQL, Gitaly y monitorización.
Preparación del proveedor cloud o entorno sandbox con red, SSH, backend Terraform, permisos, IP externa, tags y presupuesto controlado.
Creación de configuración Terraform con variables, backend, módulo de arquitectura, outputs y convenciones de naming.
Provisioning de infraestructura mediante `terraform init`, revisión de plan, ejecución controlada de apply y documentación de recursos creados.
Configuración de inventario dinámico Ansible, `vars.yml`, claves, versión GitLab, dominios, secretos, certificados y componentes requeridos.
Ejecución de playbooks GET para configurar GitLab, validar servicios, revisar logs, comprobar frontend y probar operaciones básicas.
Incorporación de una configuración avanzada: OpenSearch, Registry, SSL/TLS, data disks, custom task, custom config o monitorización.
Diseño de plan operativo con backups, upgrades, alertas, runbooks, soporte, costes, seguridad y procedimiento de cambios.
Presentación final con arquitectura, decisiones, evidencias, riesgos, límites de GET, responsabilidades del usuario y plan de mejora continua.
Una plataforma practica, con IA integrada y pensada para que mejores desarrollando. Se adapta a tu ritmo, te corrige al instante y te muestra tu progreso real.
Correccion magica
Feedback inteligente
Aprende de cada acierto y fallo con explicaciones claras
Comprensión de GET como Toolkit opinado basado en Terraform y Ansible para desplegar entornos GitLab escalados siguiendo Reference Architectures oficiales.
Diferenciación entre instalar GitLab Omnibus en un único servidor y desplegar una arquitectura distribuida con componentes separados y responsabilidades claras.
Identificación de los problemas que GET ayuda a resolver: repetibilidad, configuración coherente, aprovisionamiento cloud, orden de instalación y alineación con arquitecturas de referencia.
Revisión de los límites del Toolkit: no sustituye diseño de infraestructura, gobierno operativo, backups validados, seguridad, costes, soporte ni conocimiento experto de GitLab.
Análisis del modelo de responsabilidad compartida descrito por la documentación, donde el Toolkit configura buenas prácticas, pero el entorno sigue siendo responsabilidad del usuario.
Reconocimiento de las áreas que GET cubre: Terraform, Ansible, cloud providers, Omnibus, Cloud Native Hybrid, Geo, OpenSearch, Registry, SSL/TLS y monitorización.
Identificación de áreas que GET no pretende cubrir por completo, como gestión de cuentas cloud, DNS server management, observabilidad más allá de Prometheus o configuración directa de email y OmniAuth.
Evaluación de cuándo GET es adecuado frente a GitLab SaaS, GitLab Dedicated, instalación manual, Helm chart independiente o servicios profesionales.
Definición de roles internos para un proyecto GET: owner GitLab, cloud engineer, administrador Linux, seguridad, redes, storage, DBA y responsable de cambios.
Creación de una visión de adopción por fases: laboratorio, despliegue controlado, validación, hardening, migración, operación y mejora continua.
Comprensión de GET como Toolkit opinado basado en Terraform y Ansible para desplegar entornos GitLab escalados siguiendo Reference Architectures oficiales.
Diferenciación entre instalar GitLab Omnibus en un único servidor y desplegar una arquitectura distribuida con componentes separados y responsabilidades claras.
Identificación de los problemas que GET ayuda a resolver: repetibilidad, configuración coherente, aprovisionamiento cloud, orden de instalación y alineación con arquitecturas de referencia.
Revisión de los límites del Toolkit: no sustituye diseño de infraestructura, gobierno operativo, backups validados, seguridad, costes, soporte ni conocimiento experto de GitLab.
Análisis del modelo de responsabilidad compartida descrito por la documentación, donde el Toolkit configura buenas prácticas, pero el entorno sigue siendo responsabilidad del usuario.
Reconocimiento de las áreas que GET cubre: Terraform, Ansible, cloud providers, Omnibus, Cloud Native Hybrid, Geo, OpenSearch, Registry, SSL/TLS y monitorización.
Identificación de áreas que GET no pretende cubrir por completo, como gestión de cuentas cloud, DNS server management, observabilidad más allá de Prometheus o configuración directa de email y OmniAuth.
Evaluación de cuándo GET es adecuado frente a GitLab SaaS, GitLab Dedicated, instalación manual, Helm chart independiente o servicios profesionales.
Definición de roles internos para un proyecto GET: owner GitLab, cloud engineer, administrador Linux, seguridad, redes, storage, DBA y responsable de cambios.
Creación de una visión de adopción por fases: laboratorio, despliegue controlado, validación, hardening, migración, operación y mejora continua.
Tema 1: GitLab Environment Toolkit dentro de la operación GitLab empresarial
Comprensión de GET como Toolkit opinado basado en Terraform y Ansible para desplegar entornos GitLab escalados siguiendo Reference Architectures oficiales.
Diferenciación entre instalar GitLab Omnibus en un único servidor y desplegar una arquitectura distribuida con componentes separados y responsabilidades claras.
Identificación de los problemas que GET ayuda a resolver: repetibilidad, configuración coherente, aprovisionamiento cloud, orden de instalación y alineación con arquitecturas de referencia.
Revisión de los límites del Toolkit: no sustituye diseño de infraestructura, gobierno operativo, backups validados, seguridad, costes, soporte ni conocimiento experto de GitLab.
Análisis del modelo de responsabilidad compartida descrito por la documentación, donde el Toolkit configura buenas prácticas, pero el entorno sigue siendo responsabilidad del usuario.
Reconocimiento de las áreas que GET cubre: Terraform, Ansible, cloud providers, Omnibus, Cloud Native Hybrid, Geo, OpenSearch, Registry, SSL/TLS y monitorización.
Identificación de áreas que GET no pretende cubrir por completo, como gestión de cuentas cloud, DNS server management, observabilidad más allá de Prometheus o configuración directa de email y OmniAuth.
Evaluación de cuándo GET es adecuado frente a GitLab SaaS, GitLab Dedicated, instalación manual, Helm chart independiente o servicios profesionales.
Definición de roles internos para un proyecto GET: owner GitLab, cloud engineer, administrador Linux, seguridad, redes, storage, DBA y responsable de cambios.
Creación de una visión de adopción por fases: laboratorio, despliegue controlado, validación, hardening, migración, operación y mejora continua.
Tema 2: Arquitecturas de referencia GitLab y dimensionamiento inicial
Interpretación de las GitLab Reference Architectures como punto de partida para definir tamaño, distribución de componentes, capacidad y resiliencia.
Revisión de los tamaños soportados por GET, desde entornos 1k hasta 50k usuarios, y de cómo el Toolkit permite desplegarlos dinámicamente.
Análisis de componentes críticos: GitLab Rails, Sidekiq, PostgreSQL, Redis, Gitaly, Praefect, Consul, HAProxy, OpenSearch y monitorización.
Diferenciación entre usuarios, carga real, repositorios, pipelines, runners, CI minutes, paquetes, Registry y patrones de uso que afectan al dimensionamiento.
Evaluación de cuándo usar arquitectura monolítica, distribuida, altamente disponible o Cloud Native Hybrid según criticidad y escala.
Identificación de riesgos de sobredimensionar por copia de ejemplos o infradimensionar por ignorar tráfico CI/CD, almacenamiento Git y Sidekiq.
Diseño de criterios para elegir instancia, discos, IOPS, red, balanceo, almacenamiento de objetos y servicios gestionados.
Revisión de dependencias entre Gitaly, Praefect y almacenamiento para entornos con repositorios grandes o alta concurrencia.
Creación de una matriz de dimensionamiento inicial con usuarios, repositorios, CI/CD, storage, disponibilidad, cloud y presupuesto.
Preparación de una recomendación ejecutiva que explique tamaño, costes aproximados, riesgos y siguientes validaciones técnicas.
Tema 3: Preparación del nodo de control y herramientas base
Configuración del nodo de control desde el que se ejecutarán Terraform y Ansible, separándolo de nodos target y de estaciones personales no gobernadas.
Instalación y validación de Terraform, Ansible, Python, Git, OpenSSH, cliente cloud, herramientas de shell y dependencias requeridas por GET.
Uso de versiones compatibles con los requisitos actuales del Toolkit, incluyendo Terraform 1.13.0+, Ansible 13.0, ansible-core 2.20 y Python 3.12+.
Preparación de entornos virtuales Python para aislar dependencias Ansible y reducir conflictos con paquetes del sistema operativo.
Organización local del repositorio GET, claves SSH, carpetas de entorno, documentación, configuraciones Terraform y configuraciones Ansible.
Definición de convenciones de naming para carpetas de entorno, prefijos, regiones, nodos, discos, balanceadores, buckets y estados.
Configuración de acceso seguro a clouds o infraestructura on-premise mediante perfiles, variables de entorno, credenciales temporales o mecanismos corporativos.
Validación de conectividad SSH hacia nodos target o instancias provisionadas antes de ejecutar playbooks complejos.
Preparación de controles locales para evitar ejecutar comandos contra el entorno equivocado, región incorrecta o credenciales productivas.
Documentación del nodo de control con versiones, rutas, credenciales admitidas, owners, procedimientos de actualización y normas de uso.
Tema 4: Preparación del proveedor cloud, red y estado Terraform
Selección del proveedor soportado según escenario: AWS, GCP, Azure para Omnibus, o Ansible sobre servidores existentes en on-premise.
Preparación de autenticación cloud para que Terraform pueda crear recursos y Ansible pueda acceder a las instancias resultantes.
Diseño de red base con VPC o VNet, subredes, rutas, gateways, grupos de seguridad, reglas de firewall y separación por función.
Reserva de IP externa o mecanismo equivalente para el endpoint principal, revisando el impacto sobre DNS, TLS y balanceadores.
Configuración de backend remoto para Terraform state, evitando estados locales perdidos, divergentes o compartidos por correo.
Protección del state remoto, recordando que puede contener información sensible, nombres de recursos, outputs y referencias internas.
Definición de política de bloqueo, versionado, cifrado y permisos del backend para evitar escrituras concurrentes o accesos no autorizados.
Preparación de tags, labels y metadatos cloud que GET usará para identificar recursos y que Ansible necesitará para inventario dinámico.
Revisión de cuotas cloud, límites de instancias, discos, IPs, balanceadores, buckets y servicios gestionados antes de lanzar un entorno escalado.
Creación de una checklist previa al `terraform apply` con cuenta, región, coste, state, credenciales, permisos, red, IP, SSH y aprobación.
Tema 5: Provisioning con Terraform: módulos, variables y despliegue inicial
Lectura de la estructura Terraform de GET para entender módulos, entornos, variables, providers, outputs y recursos generados.
Creación de una carpeta de entorno dentro de `terraform/environments` con `variables.tf`, `main.tf` y `environment.tf` adaptados al caso.
Configuración de variables base como prefijo, región, clave SSH pública, IP externa, tipos de instancia, número de nodos y discos.
Uso de módulos de referencia para AWS, GCP o Azure, entendiendo qué recursos cloud se crean y qué queda fuera del alcance.
Ejecución de `terraform init` para inicializar providers, backend y módulos antes de generar infraestructura.
Revisión de `terraform plan` como punto de control obligatorio para detectar costes, errores, recursos inesperados o regiones incorrectas.
Ejecución de `terraform apply` con aprobación controlada, registro de outputs y validación posterior de recursos provisionados.
Interpretación de outputs para conectar Terraform con Ansible, inventario dinámico y documentación del entorno.
Gestión de errores de provisioning: permisos insuficientes, cuotas, nombres duplicados, IP incorrecta, backend mal configurado o red incompleta.
Documentación del despliegue Terraform con commit, plan aprobado, outputs, recursos creados, coste esperado y evidencia de validación.
Tema 6: Inventario dinámico Ansible y configuración base del entorno
Comprensión de cómo GET usa etiquetas, labels o metadatos generados por Terraform para que Ansible identifique cada grupo de nodos.
Creación del inventario dinámico correspondiente al proveedor, ubicándolo dentro de la estructura de entorno de Ansible.
Configuración de `vars.yml` como archivo central para definir versión GitLab, contraseñas, tokens, dominios, TLS, componentes y comportamiento del despliegue.
Validación de que Ansible detecta correctamente nodos Rails, Sidekiq, Gitaly, Praefect, PostgreSQL, Redis, Consul, HAProxy y monitor.
Gestión de claves SSH privadas, usuario remoto, privilegios, conexión, host key checking y acceso desde el nodo de control.
Instalación de colecciones y roles Ansible requeridos para ejecutar los playbooks del Toolkit sin errores de dependencias.
Revisión del orden de configuración de componentes para entender por qué no todos los nodos pueden instalarse en paralelo sin coordinación.
Ejecución de comandos Ansible de comprobación antes de desplegar GitLab, validando ping, facts, grupos, conectividad y privilegios.
Diagnóstico de errores iniciales de inventario: filtros incorrectos, tags ausentes, permisos cloud, clave SSH inválida o nodos no accesibles.
Documentación del inventario con grupos, nodos, roles, IPs, owner, componente GitLab y dependencia operativa.
Tema 7: Configuración Omnibus con Ansible y Linux package
Comprensión de cómo GET configura GitLab Linux package, también conocido como Omnibus, en cada grupo de nodos según su componente.
Instalación y configuración de componentes en el orden adecuado para preparar PostgreSQL, Redis, Consul, Praefect, Gitaly, Rails, Sidekiq y balanceo.
Gestión de variables que controlan versión GitLab, URL externa, secretos, tokens, certificados, almacenamiento y conexión entre componentes.
Revisión de configuraciones generadas en `gitlab.rb` y relación con las plantillas internas del Toolkit.
Ejecución de playbooks principales para instalar, reconfigurar y validar servicios GitLab sobre los nodos provisionados.
Análisis de logs de Ansible y logs de Omnibus para detectar fallos durante instalación, reconfigure, servicios o dependencias.
Validación de estado con `gitlab-ctl status`, checks de salud, endpoints, servicios internos y acceso al frontend.
Comprensión de cuándo un fallo corresponde al Toolkit, al sistema operativo, a red, a DNS, a permisos, a recursos o a GitLab Omnibus.
Revisión de buenas prácticas para no modificar manualmente configuraciones que luego serán sobrescritas por Ansible.
Documentación de la configuración aplicada, variables relevantes, versiones, nodos, cambios manuales prohibidos y procedimiento de rerun.
Tema 8: Componentes GitLab distribuidos: Rails, Sidekiq, Gitaly y Praefect
Revisión del papel de GitLab Rails como capa de aplicación web y API, conectada con base de datos, Redis, Gitaly, Registry y otros servicios.
Comprensión de Sidekiq como sistema de jobs asíncronos que procesa tareas de background críticas para CI/CD, repositorios, notificaciones y mantenimiento.
Análisis de Gitaly como servicio responsable de operaciones Git y de su impacto directo en rendimiento, latencia y experiencia del usuario.
Revisión de Praefect como capa de enrutamiento y coordinación para Gitaly en arquitecturas que requieren distribución o alta disponibilidad Git.
Diseño de separación de nodos según carga esperada, evitando colocar componentes críticos juntos sin motivo operativo.
Identificación de métricas y síntomas de saturación en Rails, Sidekiq, Gitaly, Praefect y almacenamiento asociado.
Revisión de cómo GET configura estos componentes y qué variables permiten ajustar topología, nodos y comportamiento.
Validación de comunicación entre componentes mediante logs, checks de salud, conectividad y pruebas funcionales básicas.
Análisis de errores frecuentes: Gitaly inaccesible, Praefect mal configurado, Sidekiq saturado, Rails sin conexión a Redis o PostgreSQL.
Creación de un mapa de dependencias para que soporte entienda qué componente revisar ante cada síntoma.
Tema 9: PostgreSQL, PgBouncer, Redis y Consul en arquitecturas GitLab
Comprensión del papel de PostgreSQL como base de datos central de GitLab y de por qué su disponibilidad afecta a todo el servicio.
Revisión de PgBouncer como componente de pooling para controlar conexiones, proteger PostgreSQL y mejorar estabilidad bajo carga.
Diferenciación entre Redis cache y Redis persistent cuando la arquitectura separa responsabilidades para rendimiento y resiliencia.
Análisis del papel de Consul en determinadas arquitecturas para coordinación, servicio discovery o soporte de componentes distribuidos.
Revisión de cómo GET provisiona y configura nodos de datos, servicios, variables y conexiones entre componentes.
Identificación de riesgos al usar servicios gestionados cloud para PostgreSQL o Redis frente a nodos administrados por Omnibus.
Validación de conectividad, autenticación, latencia, salud de servicios y métricas básicas de datos.
Preparación de criterios de backup, restauración, retención, pruebas de recuperación y protección de datos para servicios críticos.
Diagnóstico de fallos de conexión, saturación, errores de pooling, problemas de Redis o dependencia de Consul.
Documentación de responsables, endpoints, credenciales, backups, mantenimiento y ventanas de actualización de cada servicio de datos.
Tema 10: Balanceo, HAProxy y entrada al entorno GitLab
Comprensión del papel de los balanceadores externos e internos en arquitecturas GitLab distribuidas.
Revisión de HAProxy como opción incluida por GET para balancear tráfico hacia Rails, Registry, SSH u otros endpoints.
Diferenciación entre balanceadores gestionados cloud, HAProxy desplegado por Toolkit y balanceadores existentes en la empresa.
Configuración de IP externa, DNS, certificados, puertos, health checks y rutas de entrada según arquitectura seleccionada.
Revisión de tráfico HTTP, HTTPS, SSH, Registry, API, Git over HTTPS y Git over SSH para diseñar exposición correcta.
Identificación de riesgos de seguridad al abrir puertos, publicar endpoints internos o mezclar tráfico administrativo y público.
Integración con balanceadores corporativos cuando GET no gestiona directamente el componente o cuando se requiere arquitectura específica.
Validación de health checks y comportamiento ante caída de nodos Rails o componentes de backend.
Diagnóstico de errores de entrada: certificados incorrectos, DNS mal apuntado, firewall, backend unhealthy, timeout o cabeceras incorrectas.
Documentación del flujo de tráfico desde usuario hasta GitLab Rails, incluyendo DNS, IP, balanceador, puertos, TLS y nodos destino.
Tema 11: SSL/TLS, certificados y seguridad de comunicaciones
Diseño de estrategia TLS para GitLab: certificados públicos, internos, wildcard, certificados gestionados, certificados propios o integración con balanceador.
Configuración de certificados dentro de GET mediante archivos personalizados, variables o hooks cuando la arquitectura lo requiere.
Revisión de rutas donde deben copiarse certificados y claves, cuidando permisos, owner, grupo y protección de material sensible.
Comprensión de escenarios con terminación TLS en balanceador frente a terminación directa en nodos GitLab.
Validación de cadena de confianza, SANs, expiración, algoritmo, compatibilidad de cliente y correspondencia con el external URL.
Preparación de renovaciones de certificados sin caída, evitando vencimientos inesperados en servicios críticos.
Protección de claves privadas en repositorios, inventarios, state, logs y carpetas compartidas del nodo de control.
Integración con PKI corporativa o ACME cuando el entorno lo permite y la empresa lo requiere.
Diagnóstico de errores TLS en navegador, Git CLI, runners, Registry, API, webhooks y clientes internos.
Documentación del ciclo de vida de certificados con owner, ubicación, fecha de expiración, procedimiento de renovación y validación.
Tema 12: OpenSearch y Advanced Search en GitLab
Comprensión de Advanced Search como funcionalidad relevante en entornos grandes donde la búsqueda sobre proyectos, issues, merge requests y código debe escalar.
Revisión del soporte de GET para desplegar Advanced Search con OpenSearch como parte de configuraciones avanzadas.
Diseño de nodos OpenSearch según volumen de datos, uso esperado, memoria, disco, IOPS, shards, replicas y criticidad.
Configuración de variables necesarias para habilitar o ajustar integración entre GitLab y OpenSearch.
Validación de indexación, estado del cluster, búsqueda funcional, logs de errores y rendimiento percibido por usuarios.
Identificación de problemas frecuentes: nodos sin memoria, índices incompletos, conectividad, autenticación, latencia o mala configuración de URL.
Revisión de consideraciones de backup y recuperación para datos de índice frente a datos fuente de GitLab.
Preparación de alertas sobre salud de OpenSearch, espacio en disco, estado de shards, latencia y errores de indexación.
Evaluación de cuándo Advanced Search justifica coste y complejidad según tamaño, usuarios y necesidades de búsqueda.
Documentación de arquitectura OpenSearch con nodos, endpoints, configuración, métricas, owners y procedimiento de mantenimiento.
Tema 13: Container Registry y almacenamiento de objetos
Revisión del Container Registry de GitLab como componente crítico cuando los equipos usan CI/CD, imágenes Docker y despliegues Kubernetes.
Configuración de Registry en entornos desplegados con GET, revisando URL, certificados, almacenamiento, autenticación y conectividad.
Diseño de almacenamiento de objetos para Registry, artifacts, LFS, uploads, packages, backups u otros datos GitLab según arquitectura.
Evaluación de servicios cloud como S3, GCS o Blob Storage frente a almacenamiento local, considerando durabilidad, coste y operación.
Revisión de límites de tamaño, retención, limpieza, garbage collection, políticas de lifecycle y crecimiento de imágenes.
Validación de push, pull, login, certificados, permisos y experiencia desde runners o estaciones de desarrollo.
Identificación de riesgos de exponer Registry sin TLS correcto, sin limpieza, con credenciales débiles o sin control de cuotas.
Diagnóstico de problemas frecuentes: 403, 500, certificados no confiables, almacenamiento inaccesible, tokens inválidos o rutas mal configuradas.
Integración de Registry con runners, Kubernetes, pipelines y políticas internas de imágenes.
Documentación del flujo de imágenes desde CI/CD hasta Registry, almacenamiento, limpieza, permisos y recuperación.
Tema 14: Data disks, almacenamiento y rendimiento de nodos críticos
Diseño de discos de datos adicionales para grupos como Gitaly, PostgreSQL, Redis, OpenSearch o nodos con cargas intensivas.
Configuración de discos mediante Terraform según cloud provider y posterior montaje con Ansible desde GET.
Revisión de parámetros cloud como tamaño, tipo de disco, IOPS, snapshots, caching, tier y comportamiento ante destrucción o recreación.
Comprensión de que el Toolkit monta discos mediante UUID para asegurar consistencia tras reinicios, según la documentación avanzada.
Separación de datos, logs, sistema operativo y componentes críticos para mejorar mantenimiento, rendimiento y recuperación.
Evaluación de necesidades de Gitaly, OpenSearch y PostgreSQL, donde latencia e IOPS pueden impactar directamente en usuarios y pipelines.
Configuración de snapshots o políticas de backup de discos cuando encajan con la estrategia de protección de datos.
Validación del montaje, filesystem, permisos, fstab, espacio libre y comportamiento tras reinicio.
Diagnóstico de cuellos de botella de almacenamiento mediante métricas de disco, logs GitLab, tiempos de operación y crecimiento.
Documentación de discos por nodo, finalidad, tamaño, tipo, snapshot, owner, coste, retención y procedimiento de ampliación.
Tema 15: Custom Config, custom tasks y archivos personalizados
Uso de custom config para aplicar configuraciones GitLab no cubiertas directamente por GET, entendiendo que siempre prevalecen sobre plantillas internas.
Revisión del riesgo de custom config: puede romper entornos, generar incompatibilidades o dificultar upgrades si se usa sin control.
Creación de plantillas Jinja2 para `gitlab.rb` en componentes Omnibus concretos, respetando estructura y variables disponibles.
Aplicación de custom config para casos como OmniAuth, email, object storage personalizado o ajustes específicos no gestionados nativamente.
Uso de custom tasks en puntos definidos del despliegue: common, post-Omnibus, Helm, post-configure o uninstall.
Preparación de tareas Ansible personalizadas para instalar agentes, configurar herramientas internas, copiar certificados o integrar controles corporativos.
Uso de custom files para copiar certificados, scripts, configuraciones u otros ficheros a nodos específicos antes de configurar componentes.
Control de versiones y revisión por pares de cualquier custom config, tarea o archivo añadido al Toolkit.
Prueba de personalizaciones en sandbox antes de aplicarlas a entornos críticos, validando re-run, idempotencia y rollback.
Documentación de cada personalización con motivo, owner, componente afectado, riesgo, procedimiento de retirada y prueba de upgrade.
Tema 16: Cloud Native Hybrid con Kubernetes y GitLab Charts
Comprensión de Cloud Native Hybrid como variante donde algunos componentes se ejecutan en Kubernetes mediante GitLab Charts u Operator.
Revisión de que GET soporta variantes Cloud Native Hybrid de Reference Architectures actualmente para AWS y GCP, según la documentación del proyecto.
Diferenciación entre despliegue Omnibus distribuido y despliegue híbrido con componentes en Kubernetes y servicios externos o nodos dedicados.
Preparación de cluster Kubernetes, networking, storage, ingress, certificados y permisos antes de ejecutar la configuración híbrida.
Configuración de GitLab Charts mediante plantillas personalizadas cuando se requieren ajustes no cubiertos por defaults.
Gestión de secretos sincronizados entre Omnibus y Kubernetes cuando la arquitectura lo exige.
Evaluación de la complejidad operativa adicional: Helm, Kubernetes, pods, ingress, secrets, storage classes, logs y actualización de charts.
Revisión de cuándo Cloud Native Hybrid aporta valor y cuándo un despliegue Omnibus distribuido es más simple y operable.
Diagnóstico de errores en híbrido: pods no listos, ingress incorrecto, secrets ausentes, charts mal configurados o comunicación con servicios Omnibus.
Documentación del límite operativo entre GET, Kubernetes, Helm, GitLab Charts, cluster platform y equipo responsable.
Tema 17: Servicios cloud gestionados y componentes externos
Evaluación del uso de servicios gestionados para PostgreSQL, Redis, balanceo, object storage u otros componentes soportados de forma alternativa.
Revisión de la documentación avanzada de GET sobre component cloud services y custom services para reducir operación directa de algunos nodos.
Diseño de arquitectura donde la empresa decide qué opera GET y qué delega en servicios cloud gestionados.
Análisis de ventajas: backups gestionados, HA nativa, escalabilidad, parches, menor administración y posible integración cloud.
Análisis de riesgos: límites del proveedor, costes, compatibilidad, latencia, configuración específica y menor control sobre ciertos parámetros.
Configuración de variables, endpoints, credenciales y dependencias cuando se integra un servicio externo con GitLab.
Validación de conectividad, TLS, rendimiento, failover, permisos y comportamiento ante reinicios o mantenimiento gestionado.
Definición de ownership entre equipo GitLab, equipo cloud, DBA, seguridad y proveedor cuando el componente no lo administra directamente GET.
Preparación de pruebas de recuperación y mantenimiento para servicios externos antes de considerarlos productivos.
Documentación de cada servicio gestionado con SLA, owner, credenciales, configuración, backup, costes y procedimiento de soporte.
Tema 18: Monitorización con Prometheus y salud del entorno
Comprensión del soporte de GET para desplegar monitorización opcional basada en Prometheus dentro del entorno GitLab.
Revisión de métricas clave: disponibilidad, CPU, memoria, disco, latencia, errores, Sidekiq, Gitaly, PostgreSQL, Redis, Praefect y OpenSearch.
Configuración de nodos de monitorización según arquitectura, volumen de métricas, retención, acceso y criticidad.
Validación de targets, scraping, métricas expuestas, dashboards básicos y estado general del stack.
Identificación de alertas imprescindibles: servicios caídos, disco bajo, backups fallidos, PostgreSQL degradado, Redis inaccesible y colas Sidekiq crecientes.
Integración conceptual con plataformas corporativas de observabilidad, SIEM, ITSM o alerting fuera del alcance directo del Toolkit.
Revisión de que GET no pretende cubrir observabilidad completa más allá de Prometheus, por lo que puede requerirse integración adicional.
Diagnóstico de problemas mediante métricas, logs GitLab, logs de Ansible, systemd, `gitlab-ctl` y checks de salud.
Creación de runbooks asociados a alertas frecuentes para que soporte actúe sin improvisar durante incidencias.
Documentación del modelo de monitorización con métricas, targets, owners, retención, alertas y escalado.
Tema 19: Backups, recuperación y consideraciones posteriores al despliegue
Revisión de tareas que deben realizarse tras un despliegue GET, incluyendo backups, seguridad, validaciones y configuración adicional.
Diseño de estrategia de backup para GitLab: base de datos, repositorios, uploads, artifacts, LFS, Registry, paquetes, configuración y secretos.
Validación de backups mediante restauraciones de prueba, evitando asumir que un job correcto implica recuperación garantizada.
Protección de secretos GitLab y claves internas, especialmente cuando se distribuyen entre nodos o se aportan mediante custom secrets.
Preparación de almacenamiento externo para backups con cifrado, retención, acceso controlado y pruebas de recuperación.
Revisión de RPO y RTO según criticidad de GitLab para desarrollo, CI/CD, despliegues y continuidad de negocio.
Documentación de procedimiento de restauración, responsables, orden de recuperación, dependencias y validaciones posteriores.
Ejecución de pruebas de recuperación en sandbox para conocer tiempos reales, obstáculos y riesgos.
Análisis de dependencias externas que también deben recuperarse: object storage, bases gestionadas, Registry, DNS, TLS y runners.
Creación de un checklist post-despliegue con seguridad, backups, monitorización, soporte, usuarios, licencias, DNS, TLS y documentación.
Tema 20: Upgrades de GitLab y del Toolkit
Diferenciación entre actualizar GitLab, actualizar GET, actualizar dependencias Terraform/Ansible y actualizar infraestructura subyacente.
Revisión de la documentación de upgrades para planificar cambios con control, pruebas previas y conocimiento de versiones soportadas.
Preparación de entorno de ensayo para validar upgrade antes de tocar producción, especialmente en arquitecturas distribuidas o con custom config.
Análisis de rutas de actualización GitLab, versiones intermedias, notas de release, breaking changes y requisitos de PostgreSQL u otros componentes.
Uso de playbooks y procesos GET para aplicar upgrades de entorno de forma ordenada.
Revisión de zero downtime upgrades cuando la arquitectura, versión y procedimiento lo permiten, sin asumir disponibilidad absoluta.
Validación post-upgrade de frontend, Git, CI/CD, Registry, Sidekiq, Gitaly, búsqueda, integraciones, webhooks y usuarios.
Preparación de rollback o plan de contingencia realista, teniendo en cuenta datos, migraciones, backups y límites de downgrade.
Documentación de cada upgrade con versión origen, versión destino, pasos, incidencias, tiempos, validaciones y owner.
Creación de una política de actualización periódica que reduzca deuda técnica, versiones fuera de soporte y upgrades demasiado grandes.
Tema 21: Geo con GitLab Environment Toolkit
Comprensión de GitLab Geo como estrategia para replicación geográfica, recuperación ante desastres o mejora de acceso en regiones distribuidas.
Revisión del soporte documental de GET para provisionar, configurar y operar escenarios Geo.
Diseño de un entorno primario y secundario con red, DNS, almacenamiento, replicación, base de datos, object storage y certificados adecuados.
Evaluación de cuándo Geo responde a necesidades reales de resiliencia o latencia y cuándo añade complejidad innecesaria.
Configuración de variables y playbooks específicos para provisionar y configurar componentes Geo.
Validación de replicación de repositorios, datos relevantes, estado de nodos y experiencia de usuarios en sitios secundarios.
Revisión de procedimientos de failover, failback, mantenimiento y pruebas periódicas de recuperación.
Monitorización de lag, errores de sincronización, estado de nodos, almacenamiento y disponibilidad de endpoints.
Diagnóstico de problemas frecuentes: conectividad entre sitios, credenciales, object storage, latencia, DNS o datos no sincronizados.
Documentación del modelo Geo con RPO, RTO, responsables, pruebas, limitaciones, costes y procedimiento de activación.
Tema 22: Seguridad operativa, hardening y control de acceso
Revisión de seguridad cloud: IAM, grupos de seguridad, firewall, SSH, redes, subredes, balanceadores, buckets y credenciales de despliegue.
Aplicación de mínimo privilegio en cuentas cloud, usuarios del nodo de control, claves SSH, service accounts y acceso a state remoto.
Protección de secretos en Terraform state, inventarios Ansible, `vars.yml`, logs, repositorios, pipelines y almacenamiento compartido.
Revisión de superficie expuesta: puertos HTTP, HTTPS, SSH, Registry, Prometheus, administración interna y endpoints no destinados a usuarios.
Integración con controles corporativos como bastion hosts, VPN, segmentación, SIEM, EDR, hardening Linux y gestión de vulnerabilidades.
Validación de TLS, certificados, cabeceras, acceso administrativo y reglas de red antes de abrir el entorno a usuarios.
Gestión de actualizaciones del sistema operativo y paquetes, coordinada con upgrades GitLab y mantenimiento del entorno.
Revisión de custom config con enfoque de riesgo, especialmente cuando afecta autenticación, email, object storage, KAS, OmniAuth o seguridad.
Preparación de auditoría de cambios sobre configuración GET, Terraform, Ansible, cloud y GitLab.
Creación de una matriz de riesgos y controles para entornos GitLab Self-Managed gestionados con GET.
Tema 23: Troubleshooting avanzado de despliegues GET
Diagnóstico de errores de Terraform relacionados con providers, permisos, state, locks, quotas, redes, discos, IPs o nombres duplicados.
Investigación de fallos Ansible por inventario, SSH, privilegios, dependencias, variables, templates, roles o tareas no idempotentes.
Revisión de errores Omnibus durante `gitlab-ctl reconfigure`, servicios systemd, conectividad interna o configuración inválida.
Interpretación de logs de GitLab, Rails, Sidekiq, Gitaly, Praefect, PostgreSQL, Redis, HAProxy y OpenSearch.
Separación entre problemas del Toolkit, problemas de infraestructura cloud, errores de GitLab y fallos derivados de personalizaciones.
Uso de reruns controlados de Ansible, limitación por grupos, tags, checks y validaciones para no repetir acciones innecesarias.
Recuperación ante despliegues parciales donde Terraform creó infraestructura, pero Ansible no completó configuración.
Gestión de drift entre estado Terraform, recursos cloud reales, inventario Ansible y configuración manual aplicada fuera del Toolkit.
Documentación de incidencias con comandos, logs, entorno, versión GET, versión GitLab, proveedor cloud, cambios recientes y salida relevante.
Creación de una guía interna de troubleshooting con síntomas, causas probables, evidencias, resolución y escalado.
Tema 24: Integración de GET en CI/CD e Infrastructure as Code corporativa
Diseño de repositorio IaC para GET con ramas, entornos, revisiones, pull requests, aprobaciones, changelog y control de versiones.
Separación de configuraciones por entorno: laboratorio, desarrollo, preproducción, producción y recuperación ante desastres.
Automatización parcial de validaciones Terraform, linting, análisis de configuración, revisión de secretos y comprobaciones previas.
Evaluación de cuándo ejecutar `terraform plan` en pipeline y cuándo reservar `apply` para ejecución manual aprobada.
Gestión segura de credenciales cloud y claves SSH en CI/CD, evitando exponer secretos en logs o variables no protegidas.
Preparación de artefactos de despliegue: plan aprobado, logs, inventario, outputs, versiones de herramientas y evidencias.
Integración de controles de seguridad antes de cambios en redes, IAM, buckets, discos, certificados o exposición pública.
Diseño de flujos de promoción de cambios entre entornos, evitando aplicar directamente en producción configuraciones no ensayadas.
Gestión de drift detection para detectar cambios cloud manuales que ya no coinciden con Terraform.
Documentación del modelo CI/CD de GET con responsables, aprobaciones, credenciales, entornos, rollback y auditoría.
Tema 25: Costes, capacidad y FinOps en entornos GitLab escalados
Estimación de costes de instancias, discos, IOPS, balanceadores, object storage, OpenSearch, backups, snapshots, tráfico y servicios gestionados.
Revisión de cómo las Reference Architectures pueden implicar costes relevantes, especialmente en entornos 10k, 25k o 50k.
Preparación de presupuestos cloud, alertas de consumo, tags obligatorios y reporting por entorno, componente y centro de coste.
Identificación de componentes más costosos: Gitaly, PostgreSQL, OpenSearch, nodos Rails, Sidekiq, discos SSD, snapshots y transferencia de datos.
Evaluación de trade-offs entre alta disponibilidad, rendimiento, simplicidad operativa y coste mensual.
Medición de uso real frente a dimensionamiento inicial para ajustar nodos, discos, almacenamiento y retención.
Revisión de costes ocultos: logs, métricas, backups, entornos duplicados, pruebas escaladas y recursos no destruidos tras laboratorios.
Preparación de políticas para apagar, destruir o reducir entornos no productivos cuando no se usan.
Creación de informes FinOps que expliquen coste por usuario, coste por componente, crecimiento y oportunidades de optimización.
Documentación de supuestos de capacidad, límites, alertas y criterios para escalar o redimensionar.
Tema 26: Migración desde instalaciones manuales a entornos gobernados con GET
Inventario de la instalación GitLab actual: versión, componentes, datos, almacenamiento, integraciones, runners, certificados, backups y custom config.
Evaluación de si conviene migrar hacia una arquitectura nueva desplegada con GET o adaptar parcialmente la instalación existente.
Identificación de diferencias entre configuración manual y configuración gestionada por Toolkit, evitando trasladar deuda técnica sin revisión.
Preparación de backups completos y restauraciones de prueba antes de cualquier migración o rediseño.
Diseño de transición con ventana, congelación de cambios, DNS, certificados, validaciones, usuarios piloto y plan de vuelta atrás.
Revisión de compatibilidad de versiones GitLab, PostgreSQL, object storage, Registry, runners y componentes externos.
Migración de datos, repositorios, artifacts, Registry, configuración y secretos con procedimientos documentados.
Validación posterior de proyectos, usuarios, grupos, CI/CD, runners, webhooks, paquetes, búsqueda, Registry y permisos.
Comunicación a usuarios, responsables de desarrollo, seguridad, negocio y soporte sobre cambios, ventanas y riesgos.
Documentación final de la nueva arquitectura GET como fuente oficial de operación y mantenimiento.
Tema 27: Soporte, Statement of Support y relación con GitLab
Comprensión de que el soporte técnico de GET se limita al major version actual y debe canalizarse según los canales de soporte indicados por GitLab.
Revisión de qué incidencias corresponden a Toolkit, GitLab Self-Managed, cloud provider, sistema operativo, custom config o infraestructura corporativa.
Preparación de información útil para soporte: versión GET, versión GitLab, cloud, arquitectura, logs, comandos, cambios recientes y configuración relevante.
Identificación de cambios personalizados que pueden quedar fuera de soporte o complicar diagnóstico por introducir comportamiento no estándar.
Gestión de issues del Toolkit cuando el problema afecta al código del proyecto y no a una personalización local.
Documentación de acuerdos internos sobre quién contacta con soporte, quién ejecuta cambios y quién valida recomendaciones.
Revisión del impacto de usar versiones antiguas de Toolkit, versiones GitLab no soportadas o sistemas operativos deprecados.
Preparación de una matriz de escalado interna antes de abrir caso externo, evitando enviar problemas sin diagnóstico básico.
Control de evidencias y datos sensibles antes de compartir logs, inventarios o configuraciones con soporte externo.
Creación de un procedimiento de soporte que reduzca tiempos de resolución y mejore calidad de información enviada.
Tema 28: Gobierno operativo de GitLab desplegado con GET
Creación de un inventario vivo de componentes GitLab, nodos, roles, IPs, versiones, discos, certificados, owners y criticidad.
Definición de rutinas de revisión: salud diaria, backups, certificados, uso de disco, colas Sidekiq, errores, upgrades y capacidad.
Establecimiento de ventanas de mantenimiento, comunicación, aprobación de cambios y validación post-mantenimiento.
Diseño de runbooks para fallos habituales: nodo caído, Gitaly lento, PostgreSQL degradado, certificado vencido, Registry inaccesible o backup fallido.
Mantenimiento de documentación de arquitectura, Terraform, Ansible, red, TLS, custom config, monitorización, backups y recuperación.
Revisión periódica de accesos al nodo de control, state remoto, clouds, GitLab admin, Prometheus y recursos críticos.
Gestión de deuda técnica: versiones antiguas, componentes sin owner, customizaciones no documentadas o entornos que ya no se usan.
Medición de madurez operativa mediante disponibilidad, incidencias, tiempo de recuperación, éxito de backups, upgrade cadence y drift.
Preparación de comités de revisión con infraestructura, DevOps, seguridad, desarrollo, compliance y dirección técnica.
Conversión de GET en parte de un sistema operativo de plataforma, no en un repositorio que solo se usa durante el despliegue inicial.
Tema 29: Proyecto final integrador: despliegue gobernado de GitLab con GET
Definición de un caso empresarial con número de usuarios, carga esperada, cloud, criticidad, presupuesto, requisitos de seguridad y necesidades de disponibilidad.
Selección de Reference Architecture adecuada, justificando componentes, nodos, balanceadores, almacenamiento, Redis, PostgreSQL, Gitaly y monitorización.
Preparación del proveedor cloud o entorno sandbox con red, SSH, backend Terraform, permisos, IP externa, tags y presupuesto controlado.
Creación de configuración Terraform con variables, backend, módulo de arquitectura, outputs y convenciones de naming.
Provisioning de infraestructura mediante `terraform init`, revisión de plan, ejecución controlada de apply y documentación de recursos creados.
Configuración de inventario dinámico Ansible, `vars.yml`, claves, versión GitLab, dominios, secretos, certificados y componentes requeridos.
Ejecución de playbooks GET para configurar GitLab, validar servicios, revisar logs, comprobar frontend y probar operaciones básicas.
Incorporación de una configuración avanzada: OpenSearch, Registry, SSL/TLS, data disks, custom task, custom config o monitorización.
Diseño de plan operativo con backups, upgrades, alertas, runbooks, soporte, costes, seguridad y procedimiento de cambios.
Presentación final con arquitectura, decisiones, evidencias, riesgos, límites de GET, responsabilidades del usuario y plan de mejora continua.
Aulas Virtuales Personalizadas
¿Te imaginas tener un Temario 100% Personalizado para tu Empresa?
¿A quién va dirigida esta formación en Gitlab Environment Toolkit?
Pensado para quienes deben dominar Gitlab Environment Toolkit en su día a día
Administradores GitLab Self-Managed
Este curso encaja con administradores que ya conocen GitLab a nivel funcional y necesitan evolucionar hacia despliegues más robustos, escalables y mantenibles. Aprenderán a interpretar arquitecturas de referencia, configurar componentes, preparar upgrades, revisar backups, diagnosticar incidencias y operar GitLab como una plataforma crítica de empresa.
Equipos de infraestructura y sistemas
Los equipos de sistemas podrán utilizar GET para aprovisionar máquinas, configurar nodos, gestionar dependencias, separar componentes y mantener una infraestructura GitLab más ordenada. La formación les ayuda a entender qué despliega Terraform, qué configura Ansible y qué responsabilidades siguen quedando fuera del Toolkit.
Equipos DevOps, CloudOps y Platform Engineering
Los perfiles DevOps y plataforma aprenderán a integrar GET en flujos de infraestructura como código, repositorios versionados, pipelines, controles de cambio, revisión de configuración y operación por entornos. El curso refuerza un uso disciplinado de GET para evitar despliegues manuales, configuraciones opacas o cambios sin trazabilidad.
Arquitectos cloud e infraestructura
Los arquitectos podrán evaluar cuándo desplegar GitLab en AWS, GCP, Azure, on-premise o Cloud Native Hybrid, considerando red, almacenamiento, balanceo, PostgreSQL, Redis, Gitaly, Praefect, OpenSearch y monitorización. El curso aporta criterio para diseñar entornos escalados sin copiar configuraciones de ejemplo sin análisis.
Equipos de seguridad y compliance técnico
Los perfiles de seguridad podrán revisar TLS, secretos, IAM cloud, SSH, permisos, red, acceso administrativo, backups, hardening, custom config, exposición de servicios y trazabilidad de cambios. La formación ayuda a reducir riesgos en una plataforma donde viven código, CI/CD, runners, paquetes, registros y credenciales.
Responsables de continuidad, soporte y operación
Los equipos que deben garantizar disponibilidad, recuperación y mantenimiento podrán trabajar upgrades, zero downtime upgrades, Geo, backups, monitorización, alertas, runbooks, troubleshooting y post-deployment considerations. El curso facilita pasar de “desplegar GitLab” a operar un servicio empresarial con procedimientos claros.
Proveedor con 16 años de experiencia en formación empresarial
Sobre
En Imagina Formación llevamos más de 16 años ayudando a profesionales y empresas a mejorar sus habilidades con formación práctica y totalmente adaptada a sus necesidades. Durante este tiempo, hemos formado a más de 480.000 personas y colaborado con más de 3.500 empresas, convirtiéndonos en un referente en el sector.
16
Años de liderazgo
+480.000
Alumnos formados en Imagina
¿Tienes dudas?
Resolvemos todas tus dudas sobre nuestra formación en Gitlab Environment Toolkit
Explora las respuestas a las preguntas que guian a nuestra comunidad. Aqui encontraras claridad sobre como funciona todo, desde el acceso hasta los detalles de los cursos. Si buscas respuestas, este es el lugar para comenzar.
GitLab Environment Toolkit, o GET, es un conjunto de scripts opinados de Terraform y Ansible para ayudar a desplegar entornos GitLab escalados siguiendo las Reference Architectures oficiales.
No. GET está pensado para despliegues escalados y opinados, especialmente alineados con arquitecturas de referencia. La documentación advierte que puede requerir personalización y que no garantiza compatibilidad con todas las necesidades específicas.
La documentación actual indica soporte para GCP, AWS y Azure en despliegues Linux package/Omnibus, además de Cloud Native Hybrid en AWS y GCP. También contempla soporte on-premise mediante Ansible.
Es recomendable tener buen conocimiento de Terraform, Ansible, administración GitLab e infraestructura. La propia documentación de GET advierte que el Toolkit no elimina la complejidad de operar grandes aplicaciones en producción.
Sí. Terraform se usa para provisionar máquinas e infraestructura asociada, y Ansible para configurar las máquinas y componentes GitLab en el orden adecuado mediante etiquetas o labels generados durante el provisioning.
Sí. El curso incluye Cloud Native Hybrid, GitLab Charts, Kubernetes, Helm, secretos, configuración personalizada y criterios para decidir cuándo esta arquitectura aporta valor o añade demasiada complejidad operativa.
Sí. GET documenta soporte para Advanced Search con OpenSearch, Geo y Container Registry, y el curso incluye configuración, validación, operación, monitorización y troubleshooting de estos componentes.
Sí. El temario incluye actualización de GitLab, actualización del Toolkit, rutas de upgrade, validación previa, zero downtime upgrades cuando aplique, rollback, pruebas posteriores y documentación de cambios.
No completamente. GET puede ayudar en despliegue y configuración, pero la documentación advierte que puede requerirse configuración manual posterior y que no ofrece garantías sobre seguridad o integridad de datos. Por eso el curso trabaja backups, validación, hardening y gobierno.
Sí. Al tratarse de una formación corporativa avanzada en GitLab, infraestructura, DevOps, cloud, automatización, seguridad y competencias digitales, puede plantearse como formación bonificable hasta el 100% a través de FUNDAE, según el crédito disponible y cumpliendo los requisitos administrativos aplicables.
GitLab Environment Toolkit, o GET, es un conjunto de scripts opinados de Terraform y Ansible para ayudar a desplegar entornos GitLab escalados siguiendo las Reference Architectures oficiales.
No. GET está pensado para despliegues escalados y opinados, especialmente alineados con arquitecturas de referencia. La documentación advierte que puede requerir personalización y que no garantiza compatibilidad con todas las necesidades específicas.
La documentación actual indica soporte para GCP, AWS y Azure en despliegues Linux package/Omnibus, además de Cloud Native Hybrid en AWS y GCP. También contempla soporte on-premise mediante Ansible.
Es recomendable tener buen conocimiento de Terraform, Ansible, administración GitLab e infraestructura. La propia documentación de GET advierte que el Toolkit no elimina la complejidad de operar grandes aplicaciones en producción.
Sí. Terraform se usa para provisionar máquinas e infraestructura asociada, y Ansible para configurar las máquinas y componentes GitLab en el orden adecuado mediante etiquetas o labels generados durante el provisioning.
Sí. El curso incluye Cloud Native Hybrid, GitLab Charts, Kubernetes, Helm, secretos, configuración personalizada y criterios para decidir cuándo esta arquitectura aporta valor o añade demasiada complejidad operativa.
Sí. GET documenta soporte para Advanced Search con OpenSearch, Geo y Container Registry, y el curso incluye configuración, validación, operación, monitorización y troubleshooting de estos componentes.
Sí. El temario incluye actualización de GitLab, actualización del Toolkit, rutas de upgrade, validación previa, zero downtime upgrades cuando aplique, rollback, pruebas posteriores y documentación de cambios.
No completamente. GET puede ayudar en despliegue y configuración, pero la documentación advierte que puede requerirse configuración manual posterior y que no ofrece garantías sobre seguridad o integridad de datos. Por eso el curso trabaja backups, validación, hardening y gobierno.
Sí. Al tratarse de una formación corporativa avanzada en GitLab, infraestructura, DevOps, cloud, automatización, seguridad y competencias digitales, puede plantearse como formación bonificable hasta el 100% a través de FUNDAE, según el crédito disponible y cumpliendo los requisitos administrativos aplicables.