Cloud Azure et DevOps
Infrastructure as code, pipelines qui déploient plusieurs fois par jour, base de sécurité en refus par défaut et facture qui reste prévisible. C’est ainsi que nous construisons un parc cloud, et ainsi que nous exploitons le nôtre.
Le travail DevOps lui-même
- Pipelines. Build, tests, analyse de sécurité et déploiement dans GitHub Actions, avec des identifiants fédérés au lieu de secrets stockés et chaque action épinglée par hash.
- Infrastructure as code. Terraform pour tout, relu sous forme de plan avant application, avec une détection de dérive planifiée qui signale ce que quelqu’un a modifié à la main.
- Livraison de la base de données. Modifications de schéma sous forme de migrations versionnées exécutées dans le pipeline : un déploiement qui livre du code sans son schéma ne peut pas se produire.
- Supervision et alertes. Journaux, métriques et traces dans un seul espace de travail, avec des alertes qui n’atteignent une personne que lorsqu’un développeur peut agir.
- Maîtrise des coûts. Niveaux dimensionnés au plus juste, tarification à la consommation là où la charge est irrégulière, et une facture mensuelle que quelqu’un lit réellement.
Avec quoi nous construisons
Chaque ressource est déclarée dans Terraform et déployée depuis GitHub Actions avec des identifiants fédérés. Rien n’est monté à coups de clics dans un portail, ni sur nos parcs ni sur les vôtres.
Calcul
Azure Functions sur le worker isolé .NET 10 pour l’API et 40 tâches planifiées ; des Container Apps Jobs exécutent les déploiements de base de données et les migrations EF Core.
Données
Azure SQL avec sécurité au niveau des lignes et colonnes Always Encrypted sous des clés gérées par le client dans Key Vault ; Blob Storage pour les documents et les PDF signés.
Front ends
Deux Static Web Apps, le portail et ce site, tous deux servis avec une Content Security Policy stricte et prérendus là où les robots d’indexation ont besoin de HTML.
Identité
Entra ID pour les personnes et les groupes, identités managées affectées à l’utilisateur pour chaque charge de travail, OIDC depuis GitHub Actions. Aucun identifiant de longue durée dans le pipeline.
Observabilité
Application Insights et Log Analytics avec des règles d’alerte qui atteignent l’équipe sous forme de messages Teams. Seuls les signaux sur lesquels un développeur peut agir deviennent des alertes.
Gouvernance
Politiques au niveau des groupes de ressources, verrous de gestion, protection contre la purge et paramètres de diagnostic, le tout déclaré dans Terraform avec la raison à côté de chaque règle.
Discipline des coûts
Nos principes d’ingénierie classent les priorités dans un ordre fixe : le coût d’abord, puis la sécurité, puis la modernité, puis la performance. Un plafond de coût est fixé avant de dessiner l’architecture, et chaque décision de conception est confrontée à lui. Concrètement, cela donne une tarification à la consommation plutôt que des serveurs toujours allumés là où la charge est irrégulière, un niveau de base de données dimensionné au plus juste plutôt que celui que recommande l’éditeur, et des alertes construites à partir de services déjà inclus dans l’abonnement au lieu d’un produit d’astreinte payant.
Base de sécurité
- Les pare-feu refusent par défaut ; SQL n’est joignable que depuis le sous-réseau des Functions.
- Les secrets n’existent que dans Key Vault et sont lus via des identités managées.
- Les colonnes personnelles et financières sont en Always Encrypted : même un administrateur de base de données ne peut pas les lire.
- Les actions et les images de conteneurs sont épinglées par hash ; les mises à jour de dépendances arrivent sous forme de pull requests relues, et un avis de sécurité est une mise à jour inconditionnelle.
- CodeQL s’exécute à chaque push, les plans Terraform sont validés avant application, et la dérive est détectée selon un calendrier.
Nos références cloud
Plus de 20 pipelines CI/CD construits, des versions toutes les deux semaines transformées en déploiements quotidiens, un délai de mise en production ramené de quatre heures à 25 minutes, des dépenses Azure réduites de 30 % sur une plateforme. Chiffres issus de notre historique de livraison.
Nous recrutons pour cela, nous n’improvisons pas
Le DevOps est un rôle pour lequel nous recrutons délibérément : notre historique d’offres comprend un ingénieur DevOps et un évaluateur technique DevOps dédié, de sorte que les candidats sont évalués par quelqu’un qui fait le travail plutôt que par un généraliste qui lit une checklist.
Vous voulez votre parc Azure en code, avec une facture plus légère ?
Envoyez un accès en lecture à votre abonnement ou une description de ce qui tourne où. Vous recevez une évaluation écrite et un plan sous un jour ouvré.