cloudControl

Der Slogan "Wir lieben Webentwickler!" ist einigen sicherlich in abgewandelter Form von einer großen Lebensmittelkette bekannt! ;) Dennoch ist die Adaptierung gut gelungen, denn mit cloudControl stellt der gleichnamige deutsche Anbieter aus Potsdam Webentwicklern eine Plattform zur Verfügung, auf der Webanwendungen auf Basis von PHP, Java, Python und Ruby entwickelt und gehostet werden können.

Die Infrastruktur der Plattform ist so ausgelegt, dass der Entwickler sich letzendlich nur um die Anwendungen kümmern muss, den Rest übernimmt cloudControl. Dafür sorgt ein speziell für die Anforderungen angepasstes Linux inkl. einem vollständigen Softwarestack. Für eine hohe Skalierbarkeit und das Abfangen von Lastspitzen oder Fehlern sorgt die Verteilung der jeweiligen Anwendung über mehrere Nodes, bekannt von den Availability Zones der Amazon Web Services. Mithilfe einer Versionskontrolle und der Möglichkeit Zugriffsrechte individuell zu vergeben, können Teams zur selben Zeit an unterschiedlichen Versionsständen arbeiten.

Die Abbrechnung soll sich aus einer Grundgebühr + dem tatsächlichen Mehrverbrauch der Ressourcen zusammensetzen.

cloudControls Arbeitsablauf für Webentwickler

Die cloudControl Dokumentation

Sehr lobenswert und ganz im Sinne der Open Cloud Initiative stellt cloudControl eine umfangreiche Dokumentation bereit, mit der Webentwickler alle Informationen zur Verfügung haben, um mit der cloudControl Plattform zu arbeiten. Die Dokumentation besteht derzeit aus den folgenden Teilen.

  • cctrlapp
    Bei cctrlapp handelt es sich um einen der Kommandozeilenbefehle von cloudControl. Mit dem Befehl können sämtliche Methoden der cloudControl API angesprochen werden.
  • cctrluser
    cctrluser ist ein weiterer Kommandozeilenbefehl, mit dem die API von cloudControl genutzt werden kann um Benutzer zu verwalten.
  • MySQL Datenbank Dokumentation
    Für jede Webanwendung steht eine eigene MySQL Datenbank. Auf Basis einer Master-Master Replikation werden sämtliche Datenbanken auf unterschiedliche Nodes verteilt. Mittels eines MySQL-Proxys wird die Anfrage einer Anwendung zu dem Node weitergeleitet, auf dem sich die zugehörige Datenbank der Anwendung befindet. Daher ist es für eine Anwendung nicht notwendig zu wissen, auf exakt welchem Node die Datenbank gerade abgelegt ist.
  • Bazaar Versionskontrollsystem
    Als Versionskontrollsystem setzt cloudControl auf Bazaar. Dabei handelt es sich um ein verteiltes Versionskontrollsystem ähnlich Git oder Mercurial. Die Entscheidung viel auf Bazaar, da hiermit alle drei großen Betriebssysteme (Windows, Mac OS X und Linux) unterstützt werden können und zudem eine Vielzahl an Plugins bietet. Die Plugins bieten den Vorteil auch Versionen von CVS, SVN, Git und Mercurial in die Repositories von Bazaar zu übernehmen. Damit bietet cloudControl Webentwickler die freie Wahl des Versionskontrollsystems.
  • Zugriff auf statische Dateien
    cloudControl erstellt von jeder Anwendung ein Read-Only Image, um das Deployment aus dem Versionskontrollsystem schnell auf weitere Nodes zu verteilen. Für das Schreiben von Dateien zur Laufzeit wird das erzeugte Read-Only Image transparent mit einem verteilten Dateisystem verbunden. Innerhalb dieses Dateisystems befinden sich dann alle Dateien die zur Laufzeit geschrieben oder verändert wurden und stehen jedem Node zur Verfügung, auf dem die Webanwendung verteilt wurde.
  • Frequently Asked Questions
    Die cloudControl FAQ bietet aktuell ausführliche Antworten zu folgenden Fragen.

    • Was ist eine Cloud Hosting Plattform?
    • Kann ich die cloudControl Plattform testen?
    • Welche Programmiersprachen unterstützt cloudControl?
    • Wird MySQL als Datenbank angeboten?
    • Wird eine nicht relationale Datenbank unterstützt?
    • Wie Überprüfe ich ob meine Anwendung kompatibel ist?
    • Wie funktioniert die Abrechnung?

Tutorial für Webentwickler

Mit einem Tutorial verfeinfacht cloudControl Webentwicklern den Einstieg in die Plattform und zeigt auf, wie die Arbeitsumgebung schnell eingerichtet werden kann. Hier ein paar kurze Auszüge.

  • Auswahl des Betriebssystem
    Das Tutorial startet mit einer schrittweisen Anleitung für die Installation und Konfiguration einer Windows, Mac OS X oder Linux Umgebung. Dazu gehören das überprüfen der Abhängigkeiten, die Installation von 'control', Das Anlegen eines Benutzer-Accounts und das Erzeugen eines SSH Keys.
  • Die erste Anwendung
    Nach dem Einrichten der jeweiligen Umgebung zeigt das Tutorial, wie eine erste Anwendung angelegt wird. Dazu gehören das Schreiben der Anwendung mit anschließenden Erstellen innerhalb von cloudControl, gefolgt vom pushen in das Versionskontrollsystem und abschließenden Deployment.
  • Weitere Schritte
    Für die weiteren Schritte verweist das Tutorial auf die von mir oben bereits beschriebene Dokumentation.

Weitere Informationen

Quelle