Sitio detrás de G Cloud CDN: guía detallada

Guía práctica para colocar GitLab detrás de Google Cloud CDN y un balanceador HTTPS, usando Internet NEG y DNS auxiliar para reducir latencia sin tocar el origen.

7 sept 2025 • 7 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Hola, soy Maneshwar. Estoy construyendo LiveReview, una herramienta privada de revisión de código con IA que se ejecuta con tu propia clave de LLM como OpenAI o Gemini y con precios muy competitivos para equipos pequeños. Si te interesa, pruébala. Y ahora, vamos al tema.

Nuestra instancia de GitLab estaba en una VM fuera de GCP y aunque funcionaba, se sentía lenta.

Colocándola detrás de Google Cloud CDN con un balanceador HTTPS global, redujimos los tiempos de carga de página en alrededor del 50 por ciento, gracias a caché en el borde, compresión y la red de Google. Lo mejor es que no tocamos la configuración HTTPS de GitLab ni nada crítico del servidor de origen.

En esta guía te muestro cómo lo hicimos, por qué cada paso importa y las trampas que evitamos como bucles DNS y errores al elegir el tipo de backend.

Resultados de alto nivel TLDR: delante de la VM externa de GitLab pusimos un balanceador global externo HTTPS con Cloud CDN. El balanceador termina el TLS del cliente con un certificado administrado por Google y luego reenvía al origen por HTTPS. Para hacerlo seguro y sin bucles, creamos un nombre DNS auxiliar que apunta a la IP del origen, creamos un Internet NEG que referencia ese origen 443, montamos un servicio backend HTTPS con Cloud CDN activado, creamos el balanceador con reglas de host y path hacia ese backend, añadimos el frontend HTTPS con el certificado para gitlab.apps.dev.to y finalmente apuntamos el registro DNS público de gitlab.apps.dev.to a la IP del balanceador.

Arquitectura en breve: Origen una VM en 111.0.113.50 con GitLab Omnibus y su propio HTTPS. DNS bajo *.apps.dev.to en Cloud DNS. CDN y SSL gestionados por el balanceador global de Google con Cloud CDN activado.

Paso 0 Prechequeo por qué no es un balanceador cualquiera. Objetivo poner Cloud CDN delante de una VM remota sin cambiar el HTTPS de GitLab. Cloud CDN vive en el borde del balanceador, y para llegar a un origen fuera de GCP necesitas un Internet NEG que apunte a una IP o FQDN externo. Si apuntas el NEG al mismo hostname que vas a publicar en el LB, cuando muevas ese hostname al LB crearás un bucle. Así que planifica y prueba con cuidado.

Paso 1 DNS auxiliar crea un nombre de ayuda para el origen. Creamos un A en Cloud DNS gl.apps.dev.to con la IP 00.105.05.200 de la VM. El NEG usará gl.apps.dev.to para alcanzar al origen sin riesgo de que resuelva la IP del LB cuando cambiemos el hostname público gitlab.apps.dev.to. Elige un nombre claramente interno para evitar que se use en público por error.

Paso 2 Crea un Internet NEG. Creamos gitlab-ovh-neg-https con un endpoint 00.105.05.200:443. Un NEG de Internet permite al balanceador global hablar con IPs o FQDN externos. Errores comunes apuntar el NEG al mismo hostname público creando bucle o intentar usar backend bucket o instance group cuando tu origen es una VM externa.

Paso 3 Crea el servicio backend y adjunta el NEG. Creamos gitlab-ovh-backend-service con protocolo HTTPS, adjuntamos el NEG y habilitamos Cloud CDN. Desactivamos la verificación TLS del backend para aceptar el certificado del origen aunque sea autofirmado. Decisiones clave Protocolo HTTPS porque GitLab sirve HTTPS. Cloud CDN activado con modo de caché de contenido estático respetando Cache-Control. Verificación TLS del backend desactivada de inicio para evitar fallos con certificados no confiables.

Paso 4 Crea el balanceador global externo HTTPS. Esto es lo que verán los clientes con IP global y frontend HTTPS. Creamos gitlab-cdn-1, añadimos un frontend inicial HTTP en 33.149.6.84:80 para redirecciones y luego el frontend HTTPS 443 con certificado. En el mapa de URL configuramos que gitlab.apps.dev.to rote hacia gitlab-ovh-backend-service.

Paso 4a Frontend HTTPS. Queremos que https://gitlab.apps.dev.to presente un certificado gestionado por Google. El LB termina TLS, ofrece HTTP2 o QUIC y reenvía al backend. Ejemplo Nombre git-frontend-lb, Protocolo HTTPS con HTTP2, IP global reservada, Puerto 443, Certificado gestionado, Política SSL por defecto, Redirección de HTTP a HTTPS opcional.

Paso 4b Enlace con backend. Selecciona el servicio backend creado y adjúntalo al mapa de URL.

Paso 4c Reglas de enrutamiento. Unificamos todo el tráfico de gitlab.apps.dev.to hacia el servicio con NEG. Si lo necesitas, puedes enrutar paths a backends distintos, por ejemplo assets estáticos a un bucket y dinámico a la VM.

Paso 5 Certificados y frontend HTTPS. Se adjunta un certificado administrado para gitlab.apps.dev.to en el frontend del LB. El LB maneja el TLS del cliente y mantiene cifrado extremo a extremo cuando reenvía a https origen 443, cumpliendo con no tocar el SSL interno de GitLab.

Paso 6 Cambios DNS finales. Actualizamos el A de gitlab.apps.dev.to a la IP pública del LB 33.149.6.84. Mantenemos gl.apps.dev.to apuntando a 00.105.05.200 para que el NEG siempre resuelva la IP real del origen y no la del LB.

Checklist de pruebas. Ejecuta curl -I https://gitlab.apps.dev.to y verifica encabezados como Via 1.1 google o indicadores de Cloud CDN. Prueba git ls-remote https://gitlab.apps.dev.to con operaciones Git sobre HTTPS. Si algo falla, vuelve a apuntar el A de gitlab.apps.dev.to a la IP del origen para recuperar servicio inmediato.

Paso 7 Configuración de caché y CDN. Modo de caché Cachear contenido estático respetando Cache-Control del origen, ideal para CSS JS e imágenes con fingerprinting. TTL cliente 1 hora, TTL por defecto 1 hora, TTL máximo 1 día. Compresión automática. Serve while stale desactivado. Contenido restringido público sin URLs firmadas. Caché negativa desactivada. Razonamiento GitLab sirve contenido dinámico y privado, no fuerces cachear todo para evitar servir páginas privadas o obsoletas. Fingerprinting de assets permite equilibrio entre frescura y rendimiento.

Paso 8 Estrategia de invalidación. Cloud CDN permite invalidar por host y path o por etiquetas de caché. GitLab no emite etiquetas por defecto, así que invalidamos por rutas. Ejemplos tras actualizar assets, invalida host gitlab.apps.dev.to y path /assets/*; si avatares no se actualizan, invalida /uploads/* o la ruta específica; último recurso /*. CLI ejemplo gcloud compute url-maps invalidate-cdn-cache gitlab-url-map --path /assets/* --host gitlab.apps.dev.to

Paso 9 Health checks, monitorización y logging. Crea un health check HTTPS a 443 contra una ruta como users/sign_in y así el LB marca el backend saludable. Activa registros de backend y de LB para entender aciertos de caché, fallos y latencias.

Paso 10 Resolución de problemas y plan de rollback. Si tras el cambio de DNS algo falla, edita el A de gitlab.apps.dev.to de vuelta a 00.105.05.200 para restaurar servicio directo. Revisa logs del LB y backend. Culpables típicos NEG mal apuntado al LB creando bucle, protocolo de backend incorrecto HTTP en lugar de HTTPS o verificación TLS activada con certificado autofirmado. Corrige apuntando al origen real, ajustando protocolo o desactivando la verificación o instalando un certificado confiable.

Notas finales y opciones avanzadas. Limpieza futura opcional terminar TLS en el LB y servir HTTP en el origen para reducir doble cifrado, aunque requiere tocar GitLab. Añade protección tipo WAF con Cloud Armor para reforzar ciberseguridad. A largo plazo, usa certificados válidos en el origen y enciende la verificación TLS en el backend para máxima seguridad. Activa métricas y logging para ratio de aciertos de caché, latencia de backend y errores 5xx.

Checklist ordenado para copiar. 1 Crea A gl.apps.dev.to a 00.105.05.200 con TTL corto. 2 Crea Internet NEG gitlab-ovh-neg-https hacia 00.105.05.200:443. 3 Crea backend gitlab-ovh-backend-service protocolo HTTPS, adjunta NEG, activa Cloud CDN y desactiva verificación TLS del backend inicialmente. 4 Crea balanceador global gitlab-cdn-1 con mapa de URL para host gitlab.apps.dev.to hacia el backend y frontend HTTPS con certificado gestionado y redirección opcional. 5 Cambia Cloud DNS gitlab.apps.dev.to a la IP del LB y conserva gl.apps.dev.to al origen. 6 Configura health check HTTPS a users/sign_in. 7 Prueba con curl -I y git ls-remote. 8 Invalida caché si es necesario con /assets/* y otras rutas. 9 Activa logging y monitoriza.

Conclusión. Poner un GitLab externo detrás de Google Cloud CDN es como construir una estación avanzada en la autopista que acelera el tráfico, protege la ruta y reduce carga en el origen. Con un poco de cuidado al crear el NEG, el backend y el certificado, obtienes velocidad global, menos latencia y una experiencia más fluida al clonar, hacer push y navegar repos.

En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial e IA para empresas, ciberseguridad, agentes IA, servicios cloud aws y azure, servicios de inteligencia de negocio y power bi, y mucho más. Si quieres diseñar una arquitectura robusta con CDN, balanceadores globales y automatización de despliegue, podemos ayudarte a definir, migrar y operar la plataforma. Descubre cómo optimizamos tu infraestructura y costes en nuestro servicio de servicios cloud aws y azure.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.