Déploiement

Déploiements sans coupure

Publiez chaque version derrière des contrôles de santé et revenez en arrière en un clic.

Logs de déploiement
  • 10:12:00build 1042 démarré
  • 10:13:01image publiée en 21 s
  • 10:14:023 instances lancées
  • 10:15:03santé 200 sur 3/3
  • 10:16:04trafic basculé vers 1042
  • 10:17:05build 1041 drainé
  • 10:18:06build 1042 en ligne
  • 10:19:07GET /api/orders 200
  • 10:12:08build 1042 démarré
  • 10:13:09image publiée en 21 s
  • 10:14:003 instances lancées
  • 10:15:01santé 200 sur 3/3
  • 10:16:02trafic basculé vers 1042
  • 10:17:03build 1041 drainé
  • 10:18:04build 1042 en ligne
  • 10:19:05GET /api/orders 200

Requêtes

Déployez un vendredi après-midi

Les nouvelles versions ne reçoivent du trafic qu'une fois saines, et les anciennes restent prêtes jusqu'à la fin de la bascule.

  • Déploiements contrôlés

    Le trafic ne bascule qu'une fois que les nouvelles instances ont passé votre contrôle de santé.

  • Drainage en douceur

    Les requêtes en cours se terminent sur l'ancienne version avant son arrêt.

  • Retour arrière en un clic

    Revenez instantanément à n'importe quel build précédent, sans rien recompiler.

  • Commandes de pré-déploiement

    Lancez vos migrations ou le préchauffage du cache avant toute bascule du trafic.

Le déroulé d'un déploiement

Chaque push suit la même séquence sécurisée, du build à la mise en ligne.

  • Git push
  • Build
  • Migration
  • Mise en ligne

Configuration

Ajustez le déploiement

Définissez un chemin de contrôle de santé, une commande de pré-déploiement et la durée de drainage des anciennes instances.

  • Chemin et délai du contrôle de santé personnalisables
  • Migrations avant la bascule du trafic
  • Retour arrière depuis la CLI ou le tableau de bord
          
            
                1
                services:
              
                2
                  - type: web
              
                3
                    name: storefront
              
                4
                    healthCheckPath: /healthz
              
                5
                    preDeployCommand: npm run db:migrate
              
                6
                    deploy:
              
                7
                      drainSeconds: 30
              
                8
                      maxSurgePercent: 100
              
          
        

Pourquoi les déploiements cassent, et comment nous l’évitons

La plupart des pannes pendant une mise en production viennent de l’intervalle entre l’arrêt de l’ancienne version et le démarrage de la nouvelle, ou d’une nouvelle version qui démarre sans parvenir à servir les requêtes. Les déploiements sans coupure suppriment cet intervalle : l’ancienne version continue de répondre jusqu’à ce que la nouvelle ait prouvé qu’elle est saine.

Ce qui se passe à chaque déploiement

Aucune configuration n’est nécessaire pour bénéficier de déploiements sûrs. Un contrôle de santé par défaut s’exécute sur chaque service web, et vous pouvez le diriger vers votre propre endpoint pour une vérification plus stricte.

  • Les nouvelles instances démarrent avant l’arrêt des anciennes
  • Le trafic ne bascule qu’après la réussite des contrôles de santé
  • Un déploiement en échec ne reçoit jamais de trafic

Revenir en arrière

Chaque build réussi est conservé comme cible de retour arrière. Revenir en arrière redirige le trafic vers une image existante : cela prend quelques secondes au lieu d’un build complet. Les migrations de base de données ne sont pas annulées automatiquement, veillez donc à ce qu’elles restent rétrocompatibles.

Offre gratuite · Sans carte bancaire

Poussez votre code aujourd'hui. En ligne avant que votre café refroidisse.

Connectez un dépôt, choisissez une région et obtenez une URL de production avec HTTPS, logs et autoscaling déjà activés.

$ git push origin main

  1. Build34 s
  2. Déploiement12 s
  3. Contrôles de santé3 s

your-app.example.com

Buy NowTheme Details