fragen stichworte

Wenn Sie den RDS-Endpunkt einer AWS Beanstalk-Instanz nicht ändern können, wie führen Sie eine blau / grüne Bereitstellung durch?

Soweit ich das beurteilen kann, kann man den Amazon RDS (RDS) -Endpunkt einer vorhandenen Elastic Beanstalk (EB) -Instanz nicht ändern.

Wenn dies der Fall ist, können Sie Ihren Code nicht auf einem Stage-Server (Stage-DB) testen lassen und dann die Prod-DB verwenden.

Wie stellen Sie die Bereitstellung bereit, ohne mit dem Produkt-Db testen zu müssen?

In Anbetracht von Prod und Stage dachte ich, die Strategie würde ungefähr so ​​aussehen:

  • Snapshot-Produkt-RDS
  • Phase mit neuem Code erstellen und auf den Schnappschuss zeigen
  • QA-Stufe
  • Zeigen Sie die Etappe an, um RDS zu testen
  • Ändern Sie den Lastausgleich so, dass Datenverkehr an die Bühne gesendet wird

antworten

Ich bin nicht mit Bohnenstange vertraut, also nehmen Sie das mit einem Körnchen Salz.

Wie ich es verstehe, funktioniert eine A/B-Bereitstellungsstrategie so:

  1. A ist in prod.
  2. B ist im Staging.
  3. Stellen Sie auf B ein, bis Sie es mögen.
  4. Mach B Prod, wende A zur Bühne.
  5. GOTO 1

Datenbanken sind furchtbar statusbehaftet, und es ist nicht gut, sie so zu tauschen. Wie ich es gesehen habe, wird Schritt 3 dort oben gemacht wie ...

  1. Snapspot A-prod in B.
  2. Führen Sie Migrationen auf B.
  3. aus
  4. Führen Sie Testreihen aus, um zu bestätigen, dass sie funktionieren.
  5. Wenn Tests fehlschlagen, GOTO 1 und wiederholen. Sonst, fahre fort.
  6. Bei der B-Cluster-Heraufstufung sollten Sie bekanntermaßen gute Migrationsschritte auf die prod-Datenbank anwenden.

Der knifflige Teil ist hier die Indizierung der Datenbank. Dazu empfehle ich Route53. Während des Bereitstellungsprozesses:

  1. Stoppen Sie alle Testaktivitäten und aktualisieren Sie den B-Cluster.
  2. Aktualisieren Sie den B-Database-Datensatz, um auf die Prod-Datenbank zu zeigen.
  3. Führen Sie während der Bereitstellung Ihre Migrationen aus.
  4. Bringe den B-Cluster in prod, der den jetzt aktualisierten Cluster verwendet.
  5. Stoppen Sie den A-Cluster.
  6. Aktualisieren Sie den A-Datenbank-Datensatz, um auf Staging zu zeigen.
  7. Snapshot prod auf die Testdatenbank.

Sie bekommen die Idee.