Ich habe eine einfache Webanwendung, die auf einer großen Instanz mit EC2 bereitgestellt wird. Ich möchte jetzt den neuesten Code auf diesem Server bereitstellen, aber ich möchte dies auf eine Weise tun, die Ausfallzeiten minimiert und für den Endbenutzer so reibungslos wie möglich ist. Hier ist mein Plan:
- Starten Sie eine weitere große Instanz
- Installieren Sie alle Softwareschichten auf dieser Instanz
- Stellen Sie ein EBS-Laufwerk wieder her und hängen Sie es an die Instanz an
- Stellen Sie unseren neuesten produktionsbereiten Code auf der neuen Instanz bereit
- Führen Sie alle Tests aus (einschließlich manueller Tests der Anwendung).
- (Wenn die Tests bestanden wurden) Setzen Sie auf der Live-Site einen Hinweis "Site Under Maintenance".
- Sichern Sie die EBS-Instanz auf der Live-Site
- Trennen Sie die EBS-Instanz vom neuen Server und ersetzen Sie sie durch die neueste Sicherung
- Verwenden Sie die ec2-Associate-Adresse, um die IP-Adresse auf die neue Instanz zu verschieben
- Lehnen Sie sich zurück und warten Sie, bis der Datenverkehr durch die neue Instanz fließt
- Beenden Sie die alte Instanz
Scheint dies eine gute Strategie zu sein? Gibt es Tutorials oder Bücher, die dieses Thema behandeln könnten? Ich habe bereits Cloud Application Architectures von George Reese gelesen, ein ausgezeichnetes Buch, das jedoch nicht die Bereitstellung abdeckt. Außerdem weiß ich, dass es Tools wie RightScale oder enStratus gibt, die ich verwenden kann, wenn ich mehr als eine Instanz verwende.