Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MicroProfile Implementierungen - Welche passt zu mir?

MicroProfile Implementierungen - Welche passt zu mir?

Eine zunehmende Anzahl von Entwicklern interessiert sich für Eclipse MicroProfile. Mit der Entscheidung für die Spezifikation alleine ist es jedoch noch nicht getan – zusätzlich gilt es, eine Auswahl aus den zahlreichen MicroProfile-Implementierungen zu treffen. Payara Micro, Thorntail, kumuluzEE? Oder doch vielleicht OpenLiberty oder Helidon?

Die Frage, welche Implementierung die beste ist, werden wir in diesem Vortrag nicht klären. Wir werden aber zusammen einen Blick auf die Unterschiede zwischen den Kandidaten werfen. Wie lassen sie sich in einen Entwicklerworkflow einbinden, wie umfangreich gestalten sich ihre Dokumentationen? Wie häufig werden neue Releases und Fixes veröffentlicht, und welche Implementierungen liegen den einzelnen Spezifikationen überhaupt zugrunde? Am Ende steht ein Überblick, der die Grundlage für eine informierte, individuelle Entscheidung legen kann.

A6569b59297bd3e7cbda6de64e1e506b?s=128

Tim Zöller

March 18, 2020
Tweet

Transcript

  1. Microprofile Implementierungen Welche passt zu mir?

  2. Wer bin ich? Tim Zöller JUG Mainz, ilum:e informatik ag

    > 10 Jahre Java Entwicklung 6 Jahre Consulting 4 Jahre Teamleitung 3 Jahre JUG Mainz
  3. Was Ist Eclipse Microprofile? Eine kurzer Überblick über das Projekt

    – was macht es besonders? Was bedeutet es, “kompatibel” zur Spezifikation zu sein? Welche (Gängigen) Implementierungen gibt es? Vorstellung der Runtimes, welche die neueren Spezifikationen implementieren. Wer steckt dahinter? Was ist das Ziel? Implementierungen gegenübergestellt Welche Gemeinsamkeiten und Unterschiede gibt es? Was sind die Alleinstellungsmerkmale? Fazit Was könnt ihr aus der Präsentation mitnehmen? Was kann euch die Entscheidung vereinfachen? Die Agenda
  4. Was ist Eclipse MicroProfile?

  5. Die Spezifikation

  6. Die Spezifikation (?) Momentan nicht definiert!

  7. Welche Implementierungen gibt es?

  8. Aktuelle Implementierungen Leichtgewichtige Microservices Geführt von Oracle Native Image Unterstützung

    Standalone-fähig Helidon Start als kommerziell supporteter Glassfish Fork Solide Basis Standalone-fähig Appserver-fähig Payara Geführt von RedHat Vormals: WildFly Swarm Abgekündigt bis September Standalone-fähig Thorntail Geführt von IBM Open Source Kern von WebSphere Liberty Standalone-fähig Appserver-fähig OpenLiberty Geführt von Sunesis Ursprünglich: Java EE API cloud ready Standalone-fähig Verbreitung in Slowenien und Österreich Kumuluz EE Geführt von RedHat Native Image Unterstützung Standalone-fähig Eigenes Ökosystem Quarkus
  9. Nicht berücksichtigt TomEE Keine Unterstützung für Versionen > 2.1 (In

    stabilen Versionen) Wildfly 19 Bislang nur Support in Wildfly 19 Beta Websphere Liberty Nicht Open Source
  10. Steckbrief: Helidon Sponsor: Oracle Besonderheiten: Geringer Footprint Reaktiver Kern Ohne

    MP Features: Native Image-fähig Projektstart: Februar 2019 Social: @helidon_project https://github.com/oracle/helidon Wichtige Personen: Dmitry Kornilov, Project Lead Einsatz: Sammlung von Bibliotheken auf Netty Basis
  11. Steckbrief: Payara Sponsor: Payara Services Ltd. Einsatz: Application Server FAT

    JAR oder standalone Besonderheiten: Java EE / Jakarta EE kompatibel (Standalone “nur” Web Profile) Projektstart: 2014 Social: @Payara_Fish https://github.com/payara/Payara Wichtige Personen: Steve Millidge, Gründer
  12. Steckbrief: Thorntail Sponsor: Red Hat Besonderheiten: Unterstützung einiger Jakarta EE

    Specs EOL im September Projektstart: 2015 (als Wildfly Swarm) Social: @thorntail_io https://github.com/thorntail/thorntail Wichtige Personen: Ladislav Thon, Project Lead Einsatz: FAT JAR fähig Smallrye Specs
  13. Steckbrief: Thorntail Sponsor: Red Hat Besonderheiten: Unterstützung einiger Jakarta EE

    Specs EOL im September Projektstart: 2015 (als Wildfly Swarm) Social: @thorntail_io https://github.com/thorntail/thorntail Wichtige Personen: Ladislav Thon, Project Lead Einsatz: FAT JAR fähig Smallrye Specs
  14. Steckbrief: OpenLiberty Sponsor: IBM Besonderheiten: Voll JEE kompatibel Hot Reload

    im Dev Modus Projektstart: September 2017 Social: @OpenLibertyIO https://github.com/OpenLiberty/open-liberty Wichtige Personen: Alasdair Nottingham, Project Lead Einsatz: Application Server FAT JAR oder standalone
  15. Steckbrief: Kumuluz EE Sponsor: Sunesis Besonderheiten: Geringer Footprint Tools für

    Service Discovery Dukes Choice Award 2016 Projektstart: 2014 Social: @kumuluz https://github.com/kumuluz/kumuluzee Wichtige Personen: Jan Meznarič Einsatz: Sammlung von Bibliotheken FAT JAR
  16. Steckbrief: Quarkus Sponsor: Red Hat Besonderheiten: Native Image fähig! Kein

    voller CDI Support Hot Reload im Dev Modus Projektstart: Februar 2019 Social: @QuarkusIO https://github.com/quarkusio/quarkus Wichtige Personen: Mark Little, VP of Engineering John Clingan, Senior Principal Product Manager Einsatz: FAT JAR Smallrye Specs
  17. Implementierungen gegenübergestellt

  18. Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung

    3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11
  19. Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung

    3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11
  20. Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung

    3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11 !!!
  21. Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung

    3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11 !!!
  22. Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung

    3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11
  23. Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung

    3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11
  24. Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung

    3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11 !!!
  25. Abhängigkeiten Thorntail Quarkus Payara OpenLiberty KumuluzEE Helidon Höchste MicroProfile Unterstützung

    3.2 3.2 3.2 3.2 3.2 3.2 Lizenz Apache License 2.0 Apache License 2.0 CDDL und GNU EPL v1 MIT Apache License 2.0 Kommerzieller Support Red Hat Red Hat Payara Services Ltd. IBM und Red Hat Sunesis - CDI Implementierung Weld Quarkus Arc Weld Weld Weld Weld JAX-RS Implementierung RestEasy RestEasy Jersey Apache CXF Jersey Jersey JSON-B Implementierung Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Eclipse Yasson Maven / Gradle Plugin Ja Ja Ja Ja Ja Nein Unterstützte Java Versionen 8, 11 8, 12 8, 11 9, 11, 13 8-12 8, 11
  26. Jakarta EE Native Image Low Footprint

  27. Und endlich… das Fazit

  28. Welche passt zu dir? Alle stabil und Einsatzbereit! Supportverträge mit

    Hersteller existent? Zusätzliche JEE Features hilfreich? Geringer Fußabdruck spart Kosten? Entwicklerworkflow? EGAL!
  29. Auf den Punkt gebracht Verschiedene Implementierungen der Spezifikationen haben, wie

    beabsichtigt, Implementierungen für viele verschiedene Anwendungsfälle zur Folge Der Punkt