SlideShare a Scribd company logo
1 of 52
Download to read offline
Implementing Microservices with
Jakarta EE and MicroProfile
Ivar Grimstad, Cybercom Sweden, EE4J PMC Lead
Kevin Sutter, IBM, EE4J PMC and MicroProfile Lead
Abstract
● https://dvbe18.confinabox.com/talk/PGM-5344/Implementing_Microservices_with_Jakarta_EE_and_Micro
Profile
Java EE was not advancing fast enough. Enterprise Java was being left in the dust in the microservices development
environment. Customers were wondering when Java EE 8 was going to complete and what it was going to contain. And, what
comes after Java EE? The answer is the Eclipse MicroProfile and Eclipse Jakarta EE projects.
In this session we will discuss and demonstrate the MicroProfile programming model for developing microservice
applications. Although MicroProfile is currently based on Java EE technologies, the expectation is that this will evolve to using
the corresponding Jakarta EE technologies. Thus, the synergy between these two Eclipse projects is already starting.
We will also discuss the current state of the Jakarta EE effort. Demonstrating the building and testing of various Jakarta EE
(EE4J) projects is also on the agenda (the exact content to be determined based on the state of the transition efforts).
•
•
•
•
…
•
@ivar_grimstad
https://github.com/ivargrimstad
https://www.linkedin.com/in/ivargrimstad
JavaOne 2015: Java EE – Relevant or Elephant?
5
http://parentrap.org/2014/09/29/easy-parenting-part-iii-the-donts-list/
6
What can we do to
advance microservice
development in the
Enterprise Java space?
-Java EE Community, early 2016
What Happened Next?
Characteristics
7
Specs, APIs, TCKs
Community Driven
Lightweight, Iterative
Processes
No Reference
Impls!
JavaOne 2016
8
CDI 1.2 JAX-RS 2.0 JSON-P 1.0
MicroProfile 1.0
Announced!
Basic Building Blocks for Microservices
CDI 2.0
Fast-forward two years...
9
JAX-RS 2.1 JSON-P 1.1
MicroProfile 2.1
JSON-B 1.0
Fault
Tolerance
1.1
Metrics 1.1
JWT
Propagation
1.1
Health
Check 1.0
Open
Tracing 1.2
Open API
1.0
Rest Client
1.1
Config 1.3
17
Component
Releases!
7 Platform
Releases!
MicroProfile
2.1
CDI 2.0
Roadmap...
10
JAX-RS 2.1 JSON-P 1.1
MicroProfile 2.x
JSON-B 1.0
Fault
Tolerance
1.1
Metrics 1.1
JWT
Propagation
1.1
Health
Check 1.0
Open
Tracing 1.2
Open API
1.0
Rest Client
1.1
Config 1.3
Reactive
Operators
1.0
Reactive
Messaging
1.0
Service
Mesh /
ISTIO 1.0
... Component Updates
● Health Check 1.1
● Rest Client 1.2
● Config 1.4
● Metrics 2.0
● Fault Tolerance 1.2
● ...
Compatible Implementations!
11
https://wiki.eclipse.org/MicroProfile/Implementation
Meanwhile…
12
2017 - 2018
39 EE4J Projects and counting…
● 20% Project Proposal has been posted for community review
● 40% Project committers and resources have been provisioned
● 60% Initial Contribution provided to the Eclipse IP Team
● 80% Initial Contribution Pushed to Git Repository
● 100% Project has engaged in its first Release Review
13
https://www.eclipse.org/ee4j/status.php
Eclipse
Glassfish
5.1-RC1!
Eclipse Glassfish Release Schedule
✓Sep 21 -- All code required for GF build contributed.
✓Sep 23 — Eclipse GlassFish builds.
✓Oct 1 -- Java EE 8 CTS testing begins.
✓Oct 22 -- Eclipse GlassFish 5.1-RC1 milestone release.
✓Oct 31 — CI/CD release pipelines completed.
●Nov 12? — Dependencies updated. All projects are released to OSSRH and have dependencies to Eclipse version of other
components.
●Nov 30 -- Release Reviews completed.
●Dec 14 -- Eclipse GlassFish 5.1 release. All Java EE 8 CTS tests passed.
14
EE4J CI/CD Progress
15
https://github.com/orgs/eclipse-ee4j/projects/1
EE4J Staging Release: APIs
16
https://github.com/orgs/eclipse-ee4j/projects/4
EE4J Staging Release: Implementations
17
https://github.com/orgs/eclipse-ee4j/projects/5
Jakarta Maven Coordinates
18
https://github.com/orgs/eclipse-ee4j/projects/2
Specification Process
19
Specification Process 1.0
● Replacement for JCP Standards Process
● Public Draft Available for Review (Oct 17, 2018)
○ https://docs.google.com/document/d/1ongNU
yGvZPtrcuxA7RQNV2qBESFcAphQbzdk3pU
IQ5s/edit#heading=h.o84um3qls283
○ Comments accepted until Oct 31, 2018
● Guinea Pig Spec Project
○ JNoSQL
Additional Work Items in progress...
20
TCK
Compliance
Process
TCK License
Specification
License
...
Similarities between MicroProfile and Jakarta EE
● Focused on Microservice and Cloud Native Development
● Desire Agile Development Practices
● Code First Mentality
21
Characteristics
22
Specs, APIs, TCKs
Community Driven
Lightweight, Iterative
Processes
No Reference
Impls!
Differences between MicroProfile and Jakarta EE
● MicroProfile has an established release process and cycle
○ 7 major releases and 17 component releases in its 2 years of existence
○ Jakarta EE is planning for 1-2 major releases per year (components may have more)
23
Differences between MicroProfile and Jakarta EE
● MicroProfile has an established release process and cycle
○ 7 major releases and 17 component releases in its 2 years of existence
○ Jakarta EE is planning for 1-2 major releases per year (components may have more)
● MicroProfile is not a Standards body
○ Jakarta EE needs to replace the JCP
24
Differences between MicroProfile and Jakarta EE
● MicroProfile has an established release process and cycle
○ 7 major releases and 17 component releases in its 2 years of existence
○ Jakarta EE is planning for 1-2 major releases per year (components may have more)
● MicroProfile is not a Standards body
○ Jakarta EE needs to replace the JCP
● Jakarta EE brand is valuable and requires stringent compliance testing
○ MicroProfile’s compatibility statements are strictly on the honor system
25
Some positive signs...
26
Rest Client 1.x JAX-RS 2.x
???
More positive signs...
27
Config JSR
Config
Specification
???
Reactive Platform...
28
Reactive
Operators
1.0
Reactive
Messaging
1.0
● https://www.lightbend.com/blog/how-the-microprofile-community-will-shape-jakarta-ee
● Start in MicroProfile with the end goal of becoming part of Jakarta EE
???
Other Integrations...
29
Fault Tolerance
● Retry
● Timeout
● CircuitBreaker
● Bulkhead
● Fallback
Fault Tolerance
● Retry
● Timeout
● CircuitBreaker
● Bulkhead
● Fallback
???
Jakarta EE Community
30
MicroProfile Community
31
Both Communities
32
33
Anticipated Relationship
34
● Ongoing MicroProfile innovation on top of Jakarta EE, with desired adoption
of foundational technologies into JakartaEE.next
Coding Exercises with Ivar...
References
● https://openliberty.io/blog/2018/08/16/whats-next-microprofile-jakartaee.html
● https://microprofile.io
○ https://projects.eclipse.org/projects/technology.microprofile
○ https://microprofile.io/projects/
○ https://wiki.eclipse.org/MicroProfile/Implementation
○ https://openliberty.io/guides/
● https://jakarta.ee
○ https://projects.eclipse.org/projects/ee4j/
○ https://github.com/eclipse-ee4j/ee4j
○ https://www.eclipse.org/ee4j/status.php
○ https://github.com/orgs/eclipse-ee4j/projects/1
38
MicroProfile Component Backup Material
39
Open Tracing
40
URL: https://github.com/eclipse/microprofile-opentracing
Latest Release: https://github.com/eclipse/microprofile-opentracing/releases
Tracing the flow of a request in a distributed environment has always been
challenging but it is even more complex in a microservices architecture, where
requests traverse across not just architectural tiers but also multiple services. The
MicroProfile OpenTracing API provides a standard for instrumenting microservices
for distributed tracing.
Open API
41
URL: https://github.com/eclipse/microprofile-open-api
Latest Release: https://github.com/eclipse/microprofile-open-api/releases
OpenAPI provides Java interfaces and programming models which allow Java
developers to natively produce OpenAPI v3 documents from their JAX-RS
applications.
Rest Client
42
URL: https://github.com/eclipse/microprofile-rest-client
Latest Release: https://github.com/eclipse/microprofile-rest-client/releases
In the Microservices world, we typically talk REST to other services. While the
JAX-RS specification defines a fluent API for making calls, it is difficult to make it a
true type safe client. MicroProfile Rest Client makes it easy to take an interface
definition and create a JAX-RS client from it.
URL: https://github.com/eclipse/microprofile-config
Latest Release: https://github.com/eclipse/microprofile-config/releases
Applications need to be configured based on a running environment. Provides a
standard way to define a hierarchy of config sources from which environmental
config may be injected into a running application.
Config
43
Dev
Test
Prod
Fault Tolerance
44
URL: https://github.com/eclipse/microprofile-fault-tolerance
Latest Release: https://github.com/eclipse/microprofile-fault-tolerance/releases
Fault tolerance is about leveraging different strategies to guide the execution and
result of some logic. Defines annotations for container-brokered timeouts, retries,
fallbacks, circuit-breakers and bulkheads. Simplifies the application-handling of
failure in microservice architectures.
URL: https://github.com/eclipse/microprofile-metrics
Latest Release: https://github.com/eclipse/microprofile-metrics/releases
To ensure reliable operation of software it is necessary to monitor essential
system parameters. Defines annotations to define metrics and well-known
monitoring endpoints to gather them from.
Metrics
45
Metric
Registry ● Required Base metrics
● Application metrics
● Vendor-specific metrics
JWT Propagation
46
URL: https://github.com/eclipse/microprofile-jwt-auth
Latest Release: https://github.com/eclipse/microprofile-jwt-auth/releases
The security requirements that involve microservice architectures are strongly
related with RESTful Security. Defines standard JWT claims so the content of a
JWT token to be used in Java EE RBAC – identifying user principle name and
group names that a container can map to deployment roles.
Health Check
47
URL: https://github.com/eclipse/microprofile-health
Latest Release: https://github.com/eclipse/microprofile-health/releases
Health checks are used to probe the state of a computing node from another
machine (i.e. kubernetes service controller) with the primary target being cloud
infrastructure environments where automated processes maintain the state of
computing nodes
Reactive Streams Operators (under construction)
48
URL: https://github.com/eclipse/microprofile-reactive-streams
Latest Release:
https://github.com/eclipse/microprofile-reactive-streams/releases
Reactive Streams is an integration SPI - it allows two different libraries that provide asynchronous
streaming to be able to stream data to and from each other.
Reactive Streams is not however designed to be used directly by application developers. The semantics
defined by Reactive Streams are very strict, and are non trivial, particularly in the areas of thread safety,
to implement correctly. Typically, application developers are expected to use third party libraries that
provide the tools necessary to manipulate and control streams. Examples include Akka Streams, RxJava
and Reactor.
Reactive Messaging (under construction)
49
URL: https://github.com/eclipse/microprofile-reactive-messaging
Latest Release: N/A
User annotates simple methods…container creates and manages Reactive Streams:
Service Mesh / ISTIO (under construction)
50
URL: https://github.com/eclipse/microprofile-service-mesh
Latest Release: N/A
MicroProfile defines programming model for developing cloud-native
microservices. Cloud Native microservices developed with MicroProfile can take
advantage of a Service Mesh by extracting many concerns away from the
development of the microservice itself. It is important for MicroProfile to
understand the capabilities of service mesh, so that MicroProfile can offer
complimentary features for the infrastructure and avoid the conflicts.
51Code One 2018
https://jakarta.ee/news/2018/04/24/jakarta-ee-community-survey/
Implementing Microservices with Jakarta EE and MicroProfile

More Related Content

What's hot

OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansOpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansMichael Vorburger
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020Emily Jiang
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and MicroserviceInho Kang
 
Jakarta EE and MicroProfile - EclipseCon 2020
Jakarta EE and MicroProfile - EclipseCon 2020Jakarta EE and MicroProfile - EclipseCon 2020
Jakarta EE and MicroProfile - EclipseCon 2020Josh Juneau
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)QAware GmbH
 
Securing microservices continuous delivery using grafeas and kritis
Securing microservices continuous delivery using grafeas and kritisSecuring microservices continuous delivery using grafeas and kritis
Securing microservices continuous delivery using grafeas and kritisVishal Banthia
 
Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...Michele Orsi
 
MicroProfile: Optimizing Java EE for a Microservices Architecture
MicroProfile: Optimizing Java EE for a Microservices ArchitectureMicroProfile: Optimizing Java EE for a Microservices Architecture
MicroProfile: Optimizing Java EE for a Microservices Architecturejclingan
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsAmbassador Labs
 
Grails 4: Upgrade your Game!
Grails 4: Upgrade your Game!Grails 4: Upgrade your Game!
Grails 4: Upgrade your Game!Zachary Klein
 
Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesAmbassador Labs
 
MicroProfile Devoxx.us
MicroProfile Devoxx.usMicroProfile Devoxx.us
MicroProfile Devoxx.usjclingan
 
