In diesem Abschnitt werden den Entwicklern, die noch keine Cloud-Anwendungen geschrieben haben, einige operative Konzepte und Aufgaben vorgestellt.
Die Überwachung ist für ‚skalierbare‘ Cloud-Anwendungen unerlässlich. Sie müssen wissen, wie viele Anfragen kommen und die Auswirkungen, die diese Anfragen auf verschiedene Dienste haben. Sie müssen genügend Informationen haben, um festzustellen, ob ein anderer Worker oder ein API-Dienst wie folgt ausgegeben werden soll: doc: /scaling_out.
Zusätzlich zu dieser Art der Überwachung sollten Sie die Verfügbarkeitsüberwachung berücksichtigen. Obwohl Ihre Anwendung sich nicht um einen gescheiterten Worker kümmern sollte, sollte sie es bei einen fehlgeschlagenen Datenbankserver tun.
Verwenden Sie das Health Endpoint Monitoring Pattern <https://msdn.microsoft.com/en-us/library/dn589789.aspx> um funktionale Prüfungen innerhalb Ihrer Anwendung zu implementieren, sodass externe Werkzeuge über exponierte Endpunkte in regelmäßigen Abständen zugreifen können.
So wie Sie Informationen über einen Nicht-Cloud-Server sichern, müssen Sie nicht reproduzierbare Informationen wie Informationen über einen Datenbankserver, einen Dateiserver oder in Anwendungsprotokolldateien sichern. Nur weil etwas in der Cloud ist, bedeutet das nicht, dass die zugrunde liegenden Hardware oder Systeme nicht ausfallen können.
OpenStack bietet ein paar Tools, die es einfach machen, Daten zu sichern. Wenn Ihr Provider OpenStack Object Storage anbietet, können Sie mit seinen API-Aufrufen und CLI-Tools mit Archivdateien arbeiten.
Sie können auch die OpenStack-API verwenden, um Snapshots von laufenden Instanzen und persistenten Volumes zu erstellen. Weitere Informationen finden Sie in Ihrer SDK-Dokumentation.
Zusätzlich zur Konfiguration von Backups, überprüfen Sie Ihre Richtlinien über das, was Sie sichern und wie lange, um jedes gesicherte Element zu behalten.
`Phoenix-Servern <http://martinfowler.com/bliki/PhoenixServer.html> `_, benannt nach dem mythischen Vogel, der vom Feuer verbrannt wird und von der Asche aufsteigt, um wieder zu leben, macht es leicht, mit neuen Instanzen zu starten.
Anwendungsentwickler und Betreiber, die Phoenix-Server verwenden, haben Zugriff auf Systeme, die aus einer bekannten Baseline aufgebaut werden, wie z. B. einer bestimmten Betriebssystemversion und einem Tool, das ein System automatisch aufbaut, installiert und konfiguriert.
Wenn Sie Ihre Anwendung regelmäßig bereitstellen, können Sie Ausfälle lösen und Sicherheitsupdates ohne manuelle Eingriffe erstellen. Wenn ein Ausfall auftritt, können Sie mehr Ressourcen in einer anderen Region bereitstellen. Wenn Sie Sicherheitslücken beheben müssen, können Sie zusätzliche Compute-Knoten bereitstellen, die mit der aktualisierten Software erstellt wurden. Anschließend können Sie anfällige Knoten beenden und den neuen Instanzen automatisch versagen.
Wenn eine Anwendungsinstanz kompromittiert wird, werden alle Instanzen mit demselben Abbild und der Konfiguration wahrscheinlich dieselbe Sicherheitsanfälligkeit erleiden. Der sicherste Weg ist, das Konfigurationsmanagement zu verwenden, um alle Instanzen neu zu erstellen.
Konfigurationsmanagement-Tools wie Ansible, Chef und Puppet ermöglichen es Ihnen, genau zu beschreiben, was zu installieren und zu konfigurieren auf einer Instanz. Mit diesen Beschreibungen implementieren diese Werkzeuge die Änderungen, die erforderlich sind, um in den gewünschten Zustand zu gelangen.
Diese Tools reduzieren den Aufwand, den es braucht, um mit einer großen Anzahl von Servern zu arbeiten, und verringert auch die Fähigkeit, Anwendungen neu zu erstellen, zu aktualisieren, zu verschieben und zu verteilen.
Wie stellen Sie Ihre Anwendung bereit? Zum Beispiel, ziehen Sie den neuesten Code aus einem Quellcode-Repository? Machen Sie gepackte Releases, die sich selten aktualisieren? Führen Sie zufällige Tests in einer Entwicklungsumgebung durch und ersetzen Sie sie nur nach größeren Änderungen ein?
Einer der neuesten Trends in der skalierbaren Cloud-Anwendung ist die ‚kontinuierliche Integration‘ <http://en.wikipedia.org/wiki/Continuous_integration> `` und `kontinuierliche Bereitstellung <http://en.wikipedia.org/wiki/Continuous_delivery> `_ (CI / CD).
CI/CD bedeutet, dass Sie immer Ihre Anwendung testen und häufige Bereitstellungen zur Produktion machen.
In diesem Tutorial haben wir die neueste Version unserer Applikation aus der Quelle heruntergeladen und auf einem Standardabbild installiert. Unser magisches Installationsskript aktualisiert auch das Standardabbild, um die neuesten Abhängigkeiten zu haben, die Sie benötigen, um die Anwendung auszuführen.
Ein weiterer Ansatz ist es, ein ‚goldenses‘ AbBild zu erstellen, das Ihre Anwendung und ihre Abhängigkeiten vorinstalliert. Ein ‚goldenes‘ Abbild ermöglicht schnellere Boot-Zeiten und mehr Kontrolle über das, was auf der Instanz ist. Allerdings, wenn Sie ‚goldene‘ Abbiler verwenden, müssen Sie einen Prozess haben, um sicherzustellen, dass diese Abbilder nicht bei Sicherheits-Updates herunterfallen.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.