Cloud-native Java microservices with MicroProfile
1 Good morning! Guten Morgen!
2 Setting Context
• Building Cloud Native Microservices
• A Cloud Native App Server
• A Better JVM for Cloud
• Time to Code!
3 Building Microservices
4 Why are you here?
“Be like NetFlix” -- ¯\_( )_/¯ ?
5 Why are you here?
• Benefits of Microservices
o Scalability o Independent Deploy-ability o Agile o DevOps o etc
6 Transformation
7 Cloud Native?
• 12 Factor Apps
o Benefits o Concerns o Complications
8 Microservices?
• Secure, fault tolerant, configurable, monitorable, etc
o Benefits o Concerns o Complications
9 Transformation = Culture!
• Tools & Practices
• Processes & Procedures
• Remember the Agile Manifesto? :)
10 An Evolution
11 12 How MicroProfile Helps You
• Industry standard, vendor agonostic
• Best practice patterns & solutions
• Multi-vendor support
13 Eclipse MicroProfile
Open Tracing Health Metrics 1.1 1.1 Check 1.0
JWT Fault Open API 1.0 Propagation Config 1.3 Tolerance 1.1 1.1
Rest Client 1.1 CDI 2.0 JSON-P 1.1 JSON-B 1.0 JAX-RS 2.1
microprofile.io 14 A Cloud Native App Server
15 openliberty.io
16 Design Goals
• Efficient
• Simple to use
• Consistency
• Just enough Application Server
• Very good for virtualized environments
• End of migration
• Agile Ready
17 8
18 A Better JVM For Cloud
19 Cloud Costs
• In The Cloud… More Resources = More $$$
• Small Footprint & Faster Start-up = Less $$$
• More Throughput = Less $$$
• OpenJDK with Eclipse OpenJ9 – perfect for cloud
20 Adopt Eclipse OpenJ9
Startup time is 30% faster with OpenJ9 –Xshareclasses -Xquickstart Footprint is 60% smaller with OpenJ9
Hotspot OpenJ9 OpenJ9 -Xshareclasses - Hotspot OpenJ9 OpenJ9 -Xshareclasses - Xquickstart Xquickstart Hotspot OpenJ9 OpenJ9 -Xshareclasses -Xquickstart Hotspot OpenJ9 OpenJ9 -Xshareclasses -Xquickstart
Achieve peak throughput 70% faster with OpenJ9
OpenJDK9 with HotSpot OpenJDK9 with OpenJ9 OpenJDK9 with OpenJ9 w/AOT -Xtune:virtualized Throughput (transactions/sec)
0 200 400 600 800 1000 1200 1400 1600 Time (sec) http://www.eclipse.org/openj9 https://adoptopenjdk.net/?variant=openjdk8-openj9 21 Summary
• MicroProfile - Java APIs for cloud-native applications o Produce and consume REST services o Handle faults, security, configuration, APIs o Monitor health, metrics and trace request flows • Open Liberty - Java platform for cloud-native applications o Open Source, Simple, Lightweight, Fast o Supports latest MicroProfile and Java EE API o Flexible package to suit your Microservices • Eclopse OpenJ9 Liberty – Java virtual machine for OpenJDK o Smallest memory footprint, fastest startup & highest throughput 22 Time to Code!
23 MicroProfile Guides
24 Useful links
• The tutorial - https://github.com/OpenLiberty/tutorial-microprofile
• Home - https://microprofile.io/
• Eclipse Home - https://eclipse.org/microprofile
• Forum - https://groups.google.com/forum/#!forum/microprofile
• Guides - https://openliberty.io/guides/?search=MicroProfile
• Java - http://www.eclipse.org/openj9/
25 Thank You! & Enjoy the lab! https://github.com/OpenLiberty/tutorial-microprofile
26