Une étape dans votre pipeline. Rien d'autre à adopter.

Ce changement est-il vraiment approuvé pour être déployé en production ?

Approvegate est une solution de gestion des changements qui vérifie votre déploiement par rapport à un enregistrement d'approbation signé et à la documentation avant qu'il n'atteigne la production — et le bloque, avec une raison, s'il n'est pas réel.

# étape de déploiement
deploy_ledger-api_prod:
  stage: deploy
  environment:
    name: production
  script:
    - approvegate check
        --service ledger-api
  # SHA + release lus automatiquement —
  # le release vient du tag quand le pipeline
  # s'exécute suite à un push de tag, ex. v2.14.3.
  # les déploiements déclenchés par une branche
  # nécessitent --release explicitement.
  # échoue le job si non approuvé
approvegate check → verdict
BLOQUER

v2.14.3 n'a pas été approuvé pour le déploiement en production. Tickets de déploiement approuvés actifs - www.approvegate.io/team/approvegate/active

exit 1 · pipeline arrêté avant la promotion

Pourquoi ce n'est pas juste une "meilleure protection de branche"

Une revue de code n'est pas une autorisation de déploiement.

La protection de branche vérifie qu'un diff a été revu avant la fusion. Cela ne dit rien sur le fait que cette build soit autorisée à être déployée en production maintenant — selon la politique actuelle, en dehors de tout gel. Approvegate est cette seconde vérification.

"La PR a été revue et fusionnée. Trois semaines plus tard, cette build était dans la file, prête à partir — et personne n'avait ré-autorisé le déploiement."

— revu ≠ autorisé à être déployé
approvegate check · CHG-4471
version
v2.14.3
artefact
sha 9f2a1c…c17b
revue de fusion
réussie · 2 approbations
autorisation de déploiement
manquante · jamais enregistrée
résultat
BLOQUER
Comment c'est construit

Un système connecté. Deux surfaces minces.

Approvegate n'est pas un portail vers lequel vous migrez. C'est une API que votre pipeline appelle, adossée à un registre minimal de qui a approuvé quoi.

01 — la vérification

Paquet CI/CD

Une GitHub Action ou une étape GitLab CI que vous ajoutez à votre job de déploiement existant. Elle appelle l'API Approvegate avec la version de l'artefact et le nom du service — et le pipeline échoue de façon sûre si la réponse est non.

  • Aucune interface à visiter pour les développeurs — c'est une étape de pipeline
  • S'exécute là où vous déployez déjà — GitHub Actions, GitLab CI
  • Échoue avec une raison, pas comme une boîte noire
→ consulte le registre ci-dessous pour décider
02 — le registre

UI d'approbation minimale

Juste assez de surface pour créer une demande de changement liée à un artefact, enregistrer qui l'a approuvée et joindre la politique qui l'a régie. Pas un planificateur de mise en production. Pas un second Jira.

  • Créez un changement, liez-le à un commit ou un digest d'image
  • Enregistrez l'approbation — applique la SoD automatiquement
  • Importez les approbations depuis Jira plus tard — ne le concurrence jamais
À quoi ressemble vraiment la création d'une approbation

Vous approuvez la mise en production. L'artefact se lie lui-même plus tard.

Vous ne connaîtrez pas encore la build exacte — le pipeline n'a pas encore tourné. Approuvez la mise en production et qui est habilité à signer ; l'artefact se verrouille automatiquement dès qu'il est construit. Définissez une expiration, et une approbation périmée ne pourra pas autoriser un déploiement des semaines plus tard sans que personne ne pense à la révoquer.

nouvelle approbation
version / release
v2.14.3
service · environnement
ledger-api · production
approbateur
m.chen
✓ pas le demandeur — SoD respectée
politique
default-prod-approval
valable (optionnel)
7 jours
expire automatiquement — personne n'a besoin de penser à la révoquer
ce que la vérification voit au moment du déploiement
version
v2.14.3
artefact
sha 9f2a1c…c17b · lié à la construction
approuvé_par
m.chen
SoD
réussie
expire
4 jours restants
statut
prêt à déployer

C'est le même contrôle qui aurait détecté la build vieille de trois semaines de tout à l'heure — une approbation expirée ne peut pas autoriser un déploiement, que quelqu'un pense à vérifier ou non.

Si nous sommes en panne, vous n'êtes pas bloqué

Un objectif de disponibilité de 99,99 % — et vous gardez la main sur la dérogation malgré tout.

La vérification nous contacte à chaque déploiement, donc la disponibilité compte — nous construisons et surveillons pour atteindre 99,99 % de disponibilité. Mais un SLA seul ne suffit pas pour un P1. Vous configurez votre propre chemin d'urgence, dans votre propre pipeline, selon vos propres conditions.

99,99 %
objectif de disponibilité
  • Deux façons d'avancer vite : contourner un seul déploiement, ou ouvrir une fenêtre limitée dans le temps pour tout
  • Les deux sont déclarées, pas modifiées dans le pipeline — rien à penser à annuler
  • Chaque déploiement d'urgence reste journalisé comme une exception, jamais un contournement silencieux
deploy_ledger-api_prod_emergency:
  stage: deploy
  environment:
    name: production
  script:
    - approvegate check
        --service ledger-api
        --release v2.14.4-hotfix
        --force-approve
        --reason "sev1-incident-4821"
  # contourne la vérification standard, journalisé comme déploiement d'urgence
Ou ouvrez complètement la fenêtre — temporairement

Toute urgence n'est pas un seul déploiement. Parfois, ce sont les 12 prochaines heures.

Déclarez une exception limitée dans le temps plutôt que de modifier le pipeline sous pression. Aucun fichier à valider, aucun indicateur à penser à retirer — cela revient à votre politique normale tout seul.

mode correctif d'urgence
portée
main → production, tous les services
politique
tout autoriser — aucune approbation requise
durée
12 heures
raison
sev1-incident-4821 — panne des paiements
déclaré par
s.park
ce qui se passe
fenêtre
maintenant → +12h
expire
automatiquement — revient à default-prod-approval
chaque déploiement
journalisé, étiqueté emergency-window
déclaré_par
s.park
raison
enregistrée
Pour qui c'est vraiment fait

Conçu pour les équipes qui prennent déjà la production au sérieux — et veulent que le processus tienne.

Ceci n'est pas là pour vous convaincre que l'approbation des changements compte. C'est pour les équipes qui le croient déjà, ont déjà un processus, et en ont assez qu'il soit de la paperasse plutôt qu'une protection.

Un bon choix

  • Vous avez déjà un processus d'approbation des changements ou des mises en production et voulez qu'il soit appliqué, pas seulement documenté
  • Suffisamment d'ingénieurs déploient en production pour qu'une seule personne ne puisse pas repérer chaque changement risqué
  • Un auditeur, une revue de sécurité client, ou une politique interne exige déjà une approbation documentée avant les changements en production
  • Vous en avez assez d'un processus qui est de la paperasse plutôt que quelque chose qui arrête vraiment un mauvais déploiement

Pas encore, si…

  • Vous êtes une petite équipe où tout le monde sait déjà exactement ce qui est déployé et pourquoi
  • Personne ne revoit ou n'approuve actuellement les changements avant qu'ils n'atteignent la production
  • Un déploiement non autorisé ou mal configuré ne serait pas un problème sérieux pour vous
  • Vous voulez un endroit pour planifier les mises en production, pas une vérification qui en impose une
Ce qui en découle gratuitement

La piste d'audit n'a jamais été le but. C'est le sous-produit du fait que la vérification soit réelle.

Chaque vérification — autorisée, bloquée ou escaladée — atterrit dans un journal append-only : artefact, approbateur, politique et résultat. Exportez-le quand un évaluateur le demande. Vous n'avez rien fait de plus pour l'obtenir.

Voir un exemple d'export

Intégrez-le dans un job de déploiement. Regardez-le bloquer une vraie chose.

Un petit nombre de partenaires de conception installent le paquet sur un pipeline, un service de production — en conditions réelles, en production ou hors production.

01

Un pipeline

Ajoutez l'Action/l'étape CI à un vrai job de déploiement.

02

Déployez une build en Prod ou Non-Prod

Exécutez la vérification sur un vrai déploiement, où que vous l'exécutiez — un environnement de staging ou directement en production.

03

Vous décidez de la politique

Vous définissez ce que "approuvé" signifie pour votre équipe — nous l'appliquons.

Réserver un appel partenaire de conception

Tell me a little about your team and I’ll follow up to schedule a demo.

Email CJ about a demo

Opens your email app with the subject and message filled in.

Approvegate aide les équipes à appliquer et à documenter les contrôles de changement exigés par leur programme de conformité. Cela ne rend, à lui seul, aucune organisation conforme à PCI DSS, SOX, HIPAA ou à tout autre référentiel. Les interfaces du produit présentées sont illustratives de la version pilote.