doc-locale/fr-fr/administration/geo/_index.md
{{< details >}}
{{< /details >}}
Geo est la solution pour les équipes de développement largement distribuées et pour fournir un système de secours à chaud dans le cadre d'une stratégie de reprise après sinistre. Geo n'est not une solution HA prête à l'emploi.
[!warning] Geo subit des changements importants d'une release à l'autre. Les mises à niveau sont prises en charge et documentées, mais vous devez vous assurer que vous utilisez la bonne version de la documentation pour votre installation.
Pour vous assurer que vous utilisez la bonne version de la documentation, accédez à la page Geo sur GitLab.com et choisissez la release appropriée dans la liste déroulante Changer de branche/d'étiquette. Par exemple, v15.7.6-ee.
La récupération de grands dépôts peut prendre beaucoup de temps pour les équipes et les runners situés loin d'une instance GitLab unique.
Geo fournit des caches locaux qui peuvent être placés géographiquement près des équipes distantes et qui peuvent répondre aux requêtes de lecture. Cela peut réduire le temps nécessaire pour cloner et récupérer de grands dépôts, accélérant le développement et augmentant la productivité de vos équipes distantes.
Les sites secondaires Geo transfèrent de manière transparente les requêtes d'écriture vers le site principal. Tous les sites Geo peuvent être configurés pour répondre à une seule URL GitLab, afin de fournir une expérience cohérente, fluide et complète quel que soit le site sur lequel l'utilisateur arrive.
Geo utilise un ensemble de termes définis qui sont décrits dans le Glossaire Geo. Assurez-vous de vous familiariser avec ces termes.
La mise en œuvre de Geo répond à plusieurs cas d'utilisation. Cette section présente quelques-uns des cas d'utilisation prévus et met en évidence leurs avantages.
Geo en tant que solution de reprise après sinistre vous offre un site secondaire à chaud dans une région différente de votre site principal. Les données sont continuellement synchronisées vers le site secondaire, garantissant qu'il est toujours à jour. En cas de sinistre, tel qu'une panne du centre de données, du réseau ou une défaillance matérielle, vous pouvez basculer vers un site secondaire entièrement opérationnel. Vous pouvez tester vos processus de reprise après sinistre et votre infrastructure avec des basculements planifiés.
Avantages :
Établissez des sites secondaires Geo géographiquement plus proches de vos équipes distantes pour fournir des caches locaux qui accélèrent les opérations de lecture. Vous pouvez avoir plusieurs sites secondaires Geo, chacun configuré pour synchroniser uniquement les projets dont vos équipes distantes ont besoin. Le proxy transparent et le routage géographique avec une URL unifiée garantissent une expérience de développement cohérente et fluide.
Avantages :
Vous pouvez configurer vos runners CI/CD pour cloner depuis les sites secondaires Geo. Vous pouvez adapter vos sites secondaires aux besoins de la charge de travail des runners et n'avez pas besoin de répliquer le site principal. Les requêtes de lecture prises en charge sont servies avec des données en cache sur le site secondaire, et les requêtes sont transférées de manière transparente vers le site principal lorsque les données sur le site secondaire sont obsolètes ou non disponibles.
Avantages :
Vous pouvez utiliser Geo pour migrer vers une nouvelle infrastructure. Si vous déplacez votre instance GitLab vers un nouveau serveur ou centre de données, utilisez Geo pour migrer vos données GitLab vers la nouvelle instance en arrière-plan pendant que votre ancienne instance continue de servir vos utilisateurs. Toutes les modifications apportées à vos données GitLab actives sont copiées vers votre nouvelle instance, de sorte qu'il n'y a pas de perte de données lors du basculement.
Vous ne pouvez pas utiliser Geo pour migrer une base de données PostgreSQL d'un système d'exploitation à un autre. Voir Mise à niveau des systèmes d'exploitation pour PostgreSQL.
Avantages :
Vous pouvez également utiliser Geo pour migrer GitLab Self-Managed vers GitLab Dedicated. Une migration vers GitLab Dedicated est similaire à une migration d'infrastructure.
Pour plus d'informations, voir migrer vers GitLab Dedicated avec Geo.
Avantages :
Geo n'est pas conçu pour répondre à tous les cas d'utilisation. Cette section fournit des exemples de cas d'utilisation pour lesquels Geo n'est pas une solution appropriée.
Bien que la fonctionnalité de synchronisation sélective de Geo vous permette de restreindre les projets synchronisés vers les sites secondaires, elle a été conçue pour réduire le trafic inter-régions et les besoins en stockage, et non pour appliquer la conformité à l'exportation. Vous devez déterminer de manière indépendante vos obligations légales en matière de confidentialité, de cybersécurité et des lois applicables sur le contrôle des échanges, sur une base continue, en fonction de la solution et de la documentation. La solution et la documentation sont toutes deux susceptibles d'être modifiées.
La fonctionnalité de site secondaire en lecture seule de Geo n'est pas une fonctionnalité de première classe et pourrait ne pas être prise en charge à l'avenir. Vous ne devez pas vous fier à cette fonctionnalité à des fins de contrôle d'accès. GitLab fournit des contrôles d'authentification et d'autorisation qui servent mieux cet objectif.
Geo n'est pas une solution pour les mises à niveau sans temps d'arrêt. Vous devez mettre à niveau le site Geo principal avant de mettre à niveau les sites secondaires.
Geo réplique la corruption du site principal vers tous les sites secondaires. Pour vous protéger contre la corruption malveillante ou non intentionnelle, vous devez compléter Geo avec des sauvegardes.
Geo est conçu pour être une solution actif-passif, à haute disponibilité. Il fonctionne selon un modèle de synchronisation à cohérence éventuelle, ce qui signifie que les sites secondaires ne sont pas étroitement synchronisés avec le site principal. Les sites secondaires suivent le site principal avec un petit délai, ce qui peut entraîner une petite perte de données après un sinistre. Le basculement vers un site secondaire en cas de sinistre nécessite une intervention humaine. Cependant, une grande partie du processus de promotion d'un site secondaire en site principal est automatisée par le GitLab Environment Toolkit (GET), à condition que vous déployiez tous vos sites en utilisant GET.
Geo ne doit pas être confondu avec Gitaly Cluster (Praefect). Pour plus d'informations sur la différence entre Geo et Gitaly Cluster (Praefect), voir Comparaison avec Geo.
Voici un bref résumé du fonctionnement de Geo dans votre environnement GitLab. Pour plus de détails, consultez la documentation de développement Geo.
Votre instance Geo peut être utilisée pour cloner et récupérer des projets, en plus de lire toutes les données. Cela rend le travail avec de grands dépôts sur de longues distances beaucoup plus rapide.
Lorsque Geo est activé :
Gardez à l'esprit que :
Le diagramme suivant illustre l'architecture sous-jacente de Geo.
Dans ce diagramme :
Du point de vue d'un utilisateur effectuant des opérations Git :
Du point de vue d'un utilisateur naviguant dans l'interface GitLab ou utilisant l'API :
Pour simplifier le diagramme, certains composants nécessaires sont omis.
gitlab-shell.gitlab-workhorse.Un site secondaire nécessite deux bases de données PostgreSQL différentes :
Les sites secondaire exécutent également un démon supplémentaire : Geo Log Cursor.
Les éléments suivants sont requis pour exécuter Geo :
De plus, vérifiez les exigences minimales de GitLab et utilisez la dernière version de GitLab pour une meilleure expérience.
Comme Geo ajoute une base de données de suivi et des métadonnées de réplication en plus de l'installation GitLab de base, prévoyez au moins 40 Go d'espace disque par site pour un déploiement Geo minimal sans données de dépôt. Consultez les exigences de stockage pour plus de détails.
Le tableau suivant répertorie les ports de base qui doivent être ouverts entre les sites principal et secondaire pour Geo. Pour simplifier les basculements, vous devriez ouvrir les ports dans les deux sens.
| Site source | Port source | Site de destination | Port de destination | Protocole |
|---|---|---|---|---|
| Principal | Quelconque | Secondaire | 80 | TCP (HTTP) |
| Principal | Quelconque | Secondaire | 443 | TCP (HTTPS) |
| Secondaire | Quelconque | Principal | 80 | TCP (HTTP) |
| Secondaire | Quelconque | Principal | 443 | TCP (HTTPS) |
| Secondaire | Quelconque | Principal | 5432 | TCP |
| Secondaire | Quelconque | Principal | 5000 | TCP (HTTPS) |
Consultez la liste complète des ports utilisés par GitLab dans Paramètres par défaut du package
[!warning] Pour la réplication PostgreSQL entre les sites Geo, vous devez utiliser des connexions réseau privées, telles que le peering VPC interne. N'exposez jamais les ports PostgreSQL à Internet. L'exposition des ports PostgreSQL à Internet peut entraîner un accès non autorisé avec des autorisations d'écriture complètes à votre base de données GitLab, compromettant potentiellement l'ensemble de votre instance GitLab et toutes les données associées.
De plus :
Connection et Upgrade. Consultez le guide d'intégration du terminal web pour plus de détails.HTTPS pour les URL externes/internes, il n'est pas nécessaire d'ouvrir le port 80 dans le pare-feu.Les requêtes HTTP provenant de tout site secondaire Geo vers le site Geo principal utilisent l'URL interne du site Geo principal. Si cela n'est pas explicitement défini dans les paramètres du site Geo principal dans la zone Admin, l'URL publique du site principal est utilisée.
Prérequis :
Pour mettre à jour l'URL interne du site Geo principal :
L'instance de base de données de suivi est utilisée comme métadonnées pour contrôler ce qui doit être mis à jour sur l'instance locale. Par exemple :
Comme l'instance de base de données répliquée est en lecture seule, nous avons besoin de cette instance de base de données supplémentaire pour chaque site secondaire.
Ce démon :
Lorsqu'une mise à jour est marquée dans l'instance de base de données de suivi, des jobs asynchrones s'exécutant sur le site secondaire effectuent les opérations requises et mettent à jour l'état.
Cette nouvelle architecture permet à GitLab d'être résilient aux problèmes de connectivité entre les sites. Peu importe la durée pendant laquelle le site secondaire est déconnecté du site principal, car il est capable de rejouer tous les événements dans le bon ordre et de se resynchroniser avec le site principal.
[!warning] Ces problèmes connus ne reflètent que la dernière version de GitLab. Si vous utilisez une version plus ancienne, des problèmes supplémentaires pourraient exister.
https://user:[email protected]. Pour plus d'informations, voir comment utiliser un site Geo.registry.example.com. Les registres de conteneurs des sites secondaires sont destinés uniquement à la reprise après sinistre. Les utilisateurs ne doivent pas y être acheminés, en particulier pas pour les poussées, car les données ne sont pas propagées vers le site principal.--depth via SSH vers un site secondaire ne fonctionnent pas et restent bloquées indéfiniment si le site secondaire n'est pas à jour au moment où la requête est initiée. Cela est dû à des problèmes liés à la traduction de Git SSH en Git HTTPS lors du proxy. Pour plus d'informations, voir ticket 391980. Un nouveau flux de travail qui n'implique pas l'étape de traduction susmentionnée est désormais disponible pour les sites secondaires Geo GitLab empaqueté pour Linux, qui peut être activé avec un feature flag. Pour plus de détails, voir le commentaire dans le ticket 454707. Le correctif pour les sites secondaires Geo GitLab Cloud Native est suivi dans le ticket 5641.Il existe une liste complète de tous les types de données GitLab et des types de données répliquées.
Après avoir installé GitLab sur les sites secondaire et effectué la configuration initiale, consultez la documentation suivante pour les informations post-installation.
Pour des informations sur la configuration de Geo, voir Configurer Geo.
Pour des informations sur la configuration de Geo avec le stockage d'objets, voir Geo avec le stockage d'objets.
Pour plus d'informations sur la façon de répliquer le registre de conteneurs, voir Registre de conteneurs pour un site secondaire.
Pour un exemple de configuration d'une URL unique compatible avec la localisation avec AWS Route53 ou Google Cloud DNS, voir Configurer une URL unifiée pour les sites Geo.
Pour plus d'informations sur la configuration de l'authentification unique (SSO), voir Geo avec l'authentification unique (SSO).
Pour plus d'informations sur la configuration de LDAP, voir Geo avec l'authentification unique (SSO) > LDAP.
Pour plus d'informations sur l'optimisation de Geo, voir Optimisation de Geo.
Pour plus d'informations, voir Mise en pause et reprise de la réplication.
Lorsqu'un site secondaire est configuré, il commence à répliquer les données manquantes depuis le site principal dans un processus connu sous le nom de backfill. Vous pouvez surveiller le processus de synchronisation sur chaque site Geo depuis le tableau de bord Geo Nodes du site principal dans votre navigateur.
Les échecs qui se produisent pendant un remplissage initial sont planifiés pour être retentés à la fin du remplissage initial.
Pour des informations sur la façon de mettre à jour vos sites Geo vers la dernière version de GitLab, voir Mise à niveau des sites Geo.
Pour plus d'informations sur la sécurité de Geo, voir Revue de sécurité Geo.
Pour plus d'informations sur la suppression d'un site Geo, voir Suppression des sites Geo secondaire.
Pour savoir comment désactiver Geo, voir Désactivation de Geo.
Geo stocke les messages de journaux structurés dans un fichier geo.log.
Pour plus d'informations sur la façon d'accéder aux journaux Geo et de les utiliser, voir la section Geo dans la documentation du système de journalisation.
Pour des informations sur l'utilisation de Geo dans des situations de reprise après sinistre afin d'atténuer la perte de données et de restaurer les services, voir Reprise après sinistre.
Pour des réponses aux questions courantes, consultez la FAQ Geo.