Für ein kleines Hobbyprojekt habe ich als Plattform die Google App Engine ausgewählt, wegen der bewunderswerten Radikalität und Modernität ihres Ansatzes. Im Gegensatz zum Cloud-Konkurrenten Amazon Web Services arbeitet man hier in einer völlig virtuellen und verteilten Umgebung - man sieht also nichts vom zugrundeliegenden Betriebssystem oder gar der Hardware. Und warum soll man sich auch mit Datenbankkonfiguration auf Systemlevel herumschlagen? Stattdessen freue ich mich, daß meine Daten in der wohl skalierbarsten Datenbank der Welt liegen, ohne daß ich einen Finger dafür heben muß. Kontrolle muß ich dabei allerdings durch Vertrauen ersetzen, was ein Riesenhaken ist. In einem späteren Beitrag mehr dazu.
Programmiersprachen sind Java oder Python. Google stellt mir eine komplette Servletumgebung zur Verfügung, und ich kann per File-API lesend auf meine Resourcen zugreifen (wie etwa Konfigurationsdateien oder Templates), über die Java-APIs JPA (=EJB3) oder JDO auf die Datenbank zugreifen. JDBC ist nicht, weil die zugrundeliegende Datenbank ist nicht relational. Außerdem gibt es weitere Services für E-Mail, Aufruf von externen Services per http, Bildverarbeitung und einen verteilten Cache.
Threads dürfen nicht erzeugt werden, und jeder Request muß innerhalb 30 Sekunden abgearbeitet werden. Damit läßt sich aber schon wunderbar eine übliche Webanwendung basteln. Ich habe meine Lieblingsframeworks (Guice, Facelets) auch gleich ohne größere Probleme zum Laufen gebracht. Und die hohe Skalierung bekommt man quasi out-of-the-box.
Wunderschön ist die Eclipse-Integration. Es gibt einen absolut brauchbaren Projekt-Wizard, und dann kann ich das ganze per Knopfdruck deployen. Und jetzt fällt es mir schwer, nicht ins Schwärmen zur verfallen, und stattdessen lasse ich die Bilder sprechen, um genauer zu sein, einen Screenshot von der Admin-Console der App-Engine, der in echt Googlescher Schlichtheit daher kommt:
Es werden alle hochgeladenen Versionen meiner Anwendung angezeigt, die ich allesamt, vergangene und aktuelle, live testen kann, durch Klick auf den angegebenen Link. Per Radiobutton wähle ich die Version aus ("Default"), die auf meiner Domain ausgeführt wird. Per Knopfdruck kann ich zwischen den Versionen zappen... ist das nicht ein Traum? ... Hoppla, fragt da jemand nach der Datenbankversionierung? Dazu später mehr.
Kommentare