Das Applikationen für die Cloud neu entwickelt werden müssen ist kein Geheimnis. Dennoch zeigen Ausfälle bei populären Anbietern, dass so manche Architekturen nicht das wirkliche Potential von Cloud Infrastrukturen ausnutzen. Cloud Management Plattform Anbieter Rightscale hat hierzu eine Blogserie veröffentlicht, die zeigt, worauf man achten sollte, wenn eine Anwendung in der Cloud betrieben wird.
Applikationen müssen für die Cloud entwickelt werden
Man muss verstehen, dass Cloud Computing viel mehr bedeutet, als nur ein paar Server zu nutzen und miteinander zu verbinden. Es geht um die gesamte Architektur des eigenen Systems bzw. der eigenen Anwendung, die auf der virtuellen Infrastruktur (IaaS) aufgebaut wird. Wie ich schon in einem Artikel für die Computerwoche geschrieben habe:
Viele Unternehmen entwickeln ihre Cloud-Applikation “daheim” in den eigenen vier Wänden. Erst nach der Fertigstellung soll der Rollout auf eine Cloud-Infrastruktur oder Cloud-Plattform erfolgen. Das ist ein Fehler.
Inbesondere IaaS-Umgebungen (Infrastructur as a Service) wie die Amazon Web Services oder Microsoft Windows Azure vermitteln den Eindruck, nur eine Vielzahl von virtuellen Maschine bereitzustellen. Den Rest übernehme die “Cloud automatisch”. Das ist fatalerweise auch der Tenor, der von vielen Medien verbreitet wird und damit ein völlig falscher Eindruck von einer Cloud entsteht.
Eine Cloud-Anwendung ist nur so viel wert wie die Architektur, auf der sie basiert. Eine Anwendung muss direkt für die Cloudentwickelt werden – Skalierbarkeit und Hochverfügbarkeit sind von Beginn an mit zu bedenken. Eine Anwendung sollte eigenständig weitere virtuelle Maschinen hochfahren können, wenn mehr Leistung benötigt wird (Skalierbarkeit) bzw. die nicht mehr benötigten virtuellen Maschinen auch selbstständig wieder herunterfahren. Genauso verhält es sich, wenn eine virtuelle Maschine in einen fehlerhaften Zustand gerät. Auch hier muss die Anwendung selbst dafür sorgen, dass entsprechend eine virtuelle Maschine als Ersatz hochgefahren wird und die defekte Maschine aus dem System verschwindet (Hochverfügbarkeit).
Die Anwendung muss daher in der Lage sein, auf jeder beliebigen virtuellen Maschine (VM) einer Cloud-Infrastruktur zu funktionieren. Das liegt unter anderem daran, dass jederzeit eine VM ausfallen kann und eine andere neu hochgefahren werden muss. Und auch die Daten, auf die eine Anwendung operiert, befinden sich zwangsläufig nicht mehr an einem einzigen Ort, sondern sind über die Cloud verteilt gespeichert.
Rightscale: Architektur skalierbarer Applikationen in der Cloud
Rightscales Services Architect Brian Adler hat eine Blogserie (vier Beiträge) veröffentlicht, in der er recht detailliert beschreibt, wie die Architektur einer Applikation in der Cloud aussehen sollte.