Facebook
Twitter
Google+
Kommentare
11

PHP goes Cloud

Der deutsche Cloud Computing Markt wächste enorm und immer mehr Interesse kommt bei allen Beteiligten auf, doch leider erzeugen einige nur mehr Buzz als wirklich Produkte. Ich will an Hand eines echten PHP-Projektes zeigen das Cloud Computing Sinn macht, wenn man auf die richtigen Services setzt. Aufdecken wo hinter kein Cloud Comptuing steckt und was wir in Deutschland in Zukunft erwarten können.

Was ist Cloud Comptuing?

Cloud Computing Basis

Cloud Computing Basis

Grundsätzlich sollte man Cloud Computing in die 3 Bereiche Infrastruktur-as-a-Service (IaaS), Plattform-as-a-Service (PaaS) und Software-as-a-Service (SaaS) trennen, diese bauen wie eine Pyramide auf einander auf. Infrastruktur-as-a-Service stellt mir reine Rechenleistung zur Verfügung, diese kann ich über eine API mit meinen oder bereitgestellen Images zu jeder Zeit belieblig erweitern oder verkleinern. Als 2. Baustein folgt PaaS dieser greift auf IaaS zurück. PaaS stellt mir meine komplette Umgebungsplattform für meine Anwendung zur Verfügung, der PaaS-Anbieter kümmt sich um Skalierung, Backups, Updates und sonstige Adminstarrive Aufgaben. Bei IaaS und PaaS sollte die Abbrechnung im Stundentakt oder gar Minutentakt erfolgen, ein wechseln zu einem anderen Anbieter sollte zu jeder Zeit möglich sein, in Zukunft kann dies evtl. sogar mittels API möglich sein. SaaS dürfte die meisten kennen, deshalb will ich hier gar nicht zu sehr ins Detail gehen. Ich bin der Meinung es ist erst wirklich SaaS, wenn dieser mindestens auf IaaS zurückgreift. Meisten erfolgt die Abrechnung monatlich je User, ein Wechseln sollte von heute auf morgen möglich sein. Gutes Beispiel wäre hier die Migration von Lotus Notes oder Microsoft Exchange zu Google Apps. Das wird in Zukunft sehr spannend werden.

Anbieter von Cloud Compting
Wollen wir uns doch mal einen kleinen Überblick über den IaaS und PaaS Markt verschaffen.
Auf Grund der fülle und unterschiede von SaaS-Anbietern lasse ich diese aus.

Die folgenden Anbieter aus Deutschland werben zwar offiziell mit Cloud Computing, aber hier steckt gar keine Cloud hinter.

Diese Liste ist sicherlich noch nicht vollständig, ich freue mich über Ergänzungen

Eine PHP-Anwendung soll in die Cloud, unsere Anforderungen!

Zugriff je Stunde an einem ganz normalen Tag

Es handelt sich um die VZ-App „Deine Mutter“, diese liefert kultige Sprüche an die StudiVZ-, MeinVZ- und überwiegend SchülerVZ-Nutzer aus.
Unsere PHP-Anwendung liefert die Sprüche und die Favoriten der Nutzer an die VZ-Plattform aus. Derzeit haben wir über 250.000 Installationen in allen VZ-Netzwerken, über 300.000 eingereichte Sprüche und in letzten 4 Monaten über 26.000.000 API-Request gehabt.
Problem: Unsere Nutzer werden nur zu bestimmten Tages- und Wochenzeiten sehr aktiv (siehe Grafik). Eine eigende teure Infrastruktur zu betreiben, die nur zu Spitzenzeiten voll ausgelastet wird, kommt nicht in Frage. Auch sollte der Adminstartionsaufwand relativ gering sein. Die Anwendung sollte möglichst innerhalb weniger Minuten auf einem neuen System laufen, also Anpassungen für die Cloud sollten nicht notwendig werden!
Hört sich stark nach PaaP für PHP mit MySql an. Nun könnte man sich PHP bei Google App Engine lauffähig machen, dies bedeutet aber wieder Zusätzlichen Aufwand und wir müssten bei jedem Update von Google App Engine zittern das unsere Lösung noch funktioniert. Auch hätten wir keine MySql-Datenbank zur Verfügung. CloudControl ein PaaS-Anbieter aus Potsdam bietet mir all diese Möglichkeiten, meine PHP-Anwendung läuft sofort in deren Umgebung und eine MySql-Datenbank ist auch dabei. Derzeit befindet sich der Dienst in der Beta-Phase, aber bei Gmail stand bis vor kurzen auch noch Beta dran. Also ausprobieren!

