Ich muss zugeben, inzwischen hasse ich den Begriff Cloud. Inzwischen ist es ein Buzz Word, dass jeder in den Mund n�mmt. Das ist wie damals mit .NET. Auf einmal muss alles in der Cloud sein, notfalls macht man diese dann einfach privat. Aber was bedeutet das �berhaupt? Und welche Rolle spielen hierbei die Begriffe SaaS, IaaS und PaaS? Wo pa�t Windows Azure hinein?
Also vielleicht zuerst zu SaaS ? Software as a Service. Software wird auf einer Web-Plattform zur Verf�gung gestellt. Kostenlos oder im Mietmodell �ber monatliche Abrechnung. Im einfachsten Fall ist das eine Web-Applikation. Beispiele sind Google Apps, SalesForec Sales Cloud oder Microsoft Office Web Apps bzw. CRM Online, also Applikationen, mit denen Dokumente erstellt oder Daten erfa�t und bearbeitet werden k�nnen. Die Ablage der Dokumente oder Daten liegt oftmals ebenfalls in der Cloud.
Als Infrastructure as a Service (IaaS) bezeichnet man die M�glichkeit, eigene Virtuelle Maschinen in einem zentralen Rechenzentrum zu hosten. Man nimmt i.d.R. eine vorgefertigte VM mit dem Betriebssystem seiner Wahl (der Dienstleister unterst�tzt normalerweise nur bestimmt Versionen), installiert seine Services oder Anwendungen und betreibt das Ganze in einem zentralen Rechenzentrum. F�r Updates der Virtuellen Maschinen ist der Betreiber (also Sie) zust�ndig. Das Paradebeispiel hierf�r ist Amazon mit EC2 (Elastic Compute Cloud ).
Der Unterschied zum klassischen Hoster ist die Verf�gbarkeit von globalen Services, wie Storage, Message Queues, relationales Datenbankservices und �hnlichem sowie Mechanismen zum automatischen Skalieren (bei Bedarf werden neue Instanzen meiner VM automatisch hochgefahren [Elastic BeansTalk bei Amazon]).
Zu Guter Letzt PaaS ? Platform as a Service. Hier ist der Abstraktionsgrad h�her als bei IaaS, weil es eine Art Betriebssystem �ber den vielen einzelnen PCs/Blades gibt und die einzelnen virtualisierten Betriebssysteminstanzen verwaltet. Der Entwickler schreibt seine Software also gegen ein Cloud-Betriebssystem und k�mmert sich dort eigentlich nur um die Rollen, in die seine Services/Anwendungen fallen (Web, Worker). Das Cloud-Betriebssystem k�mmert sich um die Ausf�hrung der Anwendung nach den vorgegebenen Eckdaten oder Regeln. Load Balancing, OS-Servicing (Patches, Updates), Desaster Recovery, Fail Over, etc. wird durch die Cloud Platform durchgef�hrt. Desweiteren stehen Komponenten wie Storage (no-SQL like, wie Tables, Blobs und Queues) zur Verf�gung. Manche Anbieter, wie Microsoft, bietet ebenfalls eine relationale Datenbank in der Cloud. PaaS hat immer auch Komponenten von IaaS enthalten, allerdings gekapselt und meist nicht direkt erreich- oder konfigurierbar.
David Chappell hat dazu einmal eine sehr aussagekr�ftige Matrix gezeigt, welcher Anbieter mit welchen Services in welcher Rubrik zuhause ist:
Ein typischer Vertreter f�r PaaS ist Microsoft Windows Azure. Es werden von Windows Azure auch weitere Komponenten f�r den Entwickler von Software geboten, die die Kommunikation zwischen dem eigenen Rechenzentrum und den Cloud Services regelt (Azure Connect, Service Bus) oder f�r Sicherheit und Zugriffsrechte (Access Control Service) bzw. Caching (Caching Services) zust�ndig sind. Nicht zu vergessen, die Tools f�r den Software LifeCycle: mit Visual Studio und .NET sind Sie dabei. Aber auch PHP, Ruby, Java, Eclipse, C++ u.a. werden unterst�tzt.
Je weiter man also die Abstraktion voran treibt, um so mehr fallen die Betriebskosten.
Einen guten allgemeinen �berblick �ber Windows Azure bieten folgende gut 7 Minuten Video:
Welche Szenarien sind f�r Windows Azure pr�destiniert? Das sind Anwendungen, die
- massive skalieren sollen
- hochverf�gbar sind
- eine variable Last aufweisen
- eine kurze oder unvorhersehbare Lebenszeit haben
- Daten parallel verarbeiten
- die Realisierung der Ideen von StartUps (fail fast/scale fast) darstellen
- schnell verteilt bzw. zur Verf�gung stehen m�ssen
Das sind einige, sicher aber nicht alle Szenarien f�r eine Cloud Plattform.
No comments:
Post a Comment