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.

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
Fog-Computing: Vergesst die Cloud, der Nebel ist da [Kommentar]
Fog-Computing: Vergesst die Cloud, der Nebel ist da [Kommentar]

Viele Geräte sind fast permanent mit der Cloud verbunden und immer mehr wird in die Cloud verlagert. Doch bei allem im Zusammenhang mit der Cloud gibt es ein Problem – die Bandbreite. » weiterlesen

Cloud Platform: Google macht Startups ein Angebot im Wert von 100.000 Dollar
Cloud Platform: Google macht Startups ein Angebot im Wert von 100.000 Dollar

Google will jetzt auch Startups von seiner „Cloud Platform“ überzeugen und bietet ihnen kostenlose Leistungen im Wert von 100.000 US-Dollar. Dazu kooperiert das Unternehmen mit verschiedenen … » weiterlesen

Millionen-Exit: Deutsches Cloud-Data-Startup doctape geht an Atlassian
Millionen-Exit: Deutsches Cloud-Data-Startup doctape geht an Atlassian

Der deutsche Archivierungsdienst doctape wurde an Atlassian verkauft. Die Verkaufssumme wird auf 7,5 Millionen US-Dollar geschätzt. Der Dienst wird eingestellt. » 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