Im nächsten Beitrag will ich dann den genauen Umzug und deren Vorteile für unsere PHP-Anwendung auf die Plattform von cloudControl erläutern.

Über den Autor

Christoph Beckmann

ist Webentwickler, Gründer und Webvisionär. 2007 gründet er Deutschlands erste Klosuchmaschine lootogo.de. Weitere Erfahrungen sammelte er bereits bei einem Kölner Consulting Unternehmen und beim Berliner Unternehmen kaufDa. Ansonsten bloggt Christoph auf serverwolken.de
Kommentare

11 Comments

  1. Hallo,

    hab das teil auch gerade ausprobiert. (einfach mal kurz meine Website (wordpress) draufgestellt)

    Wirklich sehr nice was man da bekommt. Würde das gern langfristig für Kunden einsetzen, dazu fehlt mir aber PostgreSQL Unterstützung.

    Bin gespannt wie sich langfristig das Preismodell entwickelt. Momentan zahlt man ja nur für Boxen. Und das auch erst ab der zweiten. Keine Traffic gebühren, keine Storage gebühren (oder Limitierungen). Ich befürchte das sich das langfristig nicht rechnen wird.

    Sollte man auf jedenfall im Auge behalten.

    Ludwig

    Reply
  2. Vielleicht kann mir ja mal jemand Model von CloudControl näher bringen, das Prinzip mit den Boxen ist mir noch nicht ganz klar. Und was sagt mir „Deployment braucht 1 box..“ ?

    Reply
  3. ganz einfach

    stell dir eine Box als eine CPU welche nicht Multitaskingfähig ist vor.
    diese boxen werden für alle PHP requests benötigt, und nur für diese, also nicht für statische Files wie HTML, JS, CSS usw.

    Wie ein Apache Server mit „MaxServers 1“.

    Hört sich jetzt nicht nach viel an, aber wenn man bedenkt das es sich nur um php page requests handelt, und die meisten requests selbst im schlimmsten fall nicht länger als 1sekunde brauchen sollten. hast immer noch 60 Requests/min bzw 3600 Requests/Stunde. Das Reicht für viele Seiten aus.

    Das schöne an dieser PaaS ist das die boxen bei bedarf automatisch starten und stopen. (beim deploy kann mittels –max und –min die Maximum angegben werden von Boxes die spanen dürfen)
    Anders als EC2 wo ganze Server starten sind es hier nur loadbalenced instanzen deiner applikation. Wenn du eine Durchschnittseite hernimmst wird die zb. in der nacht mit einer Box auskommen, und zb. um 11-16 Uhr 2-3 Boxen brauchen.

    Der Vorteil jetzt aber, du wirst geslashdotet und geheised, hast also sehr viele zugriffe gleichzeitig, kein problem 20-30 boxen für 1-2 stunden kosten nicht die welt, und die user bekommen nichts von dem traffic aufkommen mit.

    lg
    Ludwig

    Reply
  4. Besser als Ludwig hätte ich es selst nicht erklären können. 🙂

    Was verschiedene Datenbanken etc. angeht so versuchen wir durch die Addons hier eine möglichst große Auswahl zu schaffen. Addons kommen dabei nicht nur von uns, sondern auch von Drittanbietern. Von daher erwarten wir hier im laufe de kommenden Wochen und Monate viele nützliche Dienste.

    Reply
  5. Find das Modell von denen auch sehr cool und werde definitiv mal eines meiner nächsten Projekte dort unterbringen. Da ich DB-seitig nicht festgelegt bin und ohnehin mal NoSQL machen wollte 😉

    Allerdings bin ich auch noch skeptisch, ob sich das so ohne Trafficlimit dauerhaft rechnen wird. Statische Files sind ja nicht begrenzt, was die Auslieferung angeht, insofern könnte man CC natürlich billig als CDN für statische Files missbrauchen und den Traffic der Jungs und Mädels in die Höhe treiben..

    Reply
  6. Christoph, ich würde das nicht mal als ketzerisch bezeichnen, du hast eine mehr als wahre Aussage gemacht. Ein Apache mit PHP, welches aus einer Datenbank liest, ist schon eine sehr mächtige Architektur, node.js könnte da möglicherweise wirklich eine extrem günstige Lösung für das Problem sein.
    Denn ein Webserver in node.js implementiert ist wirklich um ein vielfaches schneller als ein Apache mit PHP.
    Node.js ist schon höllisch schnell, ein sehr gutes Produkt.

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen