Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 26

Cloud Hosting: Die richtige Vorbereitung für den perfekten Umstieg

    Cloud Hosting: Die richtige Vorbereitung für den perfekten Umstieg

Cloud Hosting gehört die Zukunft. Laufend kommen neue Anbieter auf den Markt, auch für die Skriptsprache PHP. Doch der Wechsel von traditionellem Hosting in die Cloud bringt einige Hürden mit sich, die sich aber mit richtiger Vorbereitung und passenden Spezialisten umgehen lassen.

Die Cloud wird seit ein paar Jahren als Lösung für alle erdenklichen Anliegen heutiger Entwickler gepriesen. So sehr, dass der Begriff einige Zeit beinahe Gefahr lief, als reines Buzzword belächelt zu werden. Dabei ist es in der Tat so, dass Cloud Computing viele interessante Vorteile bieten kann, besonders im Bereich Hosting: Cloud Hosting bietet gegenüber kassischem Hosting die Möglichkeit, die Infrastruktur einfacher, rascher und kostengünstiger zu skalieren und so an aktuelle, möglicherweise kurzfristige, Bedürfnisse anzupassen. Außerdem fällt der Aufwand weg, sich selbst um die Wartung der Server und deren Aufrüstung mit neuen Technologien zu kümmern.

Ein Schieberegler in Kombination mit der Kreditkarte: So einfach lässt sich bei PHP Fog die Serverleistung innerhalb von Minuten beinahe ins Unendliche erhöhen.

Die Hürde, sich selbst an Cloud Hosting heran zu wagen, liegt erfreulich tief. Bei allen Anbietern lassen sich innerhalb weniger Minuten eigene Serverkapazitäten bereitstellen. Damit es in der Praxis auch wirklich klappt, tut man jedoch gut daran, sich den Eigenheiten und Einschränkungen von Cloud Hosting bewusst zu werden. Eine Betrachtung anhand des Beispiels von Cloud Hosting mit PHP soll zeigen, wo die möglichen Stolpersteine liegen und wie diese erfolgreich umgangen werden. Im Grundsatz gelten die Hinweise dabei auch für andere Sprachen und Frameworks.

Tod dem FTP

Dass sich Cloud Hosting durchaus von traditionellem Hosting unterscheidet, zeigt sich bereits darin, wie die Daten auf den Server gelangen: Dies funktioniert nicht per FTP, sondern ausschließlich über einen Push per Git. Es ist also zugleich ein Argument dafür, auch bei kleineren Projekten eine professionelle Versionsverwaltung einzusetzen. Der Aufwand dafür ist gering, der Nutzen groß und die Handhabung dank grafischen Oberflächen wie Tower [1] auch für Benutzer geeignet, die die Kommandozeile scheuen.

Die Zugriffsrechte für den Upload werden pro Rechner über SSH-Keys gewährt. Auch deren Erstellung ist nicht annährend so kompliziert wie es scheint. Zudem erklärt jeder Anbieter den Vorgang mehr oder weniger ausführlich [2].

Flexible Server-Auswahl

Da beim Cloud Hosting die Notwendigkeit, sich um die physische Infrastruktur zu kümmern, entfällt, entgeht einem gleichzeitig auch das Wissen, wo die eigenen Daten denn nun genau liegen. Load Balancing, also das Verteilen von Anfragen auf verschiedene Server, und die Skalierung der Kapazität führen dazu, dass zwei aufeinanderfolgende Anfragen eines Besuchers mit großer Wahrscheinlichkeit auch auf zwei verschiedenen Servern landen. Ein „Shared State“, also ein Bereich, auf den jede Anfrage zugreifen kann, existiert nicht. Stattdessen ist auf jedem Server immer nur verfügbar, was auch mit dem Git Repository übertragen wurde.

Auslagern und zentralisieren

Auslagern und zentralisieren ist somit angesagt. Betroffen davon sind vor allem temporäre Daten wie Sessions und User-Uploads.

Zum Auslagern von Session-Daten bietet PHP einen einfachen, hauseigenen Weg über die Funktion session_set_save_handler(). Damit können eigene Funktionen angesprochen werden, um beispielsweise eine Session zu eröffnen, zu schließen oder Daten innerhalb dieser zu lesen und zu schreiben. In diesen Funktionen wiederum können die Daten dann mit einer Datenbank verwaltet werden, auf die jeder Server Zugriff hat. Aus diesem Grund gibt es vorgefertigte Klassen [3], die mit wenigen Zeilen den gewünschten Effekt erzielen lassen.

Session in MySQL-Datenbank verwalten

$SessionHandler = new SessionHandler();
$SessionHandler->setDBData('host', 'user', 'password', 'database');
$SessionHandler->setDBTable('table');
session_set_save_handler(array($SessionHandler, 'open'),
	array($SessionHandler, 'close'),
	array($SessionHandler, 'read'),
	array($SessionHandler, 'write'),
	array($SessionHandler, 'destroy'),
	array($SessionHandler, 'gc'));
session_start();

Zur Speicherung anderer kurzlebiger Daten ist je nach Cloud-Hosting-Anbieter auch die Nutzung von Memcached [4] möglich. Memcached erlaubt es, Daten bis zu einer Größe von einem Megabyte serverübergreifend und damit unabhängig vom Aufruf zur Verfügung zu stellen. Wird diese Möglichkeit vom Anbieter der Wahl nicht unterstützt, führt allerdings kein Weg an einer Speicherung in der Datenbank oder auf einem externen Speicherdienst vorbei. Auf keinen Fall geeignet ist das Anlegen von temporären Dateien, die im Datei-System gespeichert werden, da auch diese nur auf einem Server zur Verfügung stehen.

Links und Literatur

  1. Git-Oberfläche Tower
  2. Anleitung zum Einsatz von SSH-Keys
  3. Sessions auslagern
  4. Memcached
  5. mongoDB GridFS
  6. Amazon S3
  7. S3 für PHP
  8. S3-Oberfläche 3Hub
  9. ZoneEdit
  10. Route 53
  11. DNS-Verwaltung
  12. EasyCron
  13. MyWebCron
  14. Google Apps
  15. SendGrid
  16. Postmark
  17. Amazon SES

Finde einen Job, den du liebst

2 Reaktionen
Frank Lämmer

Toller Einsteigerartikel ins Thema, ich hoffe der kommt gut an. Als Fachidiot hätte ich natürlich ein paar Details zu bemängeln:

Es ist nicht unterschieden worden, zwischen PaaS & IaaS.

Hier noch mehr PaaS Anbieter, alle Sprachen:
https://twitter.com/#!/peakscale/paas/members

Hier unsere Übersicht zu PHP PaaS Anbietern (plumpe Eigenwerbung):
http://blog.fortrabbit.com/comparing-cloud-hosting-platforms/

Ich finde die Sache mit den Runtime-Daten ist oft noch nicht richtig gelöst, da fehlt es etwas an Abwärtskompatibilität. Git only und keine Schreibrechte klingt als Konzept erstmal gut. Wenn man von 0 anfängt lässt sich das auch gut berücksichtigen. Nur gerade bei PHP sind die Bedürfnisse doch oft anders. Hier werden viele CMS Systeme und Frameworks eingesetzt – die setzten eine klassische LAMP Umgebung vorraus und wollen auch Dateien schreiben. Wordpress lässt sich einfach am bequemsten durch den wepupdater upgraden.

Sourcetree könnte noch als Alternative zu Tower genannt werden, für Windows weiss ich nicht so genau. Linux user brauchen wohl kein GUI ;)

Antworten
sprain

PHPFog hat gerade verkündet, dass neue Apps auch kostenlos gehostet werden können:
http://blog.phpfog.com/2011/12/06/php-fog-is-free-forever-and-now-even-more-free/

Perfekt, zum es mal Ausprobieren, oder?

Antworten

Melde dich mit deinem t3n-Account an oder fülle die unteren Felder aus.

Abbrechen