Aller au contenu principal

Topologie de l'application

L'application GitGuardian se compose de plusieurs ressources Kubernetes. Chaque pod nginx exécute un conteneur nginx qui sert le frontend du dashboard et agit comme proxy pour le backend, ainsi qu'un certain nombre de conteneurs différents qui prennent en charge toutes les tâches backend.

TypeNom du déploiementUtilisation
FrontnginxFrontend du Dashboard et proxy pour le backend
Backendinternal-apiBackend du Dashboard
Backendinternal-api-longBackend du Dashboard (requêtes longues, sans timeout)
Backendpublic-apiAPI publique et scans ggshield
BackendhookRécepteur d'événements webhooks VCS
Backendapp-exporterExporteur Prometheus pour les métriques applicatives
Backendml-secret-engineMoteur de secrets basé sur le Machine Learning
Backendapache-tikaScanner de fichiers pour le scan des sources non-VCS
SchedulerbeatPlanificateur de tâches Celery Beat
Workerworker-workerWorker polyvalent gérant les scans en temps réel, les nouvelles tentatives, les tâches honeytoken et les rapports (queues : check_run, realtime, realtime_retry, honeytoken, reports, core_default, sources_default, incidents_default, individual_validity_check).
Workerworker-check-runsWorker dédié facultatif au traitement des check runs (queue : check_run). Désactivé par défaut ; activez-le pour décharger check_run de worker-worker.
Workerworker-emailGère les notifications par e-mail et la messagerie (queues : email, notifier).
Workerworker-scannersEffectue les scans historiques des dépôts (queues : basic_repo_scan, premium_repo_scan, manual_repo_scan, code_fixing).
Workerworker-longTraite les tâches de longue durée comme les vérifications de validité et l'ingestion NHI (queues : background_validity_check, update_sources_state, nhi_ingestion, hmsl, core_long, sources_long, incidents_long, ml_backpopulate, endpoints).
Workerworker-automatic-severitiesWorker dédié au calcul automatique des sévérités (queue : automatic_severities). 1 réplique par défaut, autoscaling jusqu'à 3.
Workerworker-realtime-odsGère le traitement en temps réel pour les sources non-VCS comme Slack et Jira (queues : realtime_ods, realtime_retry_ods).
Workerworker-long-odsTraite les tâches de longue durée pour les sources non-VCS (queue : long_ods).
Workerworker-long-ods-ioSe concentre sur les tâches de longue durée gourmandes en IO pour les sources non-VCS (queue : long_ods_io).
Workerworker-scanners-odsExécute les scans historiques non-VCS pour Jira, Confluence, etc. (queue : ods_scan).
Workerworker-scanners-ods-highdiskGère les tâches à fort stockage pour les sources non-VCS (queue : ods_scan_highdisk).
Workerworker-scanners-slackExécute les scans historiques Slack (queue : slack_scan).
Workerworker-container-registriesGère le scan de secrets dans les Container registries (queue : container_registries).
Workerworker-business-contributionGère les tâches de contribution business (queue : business_contribution).
Workerworker-ml-api-priorityPriorise les tâches liées à l'API de Machine Learning (queue : ml_api_priority).
Jobinapp-analyticsCalcule les métriques et agrège les données pour les dashboards Advanced Analytics.
Jobpre-deployJob de pré-déploiement effectuant les migrations de base de données
Jobpost-deployJob de post-déploiement effectuant les migrations longues de données
ReplicatedreplicatedGestion des licences et collecte des données d'utilisation
ReplicatedkotsadmConsole d'administration KOTS (installation basée sur KOTS uniquement)
info

Nous avons défini un TTL (Time To Live) de 30 jours pour les jobs pre-deploy et post-deploy afin de permettre la récupération des logs si nécessaire. Il est recommandé de ne pas supprimer ces pods, car ils peuvent être utiles pour le dépannage.