Organiser les blueprints entre les différents niveaux
| Blueprint tier | Quand l’utiliser | Exemples |
|---|---|---|
| Enterprise | Par défaut pour toute configuration partagée | Python 3.12, Node 20, Go 1.22, Rust, scanners de sécurité, certificats d’autorité de certification d’entreprise, CLI internes, configuration du proxy, jetons de registre partagés |
| Organization | Uniquement lorsqu’un élément ne doit pas s’appliquer à toutes les orgs | Un registre privé propre à une équipe, des outils réservés à certaines équipes, une configuration de linting spécifique à l’org |
| Repository | Configuration par repo qui s’exécute dans le répertoire du repo | npm install, uv sync, éléments de Knowledge spécifiques au repo, fichiers .envrc au niveau du repo |
Utilisez les éléments de Knowledge au bon niveau
- Knowledge d’entreprise : normes de code à l’échelle de l’entreprise, exigences de revue de sécurité, liens vers la documentation interne.
- Knowledge de l’organisation : conventions de la Team, modèles d’utilisation des bibliothèques partagées, procédures de déploiement propres à l’équipe.
- Knowledge du repo : commandes de lint, de test et de build pour le projet spécifique.
Gestion des secrets à grande échelle
Où définir les secrets
| Secret scope | À utiliser pour | Exemples |
|---|---|---|
| Entreprise | Identifiants partagés entre toutes les organisations | Tokens de registre internes, authentification au proxy d’entreprise, clés d’API partagées pour les services internes |
| Organisation | Identifiants propres à la Team | Clés de déploiement de la Team, tokens d’API pour les services de la Team, authentification au registre propre à la Team |
| Dépôt | Identifiants propres au dépôt | Clés d’API par projet, comptes de service propres au projet |
Hygiène des secrets
- Ne mettez jamais de secrets dans le YAML. Utilisez toujours l’interface de gestion des secrets. Les secrets placés dans le YAML se retrouvent dans les logs, les artefacts de build et les journaux d’audit.
- Renouvelez régulièrement les secrets. Lorsque vous renouvelez un secret dans l’interface, la nouvelle valeur prend effet au build suivant. Aucune modification du blueprint n’est nécessaire.
- Utilisez des noms explicites.
INTERNAL_NPM_TOKENest préférable àTOKEN_1. Les autres administrateurs (et vous-même plus tard) doivent comprendre à quoi sert chaque secret. - Auditez l’utilisation des secrets. Passez régulièrement en revue les secrets existants et vérifiez s’ils sont toujours nécessaires. Supprimez les secrets inutilisés pour réduire votre surface d’attaque.
Si un secret d’org et un secret Enterprise portent le même nom, le secret d’org l’emporte. Il en va de même pour les secrets de repo qui remplacent les secrets d’org. Utilisez ce mécanisme en connaissance de cause. Par exemple, une org peut remplacer le
token de registre Enterprise par un token spécifique à une équipe disposant d’autorisations différentes.
Suivi de l’état des builds
Établir un rythme de revue
- Builds en échec : échecs critiques dans des blueprints Enterprise ou d’org qui bloquent tous les repos.
- Builds partiels : certains repos échouent. C’est souvent le signe d’un problème de dépendance ou d’un blueprint obsolète.
- Builds obsolètes : orgs dont le build le plus récent est anormalement ancien, ce qui peut indiquer une file d’attente des builds bloquée.
Réagir aux échecs du blueprint Enterprise
- Évaluez l’ampleur de l’impact. Vérifiez combien d’orgs sont affectées sur la page Rollout.
- Rétablissez le blueprint Enterprise au dernier blueprint connu comme fonctionnel. Enregistrez immédiatement. Cela active des rebuilds sur toutes les orgs affectées.
- Isolez l’investigation. Testez vos modifications sur une seule org pilote avant de les redéployer.
Les builds partiels sont un indicateur
- Un problème de dépendance spécifique à un repo (fichier de verrouillage corrompu, package supprimé)
- Une bibliothèque système manquante dont un seul projet a besoin
- Un blueprint obsolète qui n’a pas été mis à jour pour refléter les modifications du repo
Quand épingler des builds
Bonnes raisons d’épingler
- Livraison critique en cours. Vous avez besoin d’un environnement stable, dont le bon fonctionnement est confirmé, pour les 48 prochaines heures pendant le déploiement d’une version.
- Débogage actif. Vous enquêtez sur un problème de build et ne voulez pas que des mises à jour automatiques modifient votre environnement.
- Retour à la version précédente. Un nouveau build a introduit une régression et vous devez revenir immédiatement à la version précédente le temps de corriger le blueprint.
Mauvaises raisons d’épingler
- Éviter de corriger le problème. Si un build est cassé, corrigez le blueprint. L’épinglage masque le problème et, comme il n’expire pas automatiquement, un épinglage oublié peut vous laisser sur un environnement obsolète indéfiniment.
- « Au cas où. » Les mises à jour automatiques gardent les dépendances à jour et détectent les problèmes rapidement. Les désactiver sans raison spécifique ne fait que retarder les problèmes.
Migration de votre entreprise
Modèles d’architecture courants
Organisations en monorepo
npm install dans le répertoire frontend, uv sync dans le répertoire backend) dans le blueprint du repo. Le blueprint de l’org n’est nécessaire que si cette org a des outils ou une configuration qui ne doivent pas s’appliquer aux autres orgs.
Organisations multi-repos
maintenance et knowledge. Cela évite de dupliquer les commandes de configuration d’un repo à l’autre.
Configuration : une org de plateforme ou DevOps qui fournit des services partagés utilisés par d’autres équipes.
Approche : le blueprint Enterprise couvre la base commune. Le blueprint de l’org d’infrastructure partagée installe les outils spécifiques à la plateforme (Terraform, kubectl, CLI cloud) dont ses repos ont besoin. Les autres orgs n’ont pas ces outils. Elles reçoivent uniquement ce qui se trouve dans le blueprint Enterprise, ainsi que leur propre configuration d’org.
Orgs de projet isolées
En cas de doute, placez-le dans le blueprint Enterprise. Si une org a une raison spécifique d’exclure quelque chose (versions d’outils incompatibles, accès restreint), elle peut le remplacer au niveau de l’org. Il est
plus simple d’avoir un socle d’entreprise complet que de dupliquer la configuration dans de nombreux blueprints d’org.
