Wann ist der Einsatz von Cloud Foundry sinnvoll und wie beginnt man am besten damit?

Ein typischer Anwendungsfall für Platform-as-a-Service:

 

Hier sehen wir eine typische SaaS Anwendung bestehend aus einem Loadbalancer, 2 Microservices, einem Message Queue Cluster und einem Datenbankcluster. Wer seinen Kunden seine Software im SaaS-Modell anbietet, stellt in der Regel zwei Hauptanforderungen an seine Infrastruktur:

  • Hochverfügbarkeit
  • Skalierbarkeit

Warum wir uns um Infrastruktur kümmern müssen

Während der Trend zu Microservices auf der einen Seite viel Flexibilität mit sich bringt, was Skalierung und Entwicklung anbetrifft und somit schnellere Deploymentzyklen ermöglicht, führt er zu einer Architektur mit vielen Komponenten, die jede für sich, den oben genannten Anforderungen entsprechen muss. Der Anwendungsentwickler ist also plötzlich nicht mehr nur für Hochverfügbarkeit und Skalierbarkeit der eigentlichen Anwendung verantwortlich, sondern für Hochverfügbarkeit und Skalierbarkeit der gesamten umgebenden Infrastruktur, wie hochverfügbare Loadbalancer, Message Queue Cluster und Datenbank Cluster.

Wer sich nicht selbst um solche Aufgaben kümmern möchte, lernt den Funktionsumfang von Cloud Foundry schnell zu schätzen. Cloud Foundry übernimmt und vereinfacht viele DevOps-Aufgaben und erlaubt es Entwicklern sich auf ihre Anwendungen zu konzentrieren.

Voraussetzung für die Anwendungsentwicklung im Cloud-Foundry-Umfeld ist das Verständnis des Cloud-Modells, dass dem Cattle-Modell im Umgang mit Infrastruktur entspricht. (Einen Blogpost zu Pet vs. Cattle gibt es hier. )

Wie Cloud Foundry dieses Problem löst

Die Cloud Foundry Plattform enthält viele Komponenten, die DevOps-Aufgaben übernehmen.

  1. Cloud Foundry basiert auf einer Container-Architektur. Es baut, verteilt und skaliert Container mit Anwendungsinstanzen für uns.
  2. Cloud Foundry kümmert sich um Routing. Mithilfe von HA (High Availability) Load Balancern routet es den Traffic zu Anwendungsinstanzen.
  3. Cloud Foundry sammelt Logs und Metriken, die über Status der Container informieren, alarmieren und Container bei Fehlern automatisiert neu starten
  4. Cloud Foundry hält Config-Einstellungen in Umgebungsvariablen. So können zum Beispiel Test- und Produktionsumgebung, bis auf unterschiedliche Config-Variablen identisch aufgebaut sein.

Die ersten Schritte

Cloud Foundry bietet Buildpacks für die meisten Programmiersprachen. Damit wird die Anwendung automatisch containerisiert und ist bereit für ein

cf push

Zudem ist es möglich auch eigene Docker-Container auf Cloud Foundry zu deployen.

Da Container stateless sind, ist es meist sinnvoll, sie um persistente Services zu ergänzen, die die Daten auch beim Neustart von Anwendungsinstanzen in persistentem Zustand halten. Mithilfe eines Service Brokers bietet Cloud Foundry dazu eine Vielzahl solcher Services an.  Sie werden über den

cf marketplace

angezeigt und können mit

cf create-service

innerhalb von Minuten erstellt werden. Auch die persistenten Services werden von Cloud Foundry redundant und hochverfügbar gehalten.

Mit

cf scale

lässt sich die Anwendung nun auch binnen Minuten skalieren.

 

Über Meshcloud:

Über die Meshcloud-Plattform bietet Meshcloud Multi-Location Cloud Foundry in Verbindung mit zahlreichen Services an. Meshcloud ist eine europäische Public Cloud Plattform auf Open-Source-Basis. Neben Cloud Foundry beinhaltet der Meshstack (Kern der Meshcloud-Plattform) auch OpenStack als IaaS-Lösung. Über ein neu gestaltetes und integriertes User Interface können Cloud-Nutzer so, über eine einzige Plattform, IaaS und PaaS in zahlreichen (europäischen) Locations nutzen und integriert verwalten und abrechnen.

Trefft die Cloud Foundry Community der Rhein-Main Region in der Cloud Foundry meetup group.

Leave a comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.