Cloud hier, Cloud da, überall Cloud. Viele sind schon genervt von der Fernsehwerbung eines Branchenriesen („Ab in die Cloud!“). Und irgendwie kann beim Durchforsten verschiedener Foren der Eindruck entstehen, dass die Cloud ein Standing zwischen „das Böse an sich“ und „unnützes Zeug“ erlangt hat. Andererseits zeigt die Zend-Developer-Pulse-Umfrage [1], dass mehr als 60 Prozent aller PHP-Entwickler 2012 die Absicht haben, mit oder in der Public Cloud zu arbeiten. Was steckt also dahinter? Ist das alles heiße Luft oder gibt es (für PHP-Entwickler) einen Mehrwert mit und dank der Cloud?
Zuerst einmal sollte man sich von den üblichen Marketingsprüchen lossagen und genau betrachten, wie die Möglichkeiten der Cloud das tägliche Leben eines Entwicklers vereinfachen können. Das haben die Jungs und Mädels von Zend getan und auf der ZendCon im Oktober 2011 das Projekt phpcloud.com aka Zend Developer Cloud angekündigt. Dabei geht es nicht um den Produktivbetrieb oder das Speichern von Daten in der Wolke, sondern vielmehr um die Applikationsentwicklung. Kurz gesagt bietet die Zend Developer Cloud einen virtuellen Server inklusive PHP Stack, mit dem der eigene Code sofort nach der Anmeldung entwickelt und getestet werden kann. Ganz nach dem Motto: „Zend Developer Cloud is for those who love coding but hate wasting time on system administration or troubleshooting“ [2].
Zurzeit ist die Developer Cloud als so genanntes Technology Preview Release verfügbar, das heißt es gibt keinen üblichen Registrierungs- und Anmeldeprozess, sondern die Möglichkeit, einen Zugang auf https://my.phpcloud.com/invite-friend/request-key anzufragen. Bereits registrierte Nutzer können auch Einladungen versenden – einfach mal im Bekanntenkreis umhören. Natürlich ist die Registrierung kostenlos.
Nach erfolgreicher Anmeldung muss ein Container erstellt werden (Abb. 1). Darin werden alle Applikationen Platz finden, die im Laufe der Zeit in der Cloud entwickelt werden. Vergleichbar ist so ein Container mit dem Workspace der IDE. Außerdem wird dem Container ein Schlüsselpaar zugewiesen, das über die Website generiert werden kann. Der Private Key (im Format PEM und PPK) steht zum Download bereit. Wenn bereits ein Schlüsselpaar für andere Zwecke im Einsatz ist, kann natürlich auch der entsprechende bestehende Public Key über das Formular auf den Server hochgeladen werden, um ihn zu nutzen. Das Schlüsselpaar wird für die Authentifizierung mit Fremdsystemen, zum Beispiel einer IDE oder einer DB-Verwaltungssoftware, benötigt. Der gewählte Containername hat eine wichtige Bedeutung: Er ist einmalig in der gesamten Developer Cloud und fungiert auch als Subdomain der eigenen Applikationen. In unserem Beispiel lautet der Containername „phpmagazin“. Das resultiert nach erfolgreichem Erstellen des Containers in einem Start-URL namens http://phpmagazin.my.phpcloud.com. Hinter dieser Adresse steckt bereits eine erste Default Application, eine Willkommensseite.
Jetzt wäre es noch nett, wenn neben der besagten, einfachen HTML-Seite weitere Applikationen erstellt werden könnten. Das kann über verschiedene Wege geschehen. Der erste und einfachste besteht darin, folgenden URL aufzurufen: https://my.phpcloud.com/container/php-magazin/manage/apps. Hier gibt es einen Button New Application. Dahinter verbirgt sich eine Auswahl an verschiedenen Packages: Von einer leeren Zend-Framework-Anwendung (Version 1 und 2), über WordPress, bis hin zu Joomla!, Drupal und Magento ist alles als fertiges Deployment-Paket vertreten. Nach einem Klick auf Deploy Application müssen nur noch Name und Pfad für die Applikation angegeben werden, und schon hat man zum Beispiel WordPress installiert, was im Folgenden als Beispiel dienen wird. Die hier referenzierte Installation der Blogsoftware ist für jeden unter http://phpmagazin.my.phpcloud.com/wordpress erreichbar. So weit, so gut. Doch wie kann man die Dateien jetzt editieren und Funktionalität hinzufügen? Obwohl Projekte wie Orion [3], die Eclipse in den Browser bringen, mit großen Schritten voranschreiten, ist momentan doch die gute, alte lokale IDE als Werkzeug für die Entwicklung zu empfehlen. Die Developer Cloud kann sowohl mit Zend Studio als auch mit anderen Entwicklungsumgebungen genutzt werden (Beispiele für NetBeans und PhpStorm folgen unten).
Die Authentifizierungsmöglichkeiten von phpcloud.com mögen anfänglich etwas verwirren. Zum Login auf der Startseite https://my.phpcloud.com benötigt man die Zugangsdaten des Zend-Accounts. Beim Anlegen eines Containers kann ein neues Containerpasswort gewählt werden. Das ist unter anderem für die Datenbankverbindung und für den direkten Zugriff auf die Zend-Serveroberfläche notwendig. Für den Zugriff via SSH beziehungsweise SFTP braucht man allerdings kein Passwort, da aus Sicherheitsgründen ausschließlich ein Public/Private-Key-Verfahren eingesetzt wird. Ist bereits ein Schlüsselpaar vorhanden, so kann der Public Key über https://my.phpcloud.com/account/access-keys hochgeladen werden. Natürlich kann auch ein neues Schlüsselpaar generiert werden. Der Public Key bleibt dabei unkenntlich auf dem Server, der Private Key kann einmalig entweder im Format PEM oder PPK heruntergeladen werden. Welches Format das richtige ist, hängt von dem Einsatzzweck des Key ab. Prinzipiell ist es so, dass die Windows Tools PuTTY und WinSCP nur mit dem PPK-Format arbeiten. Wurde zu Beginn der PEM-Key heruntergeladen (z. B. notwendig für die Authentifizierung in den im Artikel beschriebenen IDEs) ist aber auch das kein Problem. Mithilfe des kleinen Programms PuTTYgen kann der PEM-Schlüssel importiert und ins PPK-Format konvertiert werden. Eine genaue Beschreibung dazu befindet sich unter [12].
Los geht’s mit dem Anlegen eines neuen Projekts; dafür bietet Zend Studio 9 verschiedene Wizards an. Für die Zend Developer Cloud ist es dabei unerheblich, ...