Eclipse MicroProfile Starter CONFIDENTIAL Designator with Quarkus - - PowerPoint PPT Presentation

eclipse microprofile starter
SMART_READER_LITE
LIVE PREVIEW

Eclipse MicroProfile Starter CONFIDENTIAL Designator with Quarkus - - PowerPoint PPT Presentation

Eclipse MicroProfile Starter CONFIDENTIAL Designator with Quarkus OpenAlt 2019 Michal Karm Babacek Martin tefanko @_karm @xstefank Principal Quality Engineer, Red Hat Software Engineer, Red Hat C/Java/Go programmer focused on Apache HTTP


slide-1
SLIDE 1 CONFIDENTIAL Designator

OpenAlt 2019

Eclipse MicroProfile Starter with Quarkus

Martin Štefanko

@xstefank Software Engineer, Red Hat MicroProfile committer, Microservices enthusiast JBoss EAP sustaining engineer JBoss Enterprise Application Platform - application server WildFly application server - upstream community version of JBoss EAP Java EE / Jakarta EE specifications (e.g. JAX-RS, CDI, JPA)

1

Michal Karm Babacek

@_karm Principal Quality Engineer, Red Hat C/Java/Go programmer focused on Apache HTTP Server, Tomcat, load-balancing, high-availability, containers and MicroProfile by day; Coding fluorescence microscopy data processing and DNS malware protection toys by night. Avid user

  • f Wildfly and Infinispan clustering. Considers 1MB being plenty of memory and

16ms plenty of time.

1/65535

slide-2
SLIDE 2 CONFIDENTIAL Designator 2

Agenda

  • High-level intro to MicroProfile (15 minutes)

(Martin)

  • High-level intro to Quarkus (5 minutes)

(Karm)

  • Demo of MP Starter: (15 minutes)

(Karm)

  • Demo of MP Starter REST API (5 minutes)

(Karm)

  • More MicroProfile specs and Q&A

(Martin, Karm)

slide-3
SLIDE 3

Enterprise Java in past 20 years

  • Java EE (currently Jakarta EE)

○ Java EE 5 - May 11, 2006 ○ Java EE 6 - December 10, 2009 ○ Java EE 7 - June 12, 2013 ○ Java EE 8 - August 31, 2017

3

slide-4
SLIDE 4

MicroProfile

  • Eclipse MicroProfile is an open-source community specification for Enterprise

Java microservices

  • A community of individuals, organizations, and vendors collaborating within an
  • pen source (Eclipse) project to bring microservices to the Enterprise Java

community

4

slide-5
SLIDE 5

MicroProfile

5

slide-6
SLIDE 6

+Under discussion

  • Long Running Actions (LRA)
  • Service mesh
  • GraphQL
  • Logging
  • ...

6

slide-7
SLIDE 7

Community - individuals, organizations, vendors

7

slide-8
SLIDE 8

Current MicroProfile implementations

8

And some are In Progress: Quarkus, WildFly...

slide-9
SLIDE 9

Differences from Java EE

  • pen source and open community
  • code first approach
  • release cadence

○ MP 1.0

  • Sep 2016

○ MP 1.1

  • Aug 2017

○ MP 1.2

  • Sep 2017

○ MP 1.3

  • Jan 2018

○ MP 1.4 / MP 2.0 - Jun 2018 ○ MP 2.1

  • Oct 2018

9

slide-10
SLIDE 10

Differences from Java EE

  • 3 releases per year (Feb, Jun, Oct)

○ MP 2.2 - Feb 2019 ○ MP 3.0 - Jun 2019 ○ MP 3.1

  • Oct 2019

○ ...

10

slide-11
SLIDE 11

11

MicroProfile 3.2

slide-12
SLIDE 12

12

microprofile.io

slide-13
SLIDE 13

What is MicroProfile Starter

  • MicroProfile Starter generates working sample code for MicroProfile specifications:

○ To lower the learning curve for using MicroProfile specifications ○ To increase developer productivity ○ To deliver solutions faster to the business

  • A starter/generator had been discussed by the community many times before

○ Earliest whisper by James Strachan back at Devoxx BE 2016

  • An independent community member, Rudy De Busscher, on Aug 21, 2018, attended the

bi-weekly MicroProfile community Hangout call and demoed a prototype that he had developed

  • (Rudy was hired by Payara subsequently)
  • Starter team was assembled soon after. Starter Beta released on Feb 6, 2019.
  • Current team members are from many organizations and communities: Rudy, Karm, YK, Ryan,

etc.

  • If you’d like to participate and help us develop the Starter, please post your desire to help us at

microprofile@googlegroups.com to get you looped in ○ Need help developing extensions for IntelliJ IDEA, Eclipse IDE, Netbeans, Eclipse Che

13

slide-14
SLIDE 14

start.microprofile.io

14

  • Examples generator for a

variety of runtimes

  • This is NOT just a pom.xml

generator

  • Sports REST API for easier

integration

  • Best for your first contact

with MicroProfile, using your favourite runtime you are used to