Microservices development at scale
Microservices development at scaleMicroservices development at scale
Microservices development at scaleVishal Banthia
 
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなどJakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなどオラクルエンジニア通信
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021Werner Keil
 
You Want to Kubernetes? You MUST Know Containers!
You Want to Kubernetes? You MUST Know Containers!You Want to Kubernetes? You MUST Know Containers!
You Want to Kubernetes? You MUST Know Containers!VMware Tanzu
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and SpringVMware Tanzu
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
Spring Framework 5.2: Core Container Revisited
Spring Framework 5.2: Core Container RevisitedSpring Framework 5.2: Core Container Revisited
Spring Framework 5.2: Core Container RevisitedVMware Tanzu
 
QCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentQCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentAmbassador Labs
 

What's hot (20)

OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plansOpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
OpenDaylight Developers Experience 1.5: Eclipse Setup, HOT reload, future plans
 
Cloud nativemicroservices jax-london2020
Cloud nativemicroservices   jax-london2020Cloud nativemicroservices   jax-london2020
Cloud nativemicroservices jax-london2020
 
DevOps and Microservice
DevOps and MicroserviceDevOps and Microservice
DevOps and Microservice
 
Jakarta EE and MicroProfile - EclipseCon 2020
Jakarta EE and MicroProfile - EclipseCon 2020Jakarta EE and MicroProfile - EclipseCon 2020
Jakarta EE and MicroProfile - EclipseCon 2020
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
Securing microservices continuous delivery using grafeas and kritis
Securing microservices continuous delivery using grafeas and kritisSecuring microservices continuous delivery using grafeas and kritis
Securing microservices continuous delivery using grafeas and kritis
 
Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...Kubernetes and lastminute.com: our course towards better scalability and proc...
Kubernetes and lastminute.com: our course towards better scalability and proc...
 
MicroProfile: Optimizing Java EE for a Microservices Architecture
MicroProfile: Optimizing Java EE for a Microservices ArchitectureMicroProfile: Optimizing Java EE for a Microservices Architecture
MicroProfile: Optimizing Java EE for a Microservices Architecture
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
Grails 4: Upgrade your Game!
Grails 4: Upgrade your Game!Grails 4: Upgrade your Game!
Grails 4: Upgrade your Game!
 
Webinar: Code Faster on Kubernetes
Webinar: Code Faster on KubernetesWebinar: Code Faster on Kubernetes
Webinar: Code Faster on Kubernetes
 
MicroProfile Devoxx.us
MicroProfile Devoxx.usMicroProfile Devoxx.us
MicroProfile Devoxx.us
 
Microservices development at scale
Microservices development at scaleMicroservices development at scale
Microservices development at scale
 
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなどJakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
Jakarta EE 最前線 - Jakarta EEの現在、ロードマップなど
 
OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021OpenDDR and Jakarta MVC - JavaLand 2021
OpenDDR and Jakarta MVC - JavaLand 2021
 
You Want to Kubernetes? You MUST Know Containers!
You Want to Kubernetes? You MUST Know Containers!You Want to Kubernetes? You MUST Know Containers!
You Want to Kubernetes? You MUST Know Containers!
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and Spring
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Spring Framework 5.2: Core Container Revisited
Spring Framework 5.2: Core Container RevisitedSpring Framework 5.2: Core Container Revisited
Spring Framework 5.2: Core Container Revisited
 
QCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentQCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented Development
 

Similar to Implementing Microservices with Jakarta EE and MicroProfile

Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens
 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileRed Hat Developers
 
MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?Ian Robinson
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionJohn Archer
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlcAlexey Tokar
 
Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​Edward Burns
 
Contributing to JDK Mission Control
Contributing to JDK Mission ControlContributing to JDK Mission Control
Contributing to JDK Mission ControlMarcus Hirt
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MMarkus Eisele
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Jakarta Concurrency: Present and Future
Jakarta Concurrency: Present and FutureJakarta Concurrency: Present and Future
Jakarta Concurrency: Present and FuturePayara
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EEJ On The Beach
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EEMarkus Eisele
 
Micronaut: A new way to build microservices
Micronaut: A new way to build microservicesMicronaut: A new way to build microservices
Micronaut: A new way to build microservicesLuram Archanjo
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessMarkus Eisele
 
Migration from Java EE to JakartaEE 10 - Challenges & Opportunities
Migration from Java EE to JakartaEE 10 - Challenges & OpportunitiesMigration from Java EE to JakartaEE 10 - Challenges & Opportunities
Migration from Java EE to JakartaEE 10 - Challenges & OpportunitiesBuhake Sindi
 
OpenCloudNative-BeJUG.pptx
OpenCloudNative-BeJUG.pptxOpenCloudNative-BeJUG.pptx
OpenCloudNative-BeJUG.pptxEmilyJiang23
 

Similar to Implementing Microservices with Jakarta EE and MicroProfile (20)

Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
 
Introduction to Eclipse Microprofile
Introduction to Eclipse MicroprofileIntroduction to Eclipse Microprofile
Introduction to Eclipse Microprofile
 
MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?MicroProfile and Jakarta EE - What's Next?
MicroProfile and Jakarta EE - What's Next?
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlc
 
Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​Jakarta EE 11 Status Update​
Jakarta EE 11 Status Update​
 
Contributing to JDK Mission Control
Contributing to JDK Mission ControlContributing to JDK Mission Control
Contributing to JDK Mission Control
 
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor TopicJavantura v6 - JDK 11 & JDK 12 - Dalibor Topic
Javantura v6 - JDK 11 & JDK 12 - Dalibor Topic
 
Java in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/MJava in the age of containers - JUG Frankfurt/M
Java in the age of containers - JUG Frankfurt/M
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
 
Jakarta Concurrency: Present and Future
Jakarta Concurrency: Present and FutureJakarta Concurrency: Present and Future
Jakarta Concurrency: Present and Future
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EE
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EE
 
Micronaut: A new way to build microservices
Micronaut: A new way to build microservicesMicronaut: A new way to build microservices
Micronaut: A new way to build microservices
 
Java in the Age of Containers and Serverless
Java in the Age of Containers and ServerlessJava in the Age of Containers and Serverless
Java in the Age of Containers and Serverless
 
Migration from Java EE to JakartaEE 10 - Challenges & Opportunities
Migration from Java EE to JakartaEE 10 - Challenges & OpportunitiesMigration from Java EE to JakartaEE 10 - Challenges & Opportunities
Migration from Java EE to JakartaEE 10 - Challenges & Opportunities
 
OpenCloudNative-BeJUG.pptx
OpenCloudNative-BeJUG.pptxOpenCloudNative-BeJUG.pptx
OpenCloudNative-BeJUG.pptx
 
oraclewls-jrebel
oraclewls-jrebeloraclewls-jrebel
oraclewls-jrebel
 

More from Kevin Sutter

Bmc 4286-micro profile-a programming model for microservices-based applications
Bmc 4286-micro profile-a programming model for microservices-based applicationsBmc 4286-micro profile-a programming model for microservices-based applications
Bmc 4286-micro profile-a programming model for microservices-based applicationsKevin Sutter
 
Haj 4308-open jpa, eclipselink, and the migration toolkit
Haj 4308-open jpa, eclipselink, and the migration toolkitHaj 4308-open jpa, eclipselink, and the migration toolkit
Haj 4308-open jpa, eclipselink, and the migration toolkitKevin Sutter
 
Ham 4393-micro profile, java ee, and the application server
Ham 4393-micro profile, java ee, and the application serverHam 4393-micro profile, java ee, and the application server
Ham 4393-micro profile, java ee, and the application serverKevin Sutter
 
Haj 4328-java ee 7 overview
Haj 4328-java ee 7 overviewHaj 4328-java ee 7 overview
Haj 4328-java ee 7 overviewKevin Sutter
 
Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Kevin Sutter
 
Bas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionBas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionKevin Sutter
 
InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)
InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)
InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)Kevin Sutter
 
InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)Kevin Sutter
 
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphereAAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphereKevin Sutter
 
AAI 2235-OpenJPA and EclipseLink Usage Scenarios Explained
AAI 2235-OpenJPA and EclipseLink Usage Scenarios ExplainedAAI 2235-OpenJPA and EclipseLink Usage Scenarios Explained
AAI 2235-OpenJPA and EclipseLink Usage Scenarios ExplainedKevin Sutter
 
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7Kevin Sutter
 

More from Kevin Sutter (11)

Bmc 4286-micro profile-a programming model for microservices-based applications
Bmc 4286-micro profile-a programming model for microservices-based applicationsBmc 4286-micro profile-a programming model for microservices-based applications
Bmc 4286-micro profile-a programming model for microservices-based applications
 
Haj 4308-open jpa, eclipselink, and the migration toolkit
Haj 4308-open jpa, eclipselink, and the migration toolkitHaj 4308-open jpa, eclipselink, and the migration toolkit
Haj 4308-open jpa, eclipselink, and the migration toolkit
 
Ham 4393-micro profile, java ee, and the application server
Ham 4393-micro profile, java ee, and the application serverHam 4393-micro profile, java ee, and the application server
Ham 4393-micro profile, java ee, and the application server
 
Haj 4328-java ee 7 overview
Haj 4328-java ee 7 overviewHaj 4328-java ee 7 overview
Haj 4328-java ee 7 overview
 
Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1Haj 4344-java se 9 and the application server-1
Haj 4344-java se 9 and the application server-1
 
Bas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionBas 5676-java ee 8 introduction
Bas 5676-java ee 8 introduction
 
InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)
InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)
InterConnect 2016, OpenJPA and EclipseLink Usage Scenarios (PEJ-5303)
 
InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)InterConnect 2016 Java EE 7 Overview (PEJ-5296)
InterConnect 2016 Java EE 7 Overview (PEJ-5296)
 
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphereAAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
AAI 2236-Using the New Java Concurrency Utilities with IBM WebSphere
 
AAI 2235-OpenJPA and EclipseLink Usage Scenarios Explained
AAI 2235-OpenJPA and EclipseLink Usage Scenarios ExplainedAAI 2235-OpenJPA and EclipseLink Usage Scenarios Explained
AAI 2235-OpenJPA and EclipseLink Usage Scenarios Explained
 
AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7AAI 1713-Introduction to Java EE 7
AAI 1713-Introduction to Java EE 7
 

Recently uploaded

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 

Recently uploaded (20)

Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 

Implementing Microservices with Jakarta EE and MicroProfile

  • 1. Implementing Microservices with Jakarta EE and MicroProfile Ivar Grimstad, Cybercom Sweden, EE4J PMC Lead Kevin Sutter, IBM, EE4J PMC and MicroProfile Lead
  • 2. Abstract ● https://dvbe18.confinabox.com/talk/PGM-5344/Implementing_Microservices_with_Jakarta_EE_and_Micro Profile Java EE was not advancing fast enough. Enterprise Java was being left in the dust in the microservices development environment. Customers were wondering when Java EE 8 was going to complete and what it was going to contain. And, what comes after Java EE? The answer is the Eclipse MicroProfile and Eclipse Jakarta EE projects. In this session we will discuss and demonstrate the MicroProfile programming model for developing microservice applications. Although MicroProfile is currently based on Java EE technologies, the expectation is that this will evolve to using the corresponding Jakarta EE technologies. Thus, the synergy between these two Eclipse projects is already starting. We will also discuss the current state of the Jakarta EE effort. Demonstrating the building and testing of various Jakarta EE (EE4J) projects is also on the agenda (the exact content to be determined based on the state of the transition efforts).
  • 5. JavaOne 2015: Java EE – Relevant or Elephant? 5 http://parentrap.org/2014/09/29/easy-parenting-part-iii-the-donts-list/
  • 6. 6 What can we do to advance microservice development in the Enterprise Java space? -Java EE Community, early 2016 What Happened Next?
  • 7. Characteristics 7 Specs, APIs, TCKs Community Driven Lightweight, Iterative Processes No Reference Impls!
  • 8. JavaOne 2016 8 CDI 1.2 JAX-RS 2.0 JSON-P 1.0 MicroProfile 1.0 Announced! Basic Building Blocks for Microservices
  • 9. CDI 2.0 Fast-forward two years... 9 JAX-RS 2.1 JSON-P 1.1 MicroProfile 2.1 JSON-B 1.0 Fault Tolerance 1.1 Metrics 1.1 JWT Propagation 1.1 Health Check 1.0 Open Tracing 1.2 Open API 1.0 Rest Client 1.1 Config 1.3 17 Component Releases! 7 Platform Releases! MicroProfile 2.1
  • 10. CDI 2.0 Roadmap... 10 JAX-RS 2.1 JSON-P 1.1 MicroProfile 2.x JSON-B 1.0 Fault Tolerance 1.1 Metrics 1.1 JWT Propagation 1.1 Health Check 1.0 Open Tracing 1.2 Open API 1.0 Rest Client 1.1 Config 1.3 Reactive Operators 1.0 Reactive Messaging 1.0 Service Mesh / ISTIO 1.0 ... Component Updates ● Health Check 1.1 ● Rest Client 1.2 ● Config 1.4 ● Metrics 2.0 ● Fault Tolerance 1.2 ● ...
  • 13. 39 EE4J Projects and counting… ● 20% Project Proposal has been posted for community review ● 40% Project committers and resources have been provisioned ● 60% Initial Contribution provided to the Eclipse IP Team ● 80% Initial Contribution Pushed to Git Repository ● 100% Project has engaged in its first Release Review 13 https://www.eclipse.org/ee4j/status.php Eclipse Glassfish 5.1-RC1!
  • 14. Eclipse Glassfish Release Schedule ✓Sep 21 -- All code required for GF build contributed. ✓Sep 23 — Eclipse GlassFish builds. ✓Oct 1 -- Java EE 8 CTS testing begins. ✓Oct 22 -- Eclipse GlassFish 5.1-RC1 milestone release. ✓Oct 31 — CI/CD release pipelines completed. ●Nov 12? — Dependencies updated. All projects are released to OSSRH and have dependencies to Eclipse version of other components. ●Nov 30 -- Release Reviews completed. ●Dec 14 -- Eclipse GlassFish 5.1 release. All Java EE 8 CTS tests passed. 14
  • 16. EE4J Staging Release: APIs 16 https://github.com/orgs/eclipse-ee4j/projects/4
  • 17. EE4J Staging Release: Implementations 17 https://github.com/orgs/eclipse-ee4j/projects/5
  • 19. Specification Process 19 Specification Process 1.0 ● Replacement for JCP Standards Process ● Public Draft Available for Review (Oct 17, 2018) ○ https://docs.google.com/document/d/1ongNU yGvZPtrcuxA7RQNV2qBESFcAphQbzdk3pU IQ5s/edit#heading=h.o84um3qls283 ○ Comments accepted until Oct 31, 2018 ● Guinea Pig Spec Project ○ JNoSQL
  • 20. Additional Work Items in progress... 20 TCK Compliance Process TCK License Specification License ...
  • 21. Similarities between MicroProfile and Jakarta EE ● Focused on Microservice and Cloud Native Development ● Desire Agile Development Practices ● Code First Mentality 21
  • 22. Characteristics 22 Specs, APIs, TCKs Community Driven Lightweight, Iterative Processes No Reference Impls!
  • 23. Differences between MicroProfile and Jakarta EE ● MicroProfile has an established release process and cycle ○ 7 major releases and 17 component releases in its 2 years of existence ○ Jakarta EE is planning for 1-2 major releases per year (components may have more) 23
  • 24. Differences between MicroProfile and Jakarta EE ● MicroProfile has an established release process and cycle ○ 7 major releases and 17 component releases in its 2 years of existence ○ Jakarta EE is planning for 1-2 major releases per year (components may have more) ● MicroProfile is not a Standards body ○ Jakarta EE needs to replace the JCP 24
  • 25. Differences between MicroProfile and Jakarta EE ● MicroProfile has an established release process and cycle ○ 7 major releases and 17 component releases in its 2 years of existence ○ Jakarta EE is planning for 1-2 major releases per year (components may have more) ● MicroProfile is not a Standards body ○ Jakarta EE needs to replace the JCP ● Jakarta EE brand is valuable and requires stringent compliance testing ○ MicroProfile’s compatibility statements are strictly on the honor system 25
  • 26. Some positive signs... 26 Rest Client 1.x JAX-RS 2.x ???
  • 27. More positive signs... 27 Config JSR Config Specification ???
  • 29. Other Integrations... 29 Fault Tolerance ● Retry ● Timeout ● CircuitBreaker ● Bulkhead ● Fallback Fault Tolerance ● Retry ● Timeout ● CircuitBreaker ● Bulkhead ● Fallback ???
  • 33. 33
  • 34. Anticipated Relationship 34 ● Ongoing MicroProfile innovation on top of Jakarta EE, with desired adoption of foundational technologies into JakartaEE.next
  • 36.
  • 37.
  • 38. References ● https://openliberty.io/blog/2018/08/16/whats-next-microprofile-jakartaee.html ● https://microprofile.io ○ https://projects.eclipse.org/projects/technology.microprofile ○ https://microprofile.io/projects/ ○ https://wiki.eclipse.org/MicroProfile/Implementation ○ https://openliberty.io/guides/ ● https://jakarta.ee ○ https://projects.eclipse.org/projects/ee4j/ ○ https://github.com/eclipse-ee4j/ee4j ○ https://www.eclipse.org/ee4j/status.php ○ https://github.com/orgs/eclipse-ee4j/projects/1 38
  • 40. Open Tracing 40 URL: https://github.com/eclipse/microprofile-opentracing Latest Release: https://github.com/eclipse/microprofile-opentracing/releases Tracing the flow of a request in a distributed environment has always been challenging but it is even more complex in a microservices architecture, where requests traverse across not just architectural tiers but also multiple services. The MicroProfile OpenTracing API provides a standard for instrumenting microservices for distributed tracing.
  • 41. Open API 41 URL: https://github.com/eclipse/microprofile-open-api Latest Release: https://github.com/eclipse/microprofile-open-api/releases OpenAPI provides Java interfaces and programming models which allow Java developers to natively produce OpenAPI v3 documents from their JAX-RS applications.
  • 42. Rest Client 42 URL: https://github.com/eclipse/microprofile-rest-client Latest Release: https://github.com/eclipse/microprofile-rest-client/releases In the Microservices world, we typically talk REST to other services. While the JAX-RS specification defines a fluent API for making calls, it is difficult to make it a true type safe client. MicroProfile Rest Client makes it easy to take an interface definition and create a JAX-RS client from it.
  • 43. URL: https://github.com/eclipse/microprofile-config Latest Release: https://github.com/eclipse/microprofile-config/releases Applications need to be configured based on a running environment. Provides a standard way to define a hierarchy of config sources from which environmental config may be injected into a running application. Config 43 Dev Test Prod
  • 44. Fault Tolerance 44 URL: https://github.com/eclipse/microprofile-fault-tolerance Latest Release: https://github.com/eclipse/microprofile-fault-tolerance/releases Fault tolerance is about leveraging different strategies to guide the execution and result of some logic. Defines annotations for container-brokered timeouts, retries, fallbacks, circuit-breakers and bulkheads. Simplifies the application-handling of failure in microservice architectures.
  • 45. URL: https://github.com/eclipse/microprofile-metrics Latest Release: https://github.com/eclipse/microprofile-metrics/releases To ensure reliable operation of software it is necessary to monitor essential system parameters. Defines annotations to define metrics and well-known monitoring endpoints to gather them from. Metrics 45 Metric Registry ● Required Base metrics ● Application metrics ● Vendor-specific metrics
  • 46. JWT Propagation 46 URL: https://github.com/eclipse/microprofile-jwt-auth Latest Release: https://github.com/eclipse/microprofile-jwt-auth/releases The security requirements that involve microservice architectures are strongly related with RESTful Security. Defines standard JWT claims so the content of a JWT token to be used in Java EE RBAC – identifying user principle name and group names that a container can map to deployment roles.
  • 47. Health Check 47 URL: https://github.com/eclipse/microprofile-health Latest Release: https://github.com/eclipse/microprofile-health/releases Health checks are used to probe the state of a computing node from another machine (i.e. kubernetes service controller) with the primary target being cloud infrastructure environments where automated processes maintain the state of computing nodes
  • 48. Reactive Streams Operators (under construction) 48 URL: https://github.com/eclipse/microprofile-reactive-streams Latest Release: https://github.com/eclipse/microprofile-reactive-streams/releases Reactive Streams is an integration SPI - it allows two different libraries that provide asynchronous streaming to be able to stream data to and from each other. Reactive Streams is not however designed to be used directly by application developers. The semantics defined by Reactive Streams are very strict, and are non trivial, particularly in the areas of thread safety, to implement correctly. Typically, application developers are expected to use third party libraries that provide the tools necessary to manipulate and control streams. Examples include Akka Streams, RxJava and Reactor.
  • 49. Reactive Messaging (under construction) 49 URL: https://github.com/eclipse/microprofile-reactive-messaging Latest Release: N/A User annotates simple methods…container creates and manages Reactive Streams:
  • 50. Service Mesh / ISTIO (under construction) 50 URL: https://github.com/eclipse/microprofile-service-mesh Latest Release: N/A MicroProfile defines programming model for developing cloud-native microservices. Cloud Native microservices developed with MicroProfile can take advantage of a Service Mesh by extracting many concerns away from the development of the microservice itself. It is important for MicroProfile to understand the capabilities of service mesh, so that MicroProfile can offer complimentary features for the infrastructure and avoid the conflicts.