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.
| Type | Nom du déploiement | Utilisation |
|---|---|---|
| Front | nginx | Frontend du Dashboard et proxy pour le backend |
| Backend | internal-api | Backend du Dashboard |
| Backend | internal-api-long | Backend du Dashboard (requêtes longues, sans timeout) |
| Backend | public-api | API publique et scans ggshield |
| Backend | hook | Récepteur d'événements webhooks VCS |
| Backend | app-exporter | Exporteur Prometheus pour les métriques applicatives |
| Backend | ml-secret-engine | Moteur de secrets basé sur le Machine Learning |
| Backend | apache-tika | Scanner de fichiers pour le scan des sources non-VCS |
| Scheduler | beat | Planificateur de tâches Celery Beat |
| Worker | worker-worker | Worker 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). |
| Worker | worker-check-runs | Worker 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. |
| Worker | worker-email | Gère les notifications par e-mail et la messagerie (queues : email, notifier). |
| Worker | worker-scanners | Effectue les scans historiques des dépôts (queues : basic_repo_scan, premium_repo_scan, manual_repo_scan, code_fixing). |
| Worker | worker-long | Traite 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). |
| Worker | worker-automatic-severities | Worker dédié au calcul automatique des sévérités (queue : automatic_severities). 1 réplique par défaut, autoscaling jusqu'à 3. |
| Worker | worker-realtime-ods | Gère le traitement en temps réel pour les sources non-VCS comme Slack et Jira (queues : realtime_ods, realtime_retry_ods). |
| Worker | worker-long-ods | Traite les tâches de longue durée pour les sources non-VCS (queue : long_ods). |
| Worker | worker-long-ods-io | Se concentre sur les tâches de longue durée gourmandes en IO pour les sources non-VCS (queue : long_ods_io). |
| Worker | worker-scanners-ods | Exécute les scans historiques non-VCS pour Jira, Confluence, etc. (queue : ods_scan). |
| Worker | worker-scanners-ods-highdisk | Gère les tâches à fort stockage pour les sources non-VCS (queue : ods_scan_highdisk). |
| Worker | worker-scanners-slack | Exécute les scans historiques Slack (queue : slack_scan). |
| Worker | worker-container-registries | Gère le scan de secrets dans les Container registries (queue : container_registries). |
| Worker | worker-business-contribution | Gère les tâches de contribution business (queue : business_contribution). |
| Worker | worker-ml-api-priority | Priorise les tâches liées à l'API de Machine Learning (queue : ml_api_priority). |
| Job | inapp-analytics | Calcule les métriques et agrège les données pour les dashboards Advanced Analytics. |
| Job | pre-deploy | Job de pré-déploiement effectuant les migrations de base de données |
| Job | post-deploy | Job de post-déploiement effectuant les migrations longues de données |
| Replicated | replicated | Gestion des licences et collecte des données d'utilisation |
| Replicated | kotsadm | Console 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.