slide-15
SLIDE 15

❤ How to contribute ❤

15

  • Runtimes implementations

○ Adding your MP implementation - ensure it passes the MP TCKs for the umbrella release and is added to the MP implementations page ○ Improving current runtimes implementations. Are you a Launcher or KumuluzEE fan? Helidon expert? Take a look...

  • Contribute to develop more code examples for MP specs

○ Follow these instructions ○ Do a Pull Request on the Starter project ○ Add your implementation or new code examples ○ Test your additions to the MicroProfile starter project ○ Community review, requires 2 acks ○ Merge

slide-16
SLIDE 16

What is Quarkus?

  • A Kubernetes Native Java stack tailored for GraalVM & OpenJDK HotSpot,

crafted from the best of breed Java libraries and standards

  • Great interoperability with containers, small memory footprint
  • Toolchain for building Java applications with a lot of heavy lifting done at build

time instead of runtime

16

slide-17
SLIDE 17

17

Eclipse Vert.x Hibernate RESTEasy Apache Camel Eclipse MicroProfile Netty Kubernetes OpenShift Jaeger Prometheus Apache Kafka Infinispan

Best of breed frameworks and standards

For a complete list of supported extensions: https://github.com/quarkusio/quarkus/tree/master/extensions

slide-18
SLIDE 18

18

A cohesive platform for optimized developer joy:

  • Based on standards, but not limited
  • Unified configuration
  • Zero config, live reload in the blink of an eye
  • Streamlined code for the 80% common

usages, flexible for the 20%

  • No hassle native executable generation

Developer joy

slide-19
SLIDE 19

19

RSS (Resident Set Size)

Quarkus + GraalVM

13 MB

Quarkus + OpenJDK

74 MB

Traditional Cloud-Native Stack

140 MB

REST

Supersonic Subatomic Java - Memory footprint

slide-20
SLIDE 20

20

Boot + First Response Time (in seconds)

Quarkus + GraalVM 0.014 Seconds

REST REST + CRUD

Quarkus + OpenJDK 0.75 Seconds Quarkus + GraalVM 0.055 Seconds Quarkus + OpenJDK 2.5 Seconds Traditional Cloud-Native Stack 9.5 Seconds Traditional Cloud-Native Stack 4.3 Seconds

Time to first response

Supersonic Subatomic Java: Startup time

slide-21
SLIDE 21

21

Supersonic Subatomic Java JVM mode and Native executable trade-offs

Startup Time

...puts Java in FaaS field alongside Go and JS...

Throughput Packaging Size Memory Footprint

saves $ with cloud providers...

slide-22
SLIDE 22

22

Build / Dev / Native modes

  • You can use Quarkus to build a small uberjar

○ https://quarkus.io/guides/maven-tooling.html#uber-jar-maven ○ Use HotSpot or GraalVM to to run it

  • You can work in Dev mode

○ where Quarkus monitors your changed files, quickly recompiles ○ enables hot deployment with background compilation ○ https://quarkus.io/guides/maven-tooling.html#development-mode

  • You can use Quarkus to easily create a single statically linked executable

○ Leverages SubstrateVM and Native image from GraalVM toolchain ○ Single executable for particular architecture ○ https://quarkus.io/guides/building-native-image-guide

slide-23
SLIDE 23

And now, on to the demos!

23

  • 1. Starter web page, examples

https://starter.karms.biz/

  • 2. Downloading Quarkus
  • 3. Your generated examples
  • 4. Other runtimes, Payara, Helidon…
  • 5. REST API
slide-24
SLIDE 24

MicroProfile YouTube Channel Twitter @MicroProfileIO LinkedIn MicroProfile.IO FB MicroProfile Quarkus YouTube Channel Twitter @QuarkusIO LinkedIn Quarkusio FB Quarkusio

slide-25
SLIDE 25

To get the instructions for the demos you have seen today, go to:

bit.ly/MPOpenAlt

slide-26
SLIDE 26

MicroProfile - get involved!

26

Video Hangouts Bi-Weekly & Quarterly General community Meetings MicroProfile Projects Google Groups YouTube Channel

slide-27
SLIDE 27

Known implementations

27

In Progress to pass TCK:

slide-28
SLIDE 28

Eclipse MicroProfile 3.1 Oct 2019

<dependency> <groupId>org.eclipse.microprofile</groupId> <artifactId>microprofile</artifactId> <version>${microProfile.version}</version> <type>pom</type> </dependency>

28

…or select specs as needed…

slide-29
SLIDE 29

What?! This is the takeaway:

29

  • Eclipse MicroProfile, Optimizing Enterprise Java for a Microservices Architecture

https://microprofile.io/

  • Starter to generate your examples projects for selected APIs

https://start.microprofile.io/

https://starter.karms.biz/ (with Quarkus)

  • Quarkus runtime for your next Java application

https://quarkus.io/

slide-30
SLIDE 30

Questions?

30

slide-31
SLIDE 31 CONFIDENTIAL Designator

Thank you

31