Interview mit Dmitry Kornilov, Helidon Project Lead

„Helidon ist für Java-Entwickler, die Microservices schreiben wollen, eine sehr gute Wahl“

Gabriela Motroc

© Shutterstock / Alexey Lesik

Manchmal ist es etwas schwierig, Microservices zu bauen. Mit Helidon, dem neuen Open Source Java Microservices Framework von Oracle, soll dies nun einfacher werden. Wir haben mit Dmitry Kornilov, Project Lead von Helidon, über das Framework und dessen Vorteile gesprochen. Für Java-Entwickler, die Microservices schreiben, ist Helidon sicher einen Blick wert.

Oracle hat Helidon vor Kurzem als neues Open-Source-Projekt der Öffentlichkeit vorgestellt. Neu ist das Set von Java-Bibliotheken allerdings mitnichten, wie Dmitry Kornilov in seinem Blog-Beitrag mitteilt. Die Arbeit an Helidon begann schon vor einiger Zeit und intern wird das Framework bei Oracle bereits in mehr als 10 anderen Projekten eingesetzt.

Projekt Helidon (Griechisch für Schwalbe) soll es Entwicklern leichter machen, Microservices zu bauen. Natürlich könnte man dafür auch Java EE nutzen, aber warum nicht ein Framework nutzen, wenn es schon einmal da ist, oder?

Wir haben mit Dmitry Kornilov, Project Lead von Helidon, über das Framework und dessen Vorteile gesprochen. Für Java-Entwickler, die Microservices schreiben, ist Helidon sicher einen Blick wert.

JAXenter: Helidon ist ein Set von Java-Bibliotheken, die Entwickler beim Bau von Microservices unterstützen. Worin unterscheidet sich die Nutzung von Helidon zu der von Java EE? Wie schafft es Helidon, das Erstellen von Microservices zu vereinfachen?

Dmitry Kornilov: Die Entwicklerlandschaft entwickelt sich rasend schnell weiter und die Developer Experience ändert sich, um den neuen Herausforderungen gerecht zu werden. Manchmal verändert sich alles so schnell, dass Technologien nicht schnell genug angenommen werden. Java EE ist universell und kann genutzt werden, um Monolithen sowie Microservices zu bauen, aber es ist eine stabile Technologie mit sehr viel Legacy Code.

Helidon wurde ausschließlich für die Entwicklung von Microservices designt.

Helidon wurde ausschließlich für die Entwicklung von Microservices designt. Außerdem wurde es von Grund auf darauf ausgelegt und enthält eben keinen Legacy Code. Mit Helidon SE wird ein sehr moderner und reaktiver Ansatz möglich, den viele Entwickler mögen. Wir haben versucht, alles sehr klar zu gestalten: Es wird keine Injection-Magie genutzt, das macht Anwendungen, die auf Helidon SE basieren, sehr einfach zu debuggen. Es werden zudem keine speziellen Plug-ins benötigt und es ist mit sämtlichen IDEs kompatibel.

Für Entwickler, die sich bereits mit Java EE auskennen, gibt es Helidon MP, unsere MicroProfile-Implementierung. MicroProfile beinhaltet einige der beliebten Java EE APIs für das Erstellen von Webanwendungen (JAX-RS, CDI, usw.).

JAXenter: Oracle nutzt Helidon intern bereits in mehr als 10 Projekten. Wie konnten diese Projekte von Helidon profitieren?

Dmitry Kornilov: Der Hintergrund ist, dass Entwickler eben gerne von traditionellen Anwendungsservern wegkommen und lieber Microservices-Architekturen implementieren wollen. Das Jersey-Team hat eine Menge Fragen bezüglich der Nutzung von Jersey+Grizzly gestellt bekommen, um leichtgewichtigere Microservices zu erstellen.

Wir haben Helidon als Lösung angeboten und die meisten Teams haben darin Potential gesehen. Helidon hat zudem Integrationen mit der Oracle Cloud, die für unsere internen Kunden sehr angenehm sind.

JAXenter: Für welche Use Cases wurde Helidon entwickelt?

Dmitry Kornilov: Helidon wurde designt, um Java Microservices zu erstellen. Also ist Helidon für Java-Entwickler, die Microservices schreiben wollen, eine sehr gute Wahl. Das Projekt ist einzigartig, da wir für Java-EE-Entwickler eine Möglichkeit zur Verfügung stellen, bekannte APIs (durch unsere Unterstützung von MicroProfile) zu nutzen, aber dennoch die schlankeren APIs, die von Helidon SE bereitgestellt werden, auszuprobieren.

JAXenter: Welche Tools benötigen Entwickler, um Helidon für die Entwicklung von Anwendungen zu nutzen?

Dmitry Kornilov: Man benötigt entweder JDK 9 oder JDK 8, Maven 3.5 und eine IDE nach Wahl.

JAXenter: Wo liegt der Unterschied zwischen Helidon SE und Helidon MP?

Dmitry Kornilov: Java Frameworks für das Erstellen von Microservices fallen gewöhnlich in verschiedene Kategorien. Dazu zählen:

  • Microframeworks: Einfach, nett und mit einem gewollt kleinen Set von Features ausgestattet. Dazu gehören etwa Apache Spark, Javalin, Micronaut, Helidon SE usw.
  • MicroProfile: Besonders für Java-EE-Entwickler geeignet, aber ein wenig schwergewichtiger als ein Microframework. Manche von ihnen basieren auf vollständigen Java-EE-Anwendungsservern. Dazu gehören etwa Thorntail, OpenLiberty, Payara, Helidon MP usw.
  • Full Stack: Volles Feature-Set. Dazu gehört etwa Spring Boot.

Helidon gibt es in zwei Varianten, die zwei der oben genannten Kategorien abdecken – Microframeworks und MicroProfile. Entwickler entscheidet sich selbst, welche Version sie in ihren Anwendungen verwenden wollen.

  • Helidon SE: Dies ist ein simples, funktionales und leichtgewichtiges Microframework, das auf moderne und reaktive Weise entwickelt wurde. Es gibt keine sogenannte Injection-Magie und es wird keine spezielle Laufzeit benötigt. Als Laufzeit wird das JDK genutzt.
  • Helidon MP: Eine Implementierung von Eclipse MicroProfile, die die gleiche Development Experience bereitstellt, wie für Java-EE-/Jakarta-EE-Entwickler.

JAXenter: Wie fügt sich Helidon ins Universum von Jakarta EE ein?

Dmitry Kornilov: Helidon MP implementiert MicroProfile. I hoffe, dass einige der MicroProfile-Spezifikationen auf kurz oder lang auch in Jakarta EE eingefügt werden. Helidon verwendet zudem einige APIs (etwa JAX-RS, CDI und JSON-P) und Implementierungen (etwa Jersey) von Jakarta EE.

JAXenter: In deinem Blog-Beitrag hast du erwähnt, dass ihr auch an der Unterstützung für die GraalVM arbeitet. Warum wäre dies für Helidon-Nutzer sinnvoll?

Dmitry Kornilov: Anwendungen werden durch die GraalVM-Unterstützung schneller starten und laufen. Schneller laufen bedeutet in dem Fall, dass sie mehr Requests pro Instanz bedienen können. Dies wiederum bedeutet, dass man weniger Instanzen benötigt. Weniger Instanzen bedeuten weniger Kosten. Unterm Strich sparen unsere Kunden durch den Einsatz der GraalVM also bares Geld.

JAXenter: Warum sollten Java-Entwickler Helidon einmal ausprobieren?

Helidon kann man sich als Autobahnauffahrt für die Entwicklung von Microservices in Java vorstellen.

Dmitry Kornilov: Helidon kann man sich als Autobahnauffahrt für die Entwicklung von Microservices in Java vorstellen. Wir hoffen, dass Entwickler durch den Einsatz des Frameworks ihre Produktivität erhöhen können – außerdem ist es ganz neu und hochinteressant. Allein das sollte hoffentlich reichen, um für Java-Entwickler interessant genug zu sein. Wir freuen uns jedenfalls über jegliches Feedback, sei es gut oder schlecht, damit wir die Lücken füllen und die Features verbessern können, die ins Schwarze treffen.

Helidon SE könnte übrigens auch für JavaScript-Entwickler interessant sein, die Java nutzen wollen. Das Helidon SE API ist deckungsgleich mit dem in Node.js.

JAXenter: Wie geht es mit Helidon nun weiter?

Dmitry Kornilov: Die Integration mit der Oracle Cloud via CDI-Erweiterung habe ich ja bereits erwähnt. Wir glauben, dass dies ein Teil von Helidon 1.0 werden wird. Wir planen zudem, einen Reactive HTTP Client hinzuzufügen. Es gibt bereits einen Reactive Web Server, also fehlt der Reactive HTTP Client natürlich. Das ist der kurzfristige Plan.

Nächstes Jahr werden wir eine Webanwendung veröffentlichen, mit deren UI sich Helidon-Komponenten auswählen und Maven-Projekte generieren lassen. Wir wollen zudem die Unterstützung für NoSQL, Eventing und OpenAPI implementieren.

JAXenter: Rein aus Neugier – Warum wurde der Name geändert? J4C klang eigentlich ganz gut…

Für nächstes Jahr ist die Unterstützung für NoSQL, Eventing und OpenAPI geplant.

Dmitry Kornilov: J4C war der interne Name des Projektes. Wir glauben, dass Helidon (Griechisch für Schwalbe, einen kleinen und agilen Vogel) besser klingt und auch besser die Ziele repräsentiert, die wir mit Helidon verfolgen, nämlich ein leichtgewichtiges Set von Bibliotheken zur Verfügung zu stellen, das Java-Entwickler problemlos nutzen können, um Microservices zu bauen.

Außerdem lieben wir Frank! Ach ja, Frank ist der kleine Vogel im Logo von Helidon.

JAXenter: Vielen Dank für das Interview!

Dmitry Kornilov is an Oracle employee, Eclipse EE4J PMC member, Helidon project lead, JSON-B/JSON-P spec lead and EclipseLink committer.

Follow him on Twitter: @m0mus

 

Geschrieben von
Gabriela Motroc
Gabriela Motroc
Gabriela Motroc ist Online-Redakteurin für JAXenter.com. Vor S&S Media studierte Sie International Communication Management an der The Hague University of Applied Sciences.
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "„Helidon ist für Java-Entwickler, die Microservices schreiben wollen, eine sehr gute Wahl“"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Christian
Gast

Bei Helidon zeigt sich eine Lücke in Oracles „Werkzeugkasten“, denn im Java/Jakarta-EE-Bereich fehlt ein Framework für functional reactive Programming. Pivotal hat dafür das ausgezeichnete Framework Reactor, das im Prinzip ein moderenes RxJava ist, und nutzt es in WebFlux, das das Gegenstück zu Helidon ist. Ohne etwas wie Reactor kommt man schnell an die Grenzen.