Wer eine Webseite betreibt oder gar eine Webapplikation muss sich unweigerlich um Hosting und Server Administration kümmern. Dabei gibt es mittlerweile unendlich viele Möglichkeiten … aber jetzt kommt noch eine dazu: Platform as a Service (PaaS)
Keine Hardware Investitionen, nie wieder Server administrieren oder Sicherheitspatches einspielen müssen, das System skaliert automatisch und das Deploy wird einfacher: Das klingt doch alles wunderbar und das alles bietet SaaS!
Platform as a Service (PaaS) gibt es seit einigen Jahren für Java (Google AppEngine) oder für .NET (Microsoft Azure) aber für PHP sieht es derzeit noch etwas mau aus. Diese Lücke möchte jetzt cloudControl aus Potsdam schließen …
Die Features
cloudControl ist in erster Linie eine Webserver-Plattform basierend auf Linux mit Apache und PHP, für eine funktionierende Webapplikation wird allerdings auch eine Datenbank benötigt. Derzeit stehen MongoDb und MySQL in unterschiedlichen Größen zur Auswahl. Maximal kann eine MySQL Datenbank ein Terabyte groß sein. Für MongoDb ist regulär bei 250 GB Schluss, mehr gibt’s aber anscheinend auf Anfrage.
Außerdem stehen noch folgende Add-ons zur Verfügung: Memcached als Caching-Layer, für das Monitoring New Relic RPM und SSL.
Alle Plattform-Funktionen werden über das spezielle Kommandozeilen Werkzeug cctrl gesteuert. Manche Features kann man zusätzlich über die geschützte WebConsole abrufen.
Mit cloudControl lässt sich ein Staging-System mit beliebigen Aufbau realisieren. Jeder Stage (auch Deployment genannt) ist dabei ein eigener Branch und lässt sich mit dem Deploy-Tool separat ansprechen, ein Deploy auf den Test-Stage würde so aussehen:
cctrlapp bohuco/test deploy |
Die Benutzerverwaltung wird auch über die Kommandozeile gemacht. Der Inhaber einer Applikation kann beliebige Entwickler hinzufügen und entfernen (cctrluser create / activate / delete).
Der Preis
cloudControl rechnet in sogenannten Boxen ab. Eine Box kann 2 PHP Requests pro Sekunde bearbeiten und ist vergleichbar mit einer viertel Amazon EC2 Compute Unit. Die erste Box ist kostenlos, jede weitere kostet 0,05 EUR pro Stunde. Die Boxen werden automatisch auf die aktuellen Anforderungen skaliert bis zu einer Maximalgrenze die der Benutzer festlegen kann.
Alle Features lassen sich kostenlos auf unbegrenzte Zeit testen. Dabei sind die Add-ons auf relativ enge Grenzen gesetzt, wenn man mehr braucht werden dann zusätzliche Kosten fällig die auch stündlich abgerechnet werden. Die kostenlose MySQL-DB darf zum Beispiel nur 5 Mb haben, eine MongoDB 16 Mb.
Handling
Die Kommunikation mit der Plattform wird über ein Kommandozeilen-Tool namens cctrl abgewickelt (in Python geschrieben ???). Das Tool ist für Windows, Mac und Linux verfügbar und die Handhabung wird in verschiedenen Tutorials beschrieben. Für die Source-Code-Versionierung wird standardmäßig Bazar verwendet, man kann aber einfach beim Anlegen eines neuen Projekts Git angeben:
cctrlapp APP_NAME create php --repo git |
Mein Test-Projekt war innerhalb weniger Minuten angelegt und am Server verfügbar. Folgende Schritte waren notwendig (Mac OSX):
mkdir bohuco cd bohuco cctrlapp bohuco create php --repo git vim index.php git init git add . git commit -m "initial commit" cctrlapp bohuco push cctrlapp bohuco deploy |
Voilà: http://bohuco.cloudcontrolled.com/
Wie man auf dem phpinfo() Screenshot sieht, ist derzeit PHP 5.3.2 installiert, APC ist aktiviert, memory_limit ist auf 128 MB, post_max_size auf 20 MB …
Gehostet wird laut Twitter-Aussage auf Amazon EC2 in Irland: “@brgmn Freut uns, dass es gefällt. Server sind zur Zeit Amazon EC2 EU Region. ^pst”. Einige Details zum technische Setup kann man in den FAQs finden.
Dokumentation und Support
… lassen keine Wünsche offen. Support via Telefon, E-Mail, Twitter und Chat. Die Dokumentation ist umfangreich und gut gegliedert. Tutorials für unterschiedliche Betriebssysteme und sogar einen Cheet Sheet für die wichtigsten Funktionen wurde erstellt.
Performance
Hier die Ausgabe eines ab -n 1000 -c 10 auf meine einfache PHP-Seite. Die Seite macht nur ein echo und die Applikation ist auf eine Box begrenzt.
Server Software: Server Hostname: bohuco.cloudcontrolled.com Server Port: 80 Document Path: / Document Length: 28 bytes Concurrency Level: 10 Time taken for tests: 14.203 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 290000 bytes HTML transferred: 28000 bytes Requests per second: 70.41 [#/sec] (mean) Time per request: 142.027 [ms] (mean) Time per request: 14.203 [ms] (mean, across all concurrent requests) Transfer rate: 19.94 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 53 63 5.0 62 105 Processing: 56 79 28.9 69 335 Waiting: 56 78 28.8 69 335 Total: 113 141 29.4 133 400 Percentage of the requests served within a certain time (ms) 50% 133 66% 140 75% 146 80% 152 90% 166 95% 187 98% 234 99% 295 100% 400 (longest request)
Auch Nice …
Das Deployment ist via SFTP zugänglich:
sftp://dep_id@app_name.cloudcontrolled.com/files
Die Log-Files lassen sich abrufen:
cctrlapp bohuco/default log error
Es wird bald ein MySQL Admin Tool geben.
.htaccess ist möglich und mod_rewrite ist aktiv
Fazit
cloudControl sieht auf den ersten Blick wunderbar aus. Wie sich die Plattform im Live-Betrieb bzw. Entwickler-Alltag verhält kann ich nach so kurzer Zeit nicht sagen. Aber das Ding ist auf jeden Fall einen zweiten Blick wert. Fast alles was ich ausprobiert habe hat auf Anhieb funktioniert (nur Apache Access Log konnte ich nicht downloaden).
The post PHP in der Cloud: cloudControl aus Deutschland bietet PaaS für PHP appeared first on bohuco.net.