kubernetes native with quarkus - red hat · 140 mb rest. red hat dallas emerging tech summit - dec...

27
Kubernetes Native with Quarkus Ken Finnigan, Senior Principal Software Engineer

Upload: others

Post on 18-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

Kubernetes Native with QuarkusKen Finnigan, Senior Principal Software Engineer

Page 2: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Introductions

2

Name:Ken Finnigan

Role/team:MP/SmallRye

Where you’re from:Boston (via Aus)

● Technical Lead for Eclipse MicroProfile at Red Hat

● Project Lead for SmallRye

○ Implements Eclipse MicroProfile

● Book Author

○ Enterprise Java Microservices

Page 3: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

3

Page 4: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

An Open Sourcestack to write Java apps

4Source:Insert source data hereInsert source data hereInsert source data here

Cloud Native, Microservices, Serverless

Page 5: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

WHY QUARKUS?

5

Page 6: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

The hidden truth about Java + containers

6

● Designed for throughputs (requests/s)● Startup overhead

○ # of classes, bytecode, JIT● Memory overhead

○ # of classes, metadata, compilation

RSS

Heap Metaspace off-heap

Page 7: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

The hidden truth about Java + containers

7

Container platform

Node

NodeJS

NodeJS

NodeJS

NodeJS

NodeJS

NodeJS

NodeJS

Node

Go Go

Go Go

Go Go

Go Go

Go Go

Go Go

Go Go

Node

HotSpot Heap

HotSpot Heap

HotSpot Heap

HotSpot Heap

Page 8: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

WHAT IS QUARKUS?

8

QUARK: elementary particle / US: hardest thing in computer science

Page 9: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Quarkus Benefits

9

Developer Joy Supersonic Subatomic Java

Unifies

imperative and reactive

Best-of-breed

libraries and standards

Page 10: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Benefit No. 1: Developer Joy

10

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

Page 11: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Benefit No. 2: Supersonic Subatomic Java

11

Quarkus + AOT19 MB

Quarkus + OpenJDK (JIT)77 MB

Traditional Cloud-Native Stack140 MB

REST

Page 12: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Benefit No. 2: Supersonic Subatomic Java

12

REST + CRUD

Quarkus + AOT35 MB

Quarkus + OpenJDK (JIT)130 MB

Traditional Cloud-Native Stack218 MB

Page 13: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Benefit No. 2: Supersonic Subatomic Java

13

Quarkus + AOT 0.014 Seconds

REST

REST + CRUD

Quarkus + OpenJDK 0.75 Seconds

Quarkus + AOT 0.055 Seconds

Quarkus + OpenJDK (JIT) 2.5 Seconds

Traditional Cloud-Native Stack 9.5 Seconds

Traditional Cloud-Native Stack 4.3 Seconds

Time to first response

Page 14: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Benefit No. 3: Unifies Imperative and Reactive

14

● Combine both reactive and imperative development in the same application● Use the technology that fits your use case● Key for reactive systems based on event-driven apps

@InjectSayService say;

@GET@Produces(MediaType.TEXT_PLAIN)public String hello() {

return say.hello();}

@Inject @Channel(”kafka”)Publisher<String> reactiveSay;

@GET@Produces(MediaType.SERVER_SENT_EVENTS)public Publisher<String> stream() {

return reactiveSay;}

Page 15: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Benefit No. 4: Best of Breed Frameworks & Standards

15

Quarkus provides a cohesive, fun to use,

full-stack framework by leveraging a

growing list of over fifty best-of-breed

libraries that you love and use. All wired on

a standard backbone.

Page 16: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

HOW QUARKUS WORKS

16

Page 17: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Move startup time to build time

17

What does a framework do at startup time?

● Parse config files● Classpath & classes scanning

○ for annotations, getters or other metadata● Build framework metamodel objects● Prepare reflection and build proxies● Start and open IO, threads, etc

Page 18: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Build time benefits

18

● Do the work once, not at each start

● All the bootstrap classes are no longer loaded

● Less time to start, less memory used

● Less or no reflection nor dynamic proxy

Page 19: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

SPRING COMPATIBILITY

19

Page 20: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Why Spring on Quarkus?

20

● Capitalize your Spring know-how

● Speed up knowledge transfer and onboarding

● Familiarity

Page 21: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Spring DI and Web

21

● Spring DI and Web○ Dependency injection model

■ @Component, @Autowired, etc.○ Spring Web - Developing REST APIs

■ @RestController, etc.

● Spring Data JPA○ Derived methods○ Custom query methods○ Fragments○ Transactional support

Page 22: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

NATIVE IMAGE

22

Page 23: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Dead code elimination

23

SubstrateVM

Classes

JDKClasses

JDKClasses

SubstrateVM

Classes

JavaApplication

Classes

JavaApplication

Classes

Native Executable

Closed-world assumption

Page 24: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

When to use which VM with Quarkus?

24

JIT - OpenJDK HotSpot

High memory-density requirementsHigh request/s/MBFast startup time

Best raw performance (CPU)Best garbage collectorsHigher heap size usage

Known monitoring toolsCompile Once, Run anywhereLibraries that only work in standard JDK

AOT - GraalVM native image

Highest memory-density requirementsHighest request/s/MB

for low heap size usagesFaster startup time

10s of ms for Serverless

Page 25: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019

Resources

25

● Demos

○ https://github.com/burrsutter/quarkus-todo-app

○ https://github.com/burrsutter/springtodo

● Quarkus

○ https://quarkus.io/

○ https://code.quarkus.io/

○ https://quarkusio.zulipchat.com/

○ https://github.com/quarkusio/quarkus

○ https://twitter.com/quarkusio

Page 26: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

CONFIDENTIAL Designator

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

Red Hat is the world’s leading provider of

enterprise open source software solutions.

Award-winning support, training, and consulting

services make

Red Hat a trusted adviser to the Fortune 500.

Thank you

26

Page 27: Kubernetes Native with Quarkus - Red Hat · 140 MB REST. RED HAT DALLAS EMERGING TECH SUMMIT - DEC 5, 2019 Benefit No. 2: Supersonic Subatomic Java 12 REST + CRUD Quarkus + AOT 35

27

RED HAT DALLAS EMERGIN

G TECH SUM

MIT - DEC 5, 2019

STAY ENGAGEDDevelopers. redhat.comYour access point for no-cost developer tools and product subscriptions, how-tos, and demos

Red Hat User GroupsMeetups for networking and tech deep diveswww.meetup.com/Dallas-Red-Hat-Users-Group/

DevNationVirtual and live eventsCatch replays at https://developers.redhat.com/devnation/

Next.redhat.comStay in touch with the Office of the CTO