Interview mit Ignasi Barrera

Apache jclouds: Multi-Cloud-Umgebungen und hybride Clouds managen

Kypriani Sinaris

„Eine der größten Herausforderungen beim Umzug in die Cloud ist die mentale Umstellung auf eine völlig andere Art des Umgangs mit Infrastrukturressourcen und -anwendungen“, meint Ignasi Barrera (Abiquo). Im Interview mit JAXenter stellt er das Projekt Apache jclouds vor, das kürzlich in Version 2.0 erschienen ist. Außerdem verrät uns der Cloud-Experte, welche positiven Trends er persönlich im Bereich Cloud Computing beobachtet.

JAXenter: Was ist die Idee hinter jclouds? Welche Lücke soll damit in der Cloud-Landschaft geschlossen werden?

Ignasi Barrera: Apache jclouds ist ein Open-Source-Multi-Cloud-Toolkit für die Java-Plattform, das Entwicklern die Freiheit gibt, Cloud-portable Anwendungen zu erstellen, ohne auf Cloud-spezifische Features verzichten zu müssen.

Durch allgemeine Interfaces und Patterns soll Code erzeugt werden können, der bei allen supporteten Cloud-Providern funktioniert. So ist es möglich, den Code einmalig zu schreiben, ihn überall anzuwenden und jede Cloud zu managen. Oder kurz: Hauptzweck ist die Vermeidung von Anbieter Lock-ins. jcloud-Nutzern wird damit die Möglichkeit gegeben, die Cloud zu nutzen, die ihren Bedürfnissen am besten entspricht (hohe Verfügbarkeiten, Leistung, Kosten, Sicherheit), ohne sich mit dahinterliegenden Komplexitäten beschäftigen zu müssen.

JAXenter: PaaS, IaaS, SaaS, usw.: Wo würdest du jcloud einordnen?

Ignasi Barrera: jcloud gehört zu IaaS. Es bietet einige Konfigurationsmanagement-Features, wie die Integration von Chef, die es Usern nicht nur erlaubt, Infrastruktur bereitzustellen, sondern auch anwendungsspezifische Dinge wie den Lifecycle oder die Integration von anderen Komponenten in verteilten Systemen zu konfigurieren. Im Kern ist jclouds allerdings ein IaaS-Toolkit, das sich auf Computing und Storaging konzentriert.

JAXenter: Erzähl uns mehr darüber, wie es unter der Projektoberfläche aussieht: Wie funktioniert jclouds?

Ignasi Barrera: Bei jclouds geht es hauptsächlich um Abstraktion von Cloud-Features – und Abstraktionen sind schwer. Viele verschiedene Cloud-Anbieter mit sehr heterogenen Angeboten zu supporten ist eine Herausforderung. Man neigt dazu, Interfaces mit einem Minimum an gemeinsamen Funktionalitäten zu entwickeln, aber dieser Ansatz kann oftmals kaum grundlegende Use Cases erfüllen. Um mehr Flexibilität zu bieten und den Code so portabel wie möglich zu halten, besteht jclouds aus einer mehrschichtigen Architektur mit verschiedenen Ebenen zu Abstraktion und Detail.

Provider- und API-Ebenen bieten Implementierungen für alle supporteten Cloud-Provider-APIs, mit einem Set voll funktionsfähiger Interfaces. Die Abstraktionsschicht besteht aus portablen Models und Interfaces, die Details und Komplexitäten der einzelnen Provider verstecken und zur Kommunikation mit jeder supporteten Cloud genutzt werden können. User können frei wählen, wie portabel sie ihren Code haben wollen und wo die Grenze zwischen hochportablem Code und der Kontrolle über Cloud-spezifische Features und Configurations gezogen werden soll. Sie können zwischen Provider-spezifischen APIs und Code mit zur Portabilität ausgestatteten Abstraktionen wählen – oder beides miteinander kombinieren.

User können frei wählen, wie portabel sie ihren Code haben wollen.

Abgesehen von den meisten existierenden Cloud-Providern, kann jclouds quasi überall laufen gelassen werden. Es hat geringe Abhängigkeiten und stellt einen Treibermechanismus zur Verfügung, der es sehr einfach macht, jclouds auf andere HTTP-Treiber, Logging-Frameworks, Security- oder SSH-Bibliotheken umzukonfigurieren. Durch eigens implementierte Klassen kann das Verhalten von jclouds sogar zur Laufzeit für fast jedes Feature geändert werden.

JAXenter: Kannst du einen typischen Use Case nennen, in dem jclouds‘ Vorteile deutlich werden?

Ignasi Barrera: Das Potenzial von jclouds wird spätestens in Multi-Cloud-Umgebungen deutlich. Es bietet eine perfekte Grundlage für PaaS oder Anwendungsorchestration, wo es hauptsächlich um die Anwendungen geht. Apache Brooklyn ist ein gutes Beispiel für einen solchen Use-Case. jclouds wird hier als IaaS-Schicht zur Bereitstellung und Konfiguration der zugrundeliegenden Infrastruktur genutzt. Auf diese Weise hat es nichts mit dem Großteil der Low-Level-Details zu tun und kann sich auf Anwendungs-Lifecycling, Planung, Überwachung usw. konzentrieren.

Es gibt auch interessante Use Cases für hybride Clouds, wo jclouds die Verwaltung von privater Cloud-Infrastruktur, containerisierten Umgebungen und öffentlichen Clouds mit dem selben Code und portablen Interfaces ermöglicht – unabhängig davon, welche Infrastruktur oder Technologie einzeln dahinter steckt.

JAXenter: Erzähl uns etwas über die Geschichte von jclouds. Wie hat das Projekt angefangen?

Ignasi Barrera: Der Schöpfer von jclouds, Adrian Cole, arbeitete im Jahr 2009 bei Infinispan. Ein Teil seiner Arbeit dort konzentrierte sich auf die Entwicklung eines Anschlusses an Amazon S3. Während dieser Entwicklung erkannte er, dass die vorhandenen Bibliotheken nicht den Bedürfnissen seines Use Cases entsprachen, also begann er, einen spezialisierten Cloud-Treiber zu entwickeln. Der Treiber begann bereits unter dem Namen jclouds und wurde schnell zu einer generischeren Schnittstelle für Cloud-Storage. Bis Ende 2009 wurden einige Berechnungs-Features hinzugefügt und ein neues portables Interface geschaffen. Über die Jahre kamen weitere Cloud APIs, wie DNS, Load Balancer oder SDN ins Projekt hinzu, wodurch sich jclouds als Cloud Toolkit für Java konsolidierte.

JAXenter: Welche Pläne hast du zukünftig für das Projekt?

Ignasi Barrera: In Apache-Projekten gibt es kein „Ich“. Die Community und das Project Management Comittee (PMC) lenken die Richtung der Projekte und alle Entscheidungen werden per Konsens in öffentlichen Diskussionen gefällt. Wenn es allerdings um meine Präferenzen geht; ich würde es gerne sehen, wenn sich jclouds in Richtung mehrerer und besserer Abstraktion für z. B. SDN oder besseren Support für Container und Containerorchestrations-Frameworks entwickeln würde.

JAXenter: Inwiefern verändern Cloud-Technologien IT? Was denkst du?

Ignasi Barrera: Heutzutage kann jedes Start-up Anwendungen entwickeln, die riesige Datenmengen verarbeiten, Deep Learning anbieten oder rechenintensive Tasks lösen. Jeder kann Anwendungen in gewissen Rahmen bauen. Die Übernahme der Cloud hat den Massen eine Technologie gebracht, die zuvor nur großen Firmen vorbehalten war. Diese Firmen haben in der Verbreitung der Cloud eine wichtige Rolle gespielt – sie haben interne Software Open Source gestellt, haben Forschungsberichte und andere Schriften veröffentlicht und durch Zusammen- und Mitarbeit die Entwicklung der Technologie massiv vorangetrieben.

Die Übernahme der Cloud hat den Massen eine Technologie gebracht, die zuvor nur großen Firmen vorbehalten war.

Physische Ressourcen sind keine Grenze mehr und die Verfügbarkeit von Ressourcen, die Menge an zu verarbeitenden Daten und die Nachfrage nach Skalierbarkeit und hoher Verfügbarkeit haben sich verändert. Damit wurde die Art und Weise, wie Anwendungen heutzutage entwickelt und designt werden, geformt. Wir sehen eine starke Bewegung in Richtung verteilter Architekturen und Microservices – neuerdings sogar in Richtung serverloser Architekturen. Die gesamte Branche ändert die Art, wie sie Technologien wahrnimmt und produziert.

JAXenter: Warum ist die Cloud für DevOps relevant?

Ignasi Barrera: Durch die neue Art der Anwendungsentwicklung müssen sich Entwickler umso bewusster sein, wo und wie diese Anwendungen deployt werden und besser verstehen, wie die verschiedenen Komponenten dieser mit anderen Systemen interagieren. Um skalierbare Anwendungen zu bauen, müssen Resilienz und Fehlertoleranz bereits seit den frühsten Entwicklungsphasen berücksichtigt werden, was nicht nur ausreichende Programmierkenntnisse, sondern auch Wissen um das spätere Arbeitsumfeld der Applikation und die Art und Weise voraussetzt, wie darauf zu überwachen, profilieren und troubleshooten ist.

JAXenter: Was ist deiner Meinung nach ein Beispiel für einen positiven Trend im Cloud Computing?

Ignasi Barrera: Open-Source-Frameworks wie Spring Cloud, der Netflix OSS-Stack oder Lagom konsolidieren sich als Best-Practices zur Art, wie verteilte Anwendungen entwickelt werden. In unserer großen, schnellen und digitalen Welt tragen einige der größten globalen Firmen ihren Anteil in Projekten wie Apache Beam, Apache Spark und Apache Kafka bei – und das gleiche gilt für andere Cloud-spezifische Bereiche. Wenn man sich die wichtigsten Cloud-Projekte heutzutage ansieht, stellt man schnell fest, dass der gemeinsame Nenner „Open-Source“ heißt. Open-Source ist ein Synonym für Innovation geworden. Firmen sehen die Vorteile des Open-Source-Modells und haben verstanden, dass es sich dabei um einen guten Weg handelt, Technologien zu schaffen. Sie übernehmen das Modell und tragen mehr und mehr dazu bei, was das Potential unabhängiger Innovationen und zukunftsweisender Technologien erhöht.

JAXenter: Welchen Herausforderungen sehen sich Unternehmen, die eine Cloud-Strategie umsetzen wollen, entgegengestellt?

Ignasi Barrera: Eine der größten Herausforderungen beim Umzug in die Cloud ist die mentale Umstellung auf eine völlig andere Art des Umgangs mit Infrastrukturressourcen und -anwendungen. Für manche, die das Managing von On-Premise-Umgebungen gewohnt sind, kann es sich durchaus so anfühlen als würden sie die Kontrolle verlieren, da der einzige Weg zur Interaktion über APIs und Web-Konsolen führt. Die zweite große Herausforderung, der sich ein Unternehmen beim Wechsel in die Cloud stellen muss, ist Privacy. Wie Daten, insbesondere sensible Daten, von Cloud-Anbietern behandelt werden, ist für Firmen entscheidend und muss vor der Umsetzung einer Cloud-Strategie sehr sorgfältig evaluiert werden.

unnamed

Ignasi ist Mitglied des Apache jclouds Project Management Comitees und der Apache Software Foundation. Er arbeitet seit sieben Jahren im Bereich Cloud-Technologien. Ein Teil dieser Arbeit brachte ihn vor sechs Jahren dazu, bei jclouds zu contributen. Zurzeit arbeitet Ignasi als Senior Engineer bei Abiquo, wo er eine Hybrid-Cloud-Computing-Plattform entwickelt.

Geschrieben von
Kypriani Sinaris
Kypriani Sinaris
Kypriani Sinaris studierte Kognitive Linguistik an der Goethe Universität Frankfurt am Main. Seit 2015 ist sie Redakteurin bei JAXenter und dem Java Magazin.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: