GitLab se mueve de Azure a Google Cloud Platform

Cuando Microsoft adquirió GitHub, muchos usuarios de GitHub no estaban contentos. Al menos 100,000 de ellos estaban lo suficientemente molestos como para mudarse a un rival líder de GitHub, GitLab. Ahora, GitLab está trasladando sus repositorios de Microsoft Azure a Google Cloud Platform (GCP).

Andrew Newdigate, líder del proyecto de migración de Google Cloud Platform de GitLab, explicó que GitLab estaba haciendo la migración para mejorar el rendimiento y la confiabilidad del servicio.

Específicamente, la compañía está haciendo el cambio porque cree que Kubernetes es el futuro. Kubernetes "hace posible la fiabilidad a escala masiva". GCP fue su elección natural debido a este deseo de ejecutar GitLab en Kubernetes. Después de todo, Google inventó Kubernetes, y GKE tiene el soporte de Kubernetes más robusto y maduro.

Una vez que la migración haya tenido lugar, GitLab se enfocará en "aumentar la estabilidad y escalabilidad de GitLab.com, trasladando nuestra flota de trabajadores a Kubernetes usando GKE. Este movimiento aprovechará nuestras cartas Cloud Native, que con GitLab 11.0 ahora están disponibles en la verisón beta."

Para que esto suceda, GitLab usará su producto Geo. Geo permite a los usuarios crear espejos completos de solo lectura de las instancias de GitLab. Las instancias geográficas también se pueden usar para clonar, buscar proyectos y, en este caso, migrar proyectos de GitLab.

GitLab no está haciendo este movimiento para distanciarse de Microsoft. GitLab ya estaba trabajando en esto antes de que Microsoft comprara GitHub.

Mucho antes de que se finalizara el acuerdo, Newdigate escribió: "hemos mantenido un sitio Geo secundario de GitLab.com, llamado gprd.gitlab.com, que se ejecuta en Google Cloud Platform. Este mantiene una copia sincronizada actualizada de aproximadamente 200TB de datos Git y 2TB de datos relacionales en PostgreSQL. Originalmente también replicamos Git LFS, cargas de archivos y otros archivos, pero desde entonces se migró al almacenamiento de objetos de Google Cloud Storage, en un esfuerzo paralelo".

Por razones logísticas, GitLab utiliza el sitio de US-east1 de GCP en Carolina del Sur. Su data center actual de Azure se encuentra en el este de los EE.UU., en Virginia. Esta es una distancia de ida y vuelta de 800 km o 3 milisegundos a velocidad de la luz. En la práctica de Internet, esto se traduce en un tiempo de ping de 30ms entre los dos sitios.

Newdigate continuó:

Debido a la gran cantidad de datos que necesitamos sincronizar entre Azure y GCP, inicialmente estábamos preocupados por esta latencia adicional y el riesgo que podría tener en nuestra transferencia geográfica. Sin embargo, después de nuestras pruebas iniciales, nos dimos cuenta de que la latencia de la red y el ancho de banda no eran cuellos de botella en la transferencia.

Simultáneamente, GitLab está migrando todos los archivos a Google Cloud Storage (GCS), la implementación de almacenamiento de objetos administrados de Google. Eso son aproximadamente 200TB de datos.

Hasta hace poco, GitLab almacenaba estos archivos en servidores NFS, con Network File System (NFS). Como la mayoría de ustedes saben, NFS es un punto único de error y puede ser difícil de escalar. Al cambiar a GCS, GitLab puede aprovechar su redundancia integrada y capacidades de múltiples regiones. Esto a su vez ayudará a mejorar la disponibilidad de GitLab y eliminar puntos únicos de error. Esto es parte de una estrategia a largo plazo para dejar atrás NFS.

El proyecto Gitaly, un servicio GitLab Git RPC, es parte de la misma iniciativa. Este esfuerzo para migrar GitLab.com de NFS también es un requisito previo para los planes de trasladar GitLab a Kubernetes.

Según Newdigate, "nuestra máxima prioridad absoluta para la conmutación por error es garantizar que protegemos la integridad de los datos de nuestros usuarios. Solo realizaremos la conmutación por error una vez que estemos completamente satisfechos de que se hayan solucionado todos los problemas graves, de que no exista ningún riesgo de pérdida de datos, y que nuestro nuevo entorno en Google Cloud Platform está listo para las cargas de trabajo de producción".

Si todo va bien, y hasta ahora lo ha hecho, GitLab realizará la mudanza el sábado 28 de julio de 2018.