microprofile - bed-con.orgbed-con.org/2017/files/slides/mihalyi-quest_for_javaee.pdf · process...
TRANSCRIPT
![Page 1: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/1.jpg)
MicroProfile: A Quest for a lightweight and reactive Enterprise Java Platform
Ondro Mihályi, Payara@omihalyi
![Page 2: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/2.jpg)
@omihalyi
Enterprise JungleDatabase
SOAP services
ACID transactions
![Page 3: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/3.jpg)
@omihalyi
Let’s feed it with lots of healthy food...
![Page 4: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/4.jpg)
@omihalyi
All the healthy food we can get …
EJB
XA
JAX-WS
XML
JPA Transactions Monitoring
Resource pooling
Thread management
JMS brokersSecurity JSF
![Page 5: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/5.jpg)
@omihalyi
And even healthier food …
JAX-RSCDI JSON
AsynchronousSimplified Security
![Page 6: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/6.jpg)
@omihalyi
Fundamental Shifts in Computing
● Deliver new features more quickly● Smaller, more agile teams● Deliver business features as discrete services● Scale services independently
● Reduce time to market● Address unpredictable loads● Pay as you go● Containerization
Cloud
Microservices
![Page 7: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/7.jpg)
@omihalyi
Anything else?Big Data ?
Cloud ?
Reactive ?
Microservices ?
No, thanks. I’d rather my juicy CORBA
Docker ?
![Page 8: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/8.jpg)
@omihalyi
We need something better
Java EE ++−−
![Page 9: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/9.jpg)
@omihalyi
−−
Or rather a diet …
Java EE● Flexible● Small disk and memory consumption● Fast start-up times● Simple installation and usage
![Page 10: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/10.jpg)
@omihalyi
WildFly Swarm - build app from fractions
Payara Micro - app server as a runnable JAR
TomEE - embeddable app server built on Tomcat
WebSphere Liberty - generate server subset
Java EE on a diet already
![Page 11: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/11.jpg)
@omihalyi
Payara Micro payara.fish/payara_micro
● Executable JAR ( <60MB )○ Java EE, JCache, CDI event bus
● Automatic clustering and replication● Package app as executable JAR
java -jar payara.jar --deploy app.war
or with the maven plugin:
mvn payara-micro:start
![Page 12: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/12.jpg)
@omihalyi
Payara Micro payara.fish/payara_micro
● Executable JAR ( <60MB )○ Java EE, JCache, CDI event bus
● Automatic clustering and replication● Package app as executable JAR
java -jar payara.jar --deploy app.war --outputUberJar app.jar
java -jar app.jar --port 80
![Page 13: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/13.jpg)
@omihalyi
PathFinder web app with a REST endpoint in 3 flavors
DEMO
https://github.com/OndrejM-demonstrations/Pathfinder-comparison
![Page 14: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/14.jpg)
@omihalyi
After the diet applied...
WildFly Swarm
Payara Micro Spring Boot
File size 105 MB 56 MB 22 MB
Heap size (after GC)
28 MB 30 MB 29 MB
Boot time 12 s 14 s( 10 s --noCluster)
7 s
![Page 15: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/15.jpg)
@omihalyi
Java EE is about standards
Can it provide solutions?
● REST (4.56)● OAuth (4.24), Secrets (4.07)● Configuration (4.17)● Reactive (3.97)● Service Health (3.89)● Circuit Breakers (3.85)
Survey from 2016
![Page 16: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/16.jpg)
@omihalyi
Things have changed...
Java EE needs to
adapt or be replaced in many cases
HTTP/2
OAuth
NoSQL
Docker
Reactive Streams
Micro Services
![Page 17: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/17.jpg)
@omihalyi
We need heroes here!
● Supporting development and adoption of Java EE
● Lobbying vendors to fulfill their commitments
● Finding ways of process & collaboration improvements
● Companies● JSR Expert Group
members● Java User Groups● Individual developers
![Page 18: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/18.jpg)
@omihalyi
Oracle revised Java EE plans at JavaOne 2016
![Page 19: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/19.jpg)
@omihalyi
Oracle revised plans again in 2017
● Java EE 8 the last version governed by
Oracle
● Plans to transfer Java EE to the Eclipse
Foundation
● Possibly with a different name
![Page 20: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/20.jpg)
@omihalyi
Meanwhile vendors & community cooperate
![Page 21: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/21.jpg)
Optimizing Enterprise Javafor a Microservices Architecture
● MicroProfile.io● MicroProfile Discussion Forum (bit.ly/MicroProfileForum)
● MicroProfile Examples (https://github.com/eclipse/microprofile-conference)
![Page 22: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/22.jpg)
@omihalyi
MicroProfile Release Philosophy
Release 1.0
JAX-RSCDI
JSON-P
Buildconsensus Standardize
Rapidly iterateand innovate
Sept 2016
![Page 23: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/23.jpg)
@omihalyi
Bridging Community and Standards
ChoiceApplication PortabilityBackwards
CompatibilityReduced Risk
Broad Collaboration
Encouraged Experimentation
Fail FastRapid Innovation
![Page 24: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/24.jpg)
MicroProfile 1.1August 8, 2017
24
MicroProfile 1.2End of September, 2017
![Page 25: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/25.jpg)
Eclipse MicroProfile 1.1 (Aug, 2017)
25
MicroProfile 1.1
= New= No change from last release
JAX-RS 2.0JSON-P 1.0CDI 1.2
Config 1.0
![Page 26: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/26.jpg)
Configuration 1.0Applications need to be configured based on a running environment. It must be
possible to modify configuration data from outside an application so that the application itself does not need to be repackaged
26
DevTest
Prod @Inject@ConfigProperty(name = "myservice.url")URL myService;
@InjectConfig config;
myService = config .getValue("myservice.url", URL.class)
![Page 27: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/27.jpg)
Eclipse MicroProfile 1.2 (Sep, 2017)
27
MicroProfile 1.2
= New= No change from last release
JAX-RS 2.0JSON-P 1.0CDI 1.2
Config 1.1Fault
Tolerance 1.0
JWTPropagation
1.0
HealthCheck 1.0 Metrics 1.0
![Page 28: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/28.jpg)
@omihalyi
DEMO ARCHITECTURE
WF Swarm WebSphere LP TomEE Payara Micro
https://github.com/eclipse/microprofile-conference
![Page 29: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/29.jpg)
@omihalyi
The MicroProfile demo in numbers
Vendor Service JAR size Heap Starts in
WebSphere LP Session Voting
36 MB 30 MB 8 sec.
WildFly Swarm Session 93 MB 37 MB 11 sec.
Payara Micro Session Schedule
33 MB 27 MB 8 sec.
TomEE Speaker 35 MB 30 MB 7 sec.
![Page 30: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/30.jpg)
@omihalyi
The nature of MicroProfile
● Sand-box Approach to Open Contribution
● High Cadence Release Philosophy● Transparency at all Stages
○ Public forum & chat, github, Eclipse foundation, Apache License
● CDI Centric Programming Model
![Page 31: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/31.jpg)
@omihalyi
Join the Discussion!https://groups.google.com/forum/#!forum/microprofile Or even submit your idea as a
PR in the sandbox project!https://github.com/eclipse/microprofile-sandbox
![Page 32: MicroProfile - bed-con.orgbed-con.org/2017/files/slides/Mihalyi-Quest_for_JavaEE.pdf · process & collaboration improvements Companies JSR Expert Group members Java User Groups Individual](https://reader035.vdocuments.net/reader035/viewer/2022062505/5ed2e3cfc9c4660b6a689a3e/html5/thumbnails/32.jpg)
@omihalyi
The quest continues...
● MicroProfile as a platform to cooperate faster○ feed JCP with proposals
● Future Java EE targeting cloud and microservices○ under community-friendly Eclipse Foundation
● JavaEE Guardians to lobby for the community
Join the adventure!