5 votes

Si vous ne pouvez pas modifier le point de terminaison RDS d'une instance AWS Beanstalk, comment procéder à un déploiement bleu/vert ?

D'après ce que j'ai compris, il n'est pas possible de modifier le point de terminaison Amazon RDS (RDS) d'une instance Elastic Beanstalk (EB) existante ?

Si c'est le cas, votre code ne peut pas être déployé sur un serveur d'étape, une base de données d'étape, testé, puis promu pour utiliser la base de données de production ?

Comment déployer une étape sans avoir à tester la base de données de production ?

Compte tenu de la production et de l'étape, je pensais que la stratégie serait à peu près la suivante :

  • Snapshot prod RDS
  • Créer une scène avec le nouveau code et la diriger vers l'instantané
  • Phase d'assurance qualité
  • Point stage to prod RDS
  • Modifier l'équilibreur de charge pour envoyer le trafic à l'étape

0voto

sysadmin1138 Points 129885

Je ne connais pas Beanstalk, alors prenez cette information avec un grain de sel.

Si j'ai bien compris, une stratégie de déploiement A/B fonctionne à peu près comme suit :

  1. A est dans prod.
  2. B est en phase de mise en place.
  3. Déployer en B jusqu'à ce que cela vous convienne.
  4. Faire de B Prod, en transformant A en Stage.
  5. GOTO 1

Les bases de données sont terriblement statiques et ne supportent pas bien ce type d'échange. D'après ce que j'ai vu, l'étape 3 est faite un peu comme...

  1. Snapspot A-prod dans B.
  2. Exécuter les migrations sur B.
  3. Exécutez une série de tests pour valider le fonctionnement.
  4. Si les tests échouent, GOTO 1 et répéter. Sinon, continuer.
  5. Pendant la promotion du cluster B, appliquer les étapes de migration connues à la base de données prod.

La partie délicate est l'indirection de la base de données. Pour cela, je suggère d'utiliser Route53. Pendant le processus de déploiement :

  1. Arrêter toutes les activités de test et mettre à jour le code du groupe B.
  2. Mettre à jour l'enregistrement de la base de données B pour qu'il pointe vers la base de données prod.
  3. Pendant le déploiement, exécutez vos migrations.
  4. Intégrer le cluster B dans le cluster prod, qui utilisera le cluster mis à jour.
  5. Arrêter le groupe A.
  6. Mettre à jour l'enregistrement de la base de données A pour qu'il pointe vers Staging.
  7. Snapshot prod sur la base de données de test.

Vous l'aurez compris.

0voto

Aeterno Points 31

Comme je peux le voir, votre idée est le flux de travail CI/CD. En utilisant AWS Beanstalk, vous pouvez faire cette chose (votre idée) en utilisant la fonction env.yml . Ici, dans environ le env.yml autres lectures https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html

J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X