cloudControl als Partner im Cloud-Hosting-Bereich – Ein Erfahrungsbericht

Cloud Hosting im Nutzertest
Kommentare

SnipClip ist eine Internetagentur, die sich auf Facebook spezialisiert hat. Für ihre Kunden konzipiert und realisiert SnipClip Facebook Ads, Apps und Games. Das Leistungsangebot erstreckt sich von der Konzeption und Kreation über Programmierung und Anpassung bis hin zum Betrieb und zur Optimierung der Facebook-Kampagne. Die Agentur betreut seit mehreren Jahren nationale und internationale Kunden und vertraut seit einiger Zeit dem Cloud-Hosting-Anbieter cloudControl.

In dem vorliegenden Bericht sollen die Erfahrungen und Motivationen vorgestellt werden, die wir bei SnipClip im Laufe der Zusammenarbeit mit dem Anbieter cloudControl gemacht haben.

Die Herausforderung

SnipClip [1] entwickelt soziale Anwendungen, für die eine hohe Verfügbarkeit und Datensicherheit extrem wichtig sind. Zudem sind auf Grund hoher Lastschwankungen sozialer Anwendungen besondere Voraussetzungen seitens des Hosting-Partners notwendig:

  • Horizontale Skalierbarkeit
  • Flexibilität bei den Leistungen (Datenbanken, SSL etc.) sowie der Abrechnung
  • Wenig bis kein Administrationsaufwand
  • Anbieter- und Serverstandort: Europa

Die allgegenwärtige Cloud rühmt sich, all diese Probleme zu lösen, jedoch gestaltete sich die Suche nach einem äquivalenten Anbieter schwieriger als ursprünglich erwartet. Ein Grund hierfür liegt in der Individualität des Cloud Hostings und der nicht immer eindeutigen Definition des Begriffs „Cloud“ im Zusammenhang mit dem Hosting. Es gibt unterschiedliche Definitionen sowie Dienste, die entweder vertikal oder horizontal skalieren. Die meisten Dienste, die im Vorfeld ausprobiert und getestet wurden, skalierten überwiegend vertikal und erforderten einen zusätzlichen Administrationsaufwand. Angeboten wurden z. B. virtuelle Server, denen bei Bedarf zusätzliche Ressourcen in Form von CPU-Leistung, RAM- und Festplattenspeicher aufgeschaltet werden konnten. Fällt dieser virtuelle Server aus, sind auch die darauf gehosteten Daten nicht mehr verfügbar. Der Administrationsaufwand war derselbe wie bei normalen dedizierten Servern.

Für uns kamen entsprechende Angebote nicht in Frage, da wir eine Lösung suchten, die zum einen horizontal skaliert und zum anderen wenig bis keinen Administrationsaufwand kostet, damit sich das Team auf das Wesentliche konzentrieren kann. Bei der horizontalen Skalierbarkeit werden bei Bedarf zusätzliche Recheninstanzen oder Server zugeschaltet, unter denen die Last verteilt werden kann. Fällt eine Instanz aus, übernimmt eine andere die Anfrage, ohne dass der Nutzer hiervon etwas merkt.

Die Lösung

Nachdem wir einige Dienste detailliert unter die Lupe genommen haben, kristallisierte sich heraus, dass cloudControl [2] alle benötigten oben genannten Kriterien erfüllt:

  • Kein Administrationsaufwand
  • horizontale Skalierbarkeit
  • modulare Leistungen
  • verbrauchgerechtes Abrechnungsmodell
  • Serverstandort innerhalb der EU (Amazon AWS – Irland)

Nach einigen Tests und Gesprächen wurde das erste Projekt auf cloudControl angelegt und eingerichtet. Unschlagbares Argument für diesen Anbieter war für uns, dass sich jeder zu jeder Zeit einfach einen Account anlegen kann – unverbindlich und kostenlos. Jeder bekommt also die Möglichkeit, die Plattform im Vorfeld ausgiebig zu testen. Bei Rückfragen steht der Support zeitnah auf allen wichtigen Kanälen (Telefon, E-Mail, Chat) mit Rat und Tat zur Seite.

Ein weiterer, nicht unerheblicher Aspekt für Entwickler ist die Kompatibilität zum vorhandenen Quellcode bzw. zu bereits existierenden Projekten. Seitens der Programmierung sind nur marginale bis keine Anpassungen notwendig, selbst bei größeren Projekten. Innerhalb von nur sehr kurzer Zeit lief eine erste Projektapplikation inkl. MySQL-Datenbank und SSL auf cloudControl und konnte live gehen. Dank der automatischen Skalierung muss lediglich eine Boxenobergrenze festgelegt werden. Das Hinzuschalten neuer Boxen erledigt die Plattform je nach Nutzerandrang und Last vollautomatisch und abgerechnet wird nur die wirkliche Nutzung. Gerade bei Facebook-Kampagnen ist die reelle Nutzerzahl im Vorfeld nur schwer einschätzbar, sodass uns das flexible Modell erheblich zu Gute kommt. Reicht eine zuvor definierte Maximalanzahl von Boxen nicht mehr aus, kann diese binnen weniger Sekunden aktualisiert und erhöht werden. Während laufender Kampagnen kommt es so zu keinem Ausfall, selbst wenn die Nutzerzahlen explosionsartig ansteigen.

Neben den bereits genannten Vorteilen, die vor allem ausschlaggebend waren, unterstützt cloudControl von Hause aus Teamwork. Jeder Applikation können beliebig viele weitere Nutzer hinzugefügt werden, die dann auch Zugriff auf das zentrale Repository bei cloudControl erhalten, in dem die gehostete Applikation liegt. Soll eine neue Version veröffentlicht werden, muss der aktuelle Stand einfach aus dem lokalen Repository auf die Plattform übertragen werden. Dazu reichen zwei Befehlszeilen.

Verbrauchsbasierte Abrechnung im Detail

Die Abrechnung bei cloudControl geschieht rein verbrauchsbasiert. Das Preismodell basiert dabei auf drei separaten Komponenten: der verbrauchten Rechenleistung (Boxen), den gebuchten Addons (MySQL, SSL etc.) und optionale Supportpakete.

Was ist eine Box?

Eine Box besteht aus zwei Prozessen auf unterschiedlichen Nodes und kann damit zwei dynamische Requests parallel beantworten. Die Leistung jeder Box ist fix und entspricht in etwa 1/4 der Leistung einer Amazon EC2 Compute Unit. Boxen kümmern sich nur um die Bearbeitung der dynamischen Requests (Requests, die keine statischen Dateien sind).

Boxen

Standardmäßig erhält jedes Deployment eine Box gratis (Kasten: „Was ist eine Box“). Diese kann dynamische Requests abarbeiten. Wenn mehr Requests auf das Deployment treffen, werden diese gequeut. Als Nutzer kann man selbst entscheiden, wie viel Rechenleistung einem Deployment zur Verfügung steht, indem man die maximale Boxenanzahl pro Deployment selbst einstellt. Wichtig dabei ist, dass sich die Boxen nur um dynamische Anfragen kümmern. Alles was statisch ist, wie z. B. HTML-Dateien, Bilder, JavaScript, CSS oder Cache, wird direkt von der Plattform abgearbeitet und belastet die Boxen nicht.

Applikationen und Deployments

Applikationen (Apps) sind Container für Nutzer und Deployments und spielen eine zentrale Rolle bei cloudControl. Jede App benötigt einen eindeutigen Applikationsnamen und hat mindestens einen Entwickler und mindestens ein Deployment. Der Aufbau erfolgt immer nach dem Schema app_name/dep_name.

Beim Anlegen einer App wird immer automatisch ein Default-Deployment angelegt. Das Repository kann verschiedene Branches beheimaten. Um eine Version einer dieser Branches laufen zu lassen, muss diese deployt werden.

Ein Deployment ist eine laufende Version einer App aus einem der Branches. Um eine Version der App laufen zu lassen, muss daher erst der Quelltext in eine Branch übertragen (gepusht) und veröffentlicht (deployed) werden. Beim Deploy wird der Quelltext der App in der gewünschten Revision aus dem Repository ausgelesen und daraus ein Read-Only-Image gebaut. Dieses Image wird dann auf die verschiedenen Nodes verteilt, auf denen die jeweiligen Boxen gestartet werden. Der Vorteil dieser vorbereiteten Images liegt darin, dass aktive Apps, soweit notwendig, in Sekunden auf neue Nodes verteilt werden können, um bei Lastspitzen die eingehenden Anfragen zu beantworten.

Mehrere Deployments sind ungemein praktisch, da diese es erlauben, an einem Entwicklungs-Deployment zu entwickeln, während das Live-Deployment unbehelligt weiter läuft. Es können beliebig viele Deployments angelegt werden. Jedem Deployment können individuell Addons wie z. B. Datenbankdienste, Memcache und vieles mehr hinzugefügt werden. Addons erlauben es, den Funktionsumfang der cloudControl-Plattform je nach Bedarf zu erweitern.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -