Aufbau einer Cloud-Infrastruktur mit Hilfe von jclouds Multi-Cloud Library

Bei diesem Text handelt es sich um eine maschinell erstellte Übersetzung. Eine überarbeitete Version ist in Planung.

Wir sind stolz auf Innovationen und sind ständig bestrebt, neue und aufregende Wege zu entwickeln, um mit vielen Sprachen und Plattformen wie Java und unserer Unterstützung für jclouds zu arbeiten. jclouds ist ein Open-Source-Multi-Cloud-Toolkit, das für die Java-Plattform entwickelt wurde und ein Spitzenprojekt in der Apache Community ist. Es gibt Entwicklern die Freiheit, Anwendungen zu erstellen, die über Clouds hinweg portabel sind, während Sie gleichzeitig die volle Kontrolle über die Nutzung cloudspezifischer Funktionen haben.

Das bedeutet, dass Sie als Entwickler Code erstellen können, der zur Bereitstellung von Rechendiensten bei jedem Anbieter mit derselben Codebasis verwendet werden kann; jclouds macht es überflüssig, dass Sie jeden Anbieter separat implementieren müssen.

Wir freuen uns, Ihnen mitteilen zu können, dass wir als Provider in jclouds unterstützt werden und ein Erste-Hilfe-Leitfaden auf der jclouds-Website verfügbar ist. Dieser Beitrag wurde von der Community getragen, und wir freuen uns, dass er für den Einsatz von Recheninstanzen in unserer Umgebung verwendet wird, einschließlich der neuen DevOps Central und DevOps Data Center.

Warum Java?

Java ist die dominierende Sprache im Unternehmen und wahrscheinlich die Sprache Nummer eins, die von Entwicklern weltweit verwendet wird. Dies ist einer von vielen Gründen, warum ProfitBricks jclouds als eines unserer neuesten Toolkits aufgenommen hat. Die Java-Unterstützung für die ProfitBricks-Cloud wird weiter an Bedeutung gewinnen, da Unternehmen von On-Premise und Colocation zu einem Cloud-basierten Geschäftsmodell wechseln.

jclouds wird sowohl von großen als auch von kleinen Shops genutzt, um Aktionen gegen Cloud-Anbieter zu automatisieren. Einige bemerkenswerte Leute, die Jclouds verwenden, sind RedHat, der damit OpenShift Flex-Anwendungen bei Anbietern erstellt, Mesosphere, der damit Cluster und Knoten auf- und abbauen kann, und Adobe, der damit Infrastruktur für sein Enterprise PaaS bereitstellt.  Unterstützte IaaS-Anbieter sind ProfitBricks, Amazon AWS, Rackspace und mehr.

Übersicht

Das jclouds SDK bietet eine Abdeckung der ProfitBricks-API, wobei nur Kantenfunktionen, die derzeit nicht verfügbar sind, wie z.B. Benachrichtigungen, zur Verfügung stehen. Mit dem SDK können Sie eine Vielzahl von Aktionen ausführen - vom Erstellen eines Rechenzentrums bis hin zur Konfiguration eines privaten Netzwerks über mehrere Computer hinweg.

Code-Beispiele

Eine der häufigsten Aufgaben, die Sie mit jclouds durchführen werden, ist die Erstellung eines Servers; bevor das jedoch erledigt ist, müssen Sie zunächst ein virtuelles Rechenzentrum erstellen. Dies kann einfach mit dem folgenden Codeausschnitt geschehen:

DataCenter dc = api.dataCenterApi().createDataCenter(
       DataCenter.Request.CreatePayload.create("JClouds", Location.DE_FKB)
);

Sie können dann schnell einen oder zwei Server erstellen:

String serverId = api.serverApi().createServer(Server.Request.creatingBuilder()
      .dataCenterId(dc.id())
      .name("jclouds-node")
      .cores(1)
      .ram(1024)
      .build());

Nun, da der Server nicht sofort verfügbar ist. Wenn Sie warten wollen, bis der Server fertig ist, bevor Sie zum nächsten übergehen, können Sie die Serverobjektmethode "waitUntilAvailable" verwenden.

Dadurch wird sichergestellt, dass Ihr Code wartet, bis der Serverzustand verfügbar ist, bevor er fortgesetzt wird. Dies ist nützlich, wenn Sie Requests, die voneinander abhängig sind, miteinander verketten. Und der Code würde so aussehen:

waitUntilAvailable = Predicates2.retry(
    new ProvisioningStatusPollingPredicate(api, ProvisioningStatusAware.SERVER, ProvisioningState.AVAILABLE),
    2l * 60l, 2l, TimeUnit.SECONDS);

Sobald Ihre Umgebung betriebsbereit ist, können Sie auch Cloud-spezifische Funktionen nutzen, die in Jclouds integriert sind. Im Falle von ProfitBricks bedeutet dies, dass Sie Ihre Speicher-, Core- und Volumengröße unterwegs anpassen können. Hier ist, wie du das machen würdest:

api.serverApi().updateServer(
      Server.Request.updatingBuilder()
      .id(serverId)
      .name("apache-node")
      .cores(2)
      .ram(2 * 1024)
      .build());

Zusammenfassung

Wenn jclouds mit ProfitBricks kombiniert wird, verfügt der Entwickler über die Werkzeuge, um Umgebungen auf der Infrastruktur zu automatisieren und aufzubauen, die sich ähnlich wie physische Server verhalten und einen cloud-agnostischen Ansatz verfolgen.

Sie können eine unbegrenzte Anzahl von privaten Netzwerken erstellen, indem Sie Ihre Maschinen in verschiedene Netzwerke für Sicherheit und Zugriffskontrolle unterteilen oder einfach Ihre Maschinengröße auf einer granularen Ebene steuern. Müssen Sie alle Ihre Maschinen mit zwei weiteren GB Speicher aufrüsten? Verwenden Sie jclouds, um diese Aktion automatisch auf allen Servern durchzuführen.

Nehmen Sie an der Konversation über Jclouds, Java und alle Dinge, die sich in der Cloud abspielen, im neuen DevOps Central.