Site Reliability Engineer (SRE)
Ubisoft Montréal, Montréal (Canada), hybride
déc. 2024 – aujourd'hui
Perforce Backup System →
Infrastructure distribuée · Restic · ~200 instances · ~1,3 PB
- Comparé Kopia et Restic sur trois projets de production représentatifs ; les temps de restauration, plutôt que la seule fenêtre de sauvegarde, ont guidé la recommandation Restic validée par la direction.
- Perforce est le système de gestion de versions utilisé pour les fichiers volumineux de production des jeux. Conçu une infrastructure distribuée de sauvegarde et de reprise pour ~200 instances Perforce (~1,3 PB de données sources, ~940 To sauvegardés), avec planification et exécution par instance, un dépôt Restic et un conteneur Azure par instance pour limiter l'impact d'un dépôt défaillant.
- Chef génère les profils Resticprofile et timers systemd depuis la configuration déclarée ; validation des chemins réels, alertes sur les échecs consécutifs et accès à Vault via Azure Arc Managed Identity facilitent l'exploitation sans identifiant Azure persistant sur les serveurs.
- Piloté la mise en production, puis la passation à l'équipe Ops avec runbooks et guide de restauration ; la solution a réduit les coûts de sauvegarde d'environ 87 %, soit un ordre de grandeur de 1 M$US/an.
Perforce Backup Replication →
Azure Functions · Python · ~940 To · Disaster Recovery
- Conçu une copie indépendante d'environ 940 To de sauvegardes sur deux paires de régions Azure (4 régions), avec synchronisation mensuelle des écarts et gestion des niveaux Cool/Archive.
- Durable Functions conserve l’état d’orchestration des cycles pouvant durer plusieurs jours ; le nombre de transferts AzCopy simultanés est limité, et le découpage en shards avec checkpoints permet une reprise partielle. Les dépôts verrouillés sont remis en file.
- Le runtime s'authentifie via Managed Identity, la CI/CD via OIDC ; Terraform et GitLab CI/CD déploient le pipeline, couvert par des tests unitaires et des scénarios Azurite.
- Comparé GRS à une réplication applicative indépendante, moins coûteuse pour ce périmètre, au prix d’un pipeline spécifique à tester, superviser et maintenir.
Workflow de reprise
GitLab CI/CD · Azure Blob Storage · Disaster Recovery
- Processus GitLab CI/CD préparant la restauration d'une instance depuis le stockage répliqué : réhydratation Archive si nécessaire, transfert du repository vers un compte de stockage dédié, puis restauration de l'instance Perforce avec Restic.
Migration db-backup vers Azure
Azure Blob Storage · Kubernetes · AKS
- Migré le stockage db-backup d'OpenStack vers Azure Blob Storage, puis la plateforme Kubernetes vers AKS via l'infrastructure Kubernetes interne Ubisoft, avec adaptation de l'API et des composants Kubernetes.
Méthode de travail
Claude Code · Architecture · Critères d'acceptation · Revues ciblées
- Pour Perforce Backup System et Replication, j'ai défini l'architecture, les contraintes et les critères d'acceptation, puis utilisé Claude Code comme coding agent pour l'implémentation, les tests et la documentation, avec des revues ciblées et une validation avant la mise en production.