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.

Tim Zöller

March 18, 2020
Tweet

More Decks by Tim Zöller

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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 !!!
  15. 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 !!!
  16. 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
  17. 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
  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. 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!
  21. Auf den Punkt gebracht Verschiedene Implementierungen der Spezifikationen haben, wie

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