Vorheriger Artikel Nächster Artikel

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

Aus dem
t3n Magazin Nr. 26

12/2011 - 02/2012

Hosting gehört die Zukunft. Laufend kommen neue Anbieter auf den Markt, auch für die Skriptsprache . 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.

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

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.

bild1 scaling
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.

NEU: Lass dir diesen Artikel vorlesen
Ein Service von t3n, in Kooperation mit Narando.

1 3
Vorheriger Artikel Zurück zur Startseite Nächster Artikel
2 Antworten
  1. von sprain am 07.12.2011 (09:21 Uhr)

    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 Teilen
  2. von Frank Lämmer am 29.09.2012 (12:30 Uhr)

    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 Teilen
Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Aktuelles aus dem Bereich Cloud-Computing
Helion: HP bringt eigene Cloud-Application-Platform auf den Markt
Helion: HP bringt eigene Cloud-Application-Platform auf den Markt

Mehr als eine Milliarde US-Dollar wollte HP im Mai 2014 in Cloud-Produkte und Forschung investieren. Ein Meilenstein wurde jetzt erreicht: Die Veröfentlichung der Cloud-Application-Platform Helion. » weiterlesen

Suse Linux Enterprise 12 veröffentlicht: Das sind die Neuerungen
Suse Linux Enterprise 12 veröffentlicht: Das sind die Neuerungen

Suse hat eine neue Version seiner Linux-Distribution für Unternehmen veröffentlicht. Wir verraten euch, welche Neuerungen Suse Linux Enterprise 12 mitbringt. » weiterlesen

„Das Davos für Geeks“ – t3n zu Gast auf dem Web Summit 2014 in Dublin
„Das Davos für Geeks“ – t3n zu Gast auf dem Web Summit 2014 in Dublin

Größer, teurer und und pompöser denn je findet auch in diesem Jahr der Web Summit in Dublin statt. Ein Pflichttermin, findet auch t3n. Die Redaktion ist deshalb in der irischen Hauptstadt zu Gast … » weiterlesen

Kennst Du schon unser t3n Magazin?

t3n-Newsletter t3n-Newsletter
Top-Themen der Woche für Web-Pioniere
Jetzt kostenlos
anmelden
Diesen Hinweis verbergen