SlideShare a Scribd company logo
1 of 31
EclipseCon 2019
Tutorial session:
Building Microservices
with Jakarta EE
& MicroProfile
Talip Ozkeles
Java (EE) Developer
IT Consultant
Conference Speaker
@tozkeles
group9.nl
Ivo Woltring
Codesmith
Software Architect
Conference Speaker
@ivonet
ivonet.nl
Edwin Derks
Java (EE) Developer
Software Architect
Conference Speaker
@edwinderks
cloudnativesolutions.guru
Tutorial Session
Prerequisites
This URL redirects to the Github
page containing the tutorial
assignments:
http://ivo2u.nl/oA
Follow these instructions to setup
your device for the tutorial:
http://ivo2u.nl/oc
Photo by Mikes Photos from Pexels
What are Jakarta EE and
MicroProfile exactly?
Photo by Inge Wallumrød from Pexels
This tutorial will focus on:
- Vendors and Portability
- Various Runtimes
- Efficient development
Photo by David Dibert from Pexels
- Ship with Docker
- Running in a cloud-
native environment
Evolution of Java EE and Spring
1990’s now()
?CLOUDVirtualize
Hardware
Feature-rich platform of API’s for building enterprise applications
Jakarta EE in a nutshell...
- Profiles
- Full
- Web
- Enterprise Development APIs
- JSP
- JSF
- EJB
- CDI
- JAX-RS
- JPA
- ...many others
Designed for building and running scalable applications
Microprofile in a nutshell...
- Java EE / Jakarta EE 8 base (CDI, JSON-P, JAX-RS)
- Microservice APIs
- Healthcheck
- Fault Tolerance
- Metrics
- Config
- Tracing
- Rest Client
- JWT
- …others
Photo by Miguel Á. Padriñán from Pexels
Uber / Fat
JARApplication
Server
Hollow
JAR
+
Power of the
Application Server
Examples of Application Server Vendors
Community
Edition
&
Production
Supported
Community
Edition
Community
Edition
Production
Supported
Jakarta EE & MicroProfile
compliant
Application Server
WAR / EAR
Java
● Runs with Java
version
supported by
the server
Conventional application server runtime
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>8.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.microprofile</groupId>
<artifactId>microprofile</artifactId>
<version>2.2</version>
<type>pom</type>
</dependency>
● One complete package providing Jakarta EE
● What you see is what you get
● Thoroughly tested by vendor
● Easily patched and upgraded
● Enables portability for enterprise applications
Photo by Tom Fisk from Pexels
Application Server
Runtime: Hollow JAR
Application server runtime provided as Hollow JAR
Java
● Runs with Java
version
supported by
the server
JAR
WAR
● Applications server as one single artifact
● Little to no operational management tools
● Don’t include the whole application server
with every build of your application
● “Just enough app server”
Photo by Tom Fisk from Pexels
Application Server
Runtime: Uber JAR
Application server runtime provided as Uber JAR
Java
● Runs with Java
version
supported by
the server
JAR
Compiled Java Bytecode
● One single artifact
● Little to no operational management tools
● Contains your code and application server
● Opposite of lean and tidy, so bigger in size
● “Just enough app server”
JDK 8+ Platform
Choose the fitting Java version for your application server runtime
JVM
JAR
WAR
EARCOMPILES
RUNS
IMPLEMENT
Runtime
8
5.193
2.2
HOTSPOT
DEPLOYS
Photo by David Dibert from Pexels
But in the end
Docker
… does it even
matter?
Shipping and deploying with Docker
Docker Image
Choose
your
runtime
Java
JAR/WAR/EAR
Operational
Environment
● Use docker-compose
● Ship anywhere
● Run anywhere
Docker Image
Choose
your
runtime
Java
JAR/WAR/EAR
Photo by Dana Tentis from Pexels
Workshop: Quote of the Day App
Workshop: Quote of the Day App
WAR / EAR
Java11
Java8
JAR
W
A
R
Java11
JAR
Compiled Java
Docker Image
Payara
Server
Java11
WAR
Docker Image
Payara
Micro
Java8
WAR
Docker Image
Java11
Uber
JAR
application-server-project uber-jar-project
Quotes
- JAX-RS
- MicroProfile RestClient
- MicroProfile FaultTolerance:
- Retry, Fallback,
Timeout
- JSF + PrimeFaces
- CDI
- MicroProfile RestClient
- JAX-RS
- CDI
- JPA
- JSON-B
hollow-jar-project
Docker Image
Payara
Server
Java11
WAR
Docker Image
Payara
Micro
Java8
WAR
Docker Image
Java11
Uber
JAR
- JAX-RS
- MicroProfile RestClient
- MicroProfile FaultTolerance:
- Retry, Fallback,
Timeout
- JSF + PrimeFaces
- CDI
- MicroProfile RestClient
- JAX-RS
- CDI
- JPA
- JSON-B
- health
Quotes
Tutorial Session
Prerequisites
This URL redirects to the Github
page containing the tutorial
assignments:
http://ivo2u.nl/oA
Follow these instructions to setup
your device for the tutorial:
http://ivo2u.nl/oc
...but let’s have a short break first!
Tutorial Bonus Assignments
Further exploration of possibilities
Jakarta EE
- Play around with flaky behaviour
- Modify/Add Quotes
- Explore JSF
- https://www.primefaces.org/showcase/
- Add Exception handling
- Choose different component for
displaying Quotes
MicroProfile
MicroProfile Fault Tolerance:
● Use @CircuitBreaker in hollow-jar-
project
MicroProfile Metrics:
● Add @Counted
● Add @Metered
MicroProfile Health:
● Create a custom HealthCheck
Tips: https://start.microprofile.io
Thank you for your visiting this tutorial
We value your feedback
@edwinderks
cloudnativesolutions.guru
@ivonet
ivonet.nl
@tozkeles
talip.ozkeles@group9.nl
Building Microservices with Jakarta EE and MicroProfile - EclipseCon 2019

More Related Content

What's hot

DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
Docker, Inc.
 
[Japan Selenium User Community in Remote] Test Automation Journey
[Japan Selenium User Community in Remote] Test Automation Journey[Japan Selenium User Community in Remote] Test Automation Journey
[Japan Selenium User Community in Remote] Test Automation Journey
Woohyeok Kim
 

What's hot (20)

Developer South Coast 2018: Modernizing .NET Apps with Docker
Developer South Coast 2018: Modernizing .NET Apps with DockerDeveloper South Coast 2018: Modernizing .NET Apps with Docker
Developer South Coast 2018: Modernizing .NET Apps with Docker
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Bootstrapping a simple enterprise application with Java EE successor, Jakarta...
Bootstrapping a simple enterprise application with Java EE successor, Jakarta...Bootstrapping a simple enterprise application with Java EE successor, Jakarta...
Bootstrapping a simple enterprise application with Java EE successor, Jakarta...
 
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
 
IBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDKIBM Think Session 3249 Watson Work Services Java SDK
IBM Think Session 3249 Watson Work Services Java SDK
 
Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript
 
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and ComposeDockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
DockerCon EU 2015: Continuous Integration with Jenkins, Docker and Compose
 
P2 Introduction
P2 IntroductionP2 Introduction
P2 Introduction
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with Appium
 
Using Go in DevOps
Using Go in DevOpsUsing Go in DevOps
Using Go in DevOps
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Jenkins talk at Silicon valley DevOps meetup
Jenkins talk at Silicon valley DevOps meetupJenkins talk at Silicon valley DevOps meetup
Jenkins talk at Silicon valley DevOps meetup
 
Introduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeopleIntroduction To Jenkins - SpringPeople
Introduction To Jenkins - SpringPeople
 
CloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the CloudCloudExpo 2018: Docker - Power Your Move to the Cloud
CloudExpo 2018: Docker - Power Your Move to the Cloud
 
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...vodQA(Pune) 2018 - Visual testing of web apps in headless environment   manis...
vodQA(Pune) 2018 - Visual testing of web apps in headless environment manis...
 
vodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in TestingvodQA(Pune) 2018 - Docker in Testing
vodQA(Pune) 2018 - Docker in Testing
 
Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"
 
Building the Test Automation Framework - Jenkins for Testers
Building the Test Automation Framework - Jenkins for TestersBuilding the Test Automation Framework - Jenkins for Testers
Building the Test Automation Framework - Jenkins for Testers
 
[Japan Selenium User Community in Remote] Test Automation Journey
[Japan Selenium User Community in Remote] Test Automation Journey[Japan Selenium User Community in Remote] Test Automation Journey
[Japan Selenium User Community in Remote] Test Automation Journey
 
Docker containers intro
Docker containers introDocker containers intro
Docker containers intro
 

Similar to Building Microservices with Jakarta EE and MicroProfile - EclipseCon 2019

Similar to Building Microservices with Jakarta EE and MicroProfile - EclipseCon 2019 (20)

Let's talk Windows Containers on Windows Server 2019
Let's talk Windows Containers on Windows Server 2019Let's talk Windows Containers on Windows Server 2019
Let's talk Windows Containers on Windows Server 2019
 
Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...
 
Разработка cloud-native Java-приложений для Kubernetes, Егор Волков,Senior Ja...
Разработка cloud-native Java-приложений для Kubernetes, Егор Волков,Senior Ja...Разработка cloud-native Java-приложений для Kubernetes, Егор Волков,Senior Ja...
Разработка cloud-native Java-приложений для Kubernetes, Егор Волков,Senior Ja...
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
Effective Spring on Kubernetes
Effective Spring on KubernetesEffective Spring on Kubernetes
Effective Spring on Kubernetes
 
Build and ship apps with MeteorJS, Docker and Azure
Build and ship apps with MeteorJS, Docker and AzureBuild and ship apps with MeteorJS, Docker and Azure
Build and ship apps with MeteorJS, Docker and Azure
 
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, SollianceDocker for .NET Developers - Michele Leroux Bustamante, Solliance
Docker for .NET Developers - Michele Leroux Bustamante, Solliance
 
Docker for Devs - John Zaccone, IBM
Docker for Devs - John Zaccone, IBMDocker for Devs - John Zaccone, IBM
Docker for Devs - John Zaccone, IBM
 
Java in a world of containers
Java in a world of containersJava in a world of containers
Java in a world of containers
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6
 
Introduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of TechnologyIntroduction to Docker - Vellore Institute of Technology
Introduction to Docker - Vellore Institute of Technology
 
Architect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft AzureArchitect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft Azure
 
Docker Deep Dive Understanding Docker Engine Docker for DevOps
Docker Deep Dive Understanding Docker Engine Docker for DevOpsDocker Deep Dive Understanding Docker Engine Docker for DevOps
Docker Deep Dive Understanding Docker Engine Docker for DevOps
 
Java programming(unit 1)
Java programming(unit 1)Java programming(unit 1)
Java programming(unit 1)
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
Docker with Selenium by Thirumalai Vignesh
Docker with Selenium by Thirumalai VigneshDocker with Selenium by Thirumalai Vignesh
Docker with Selenium by Thirumalai Vignesh
 

Recently uploaded

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Recently uploaded (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Building Microservices with Jakarta EE and MicroProfile - EclipseCon 2019

  • 1. EclipseCon 2019 Tutorial session: Building Microservices with Jakarta EE & MicroProfile
  • 2. Talip Ozkeles Java (EE) Developer IT Consultant Conference Speaker @tozkeles group9.nl
  • 4. Edwin Derks Java (EE) Developer Software Architect Conference Speaker @edwinderks cloudnativesolutions.guru
  • 5. Tutorial Session Prerequisites This URL redirects to the Github page containing the tutorial assignments: http://ivo2u.nl/oA Follow these instructions to setup your device for the tutorial: http://ivo2u.nl/oc
  • 6. Photo by Mikes Photos from Pexels
  • 7. What are Jakarta EE and MicroProfile exactly?
  • 8. Photo by Inge Wallumrød from Pexels This tutorial will focus on: - Vendors and Portability - Various Runtimes - Efficient development
  • 9. Photo by David Dibert from Pexels - Ship with Docker - Running in a cloud- native environment
  • 10. Evolution of Java EE and Spring 1990’s now() ?CLOUDVirtualize Hardware
  • 11. Feature-rich platform of API’s for building enterprise applications Jakarta EE in a nutshell... - Profiles - Full - Web - Enterprise Development APIs - JSP - JSF - EJB - CDI - JAX-RS - JPA - ...many others
  • 12. Designed for building and running scalable applications Microprofile in a nutshell... - Java EE / Jakarta EE 8 base (CDI, JSON-P, JAX-RS) - Microservice APIs - Healthcheck - Fault Tolerance - Metrics - Config - Tracing - Rest Client - JWT - …others
  • 13. Photo by Miguel Á. Padriñán from Pexels Uber / Fat JARApplication Server Hollow JAR +
  • 15. Examples of Application Server Vendors Community Edition & Production Supported Community Edition Community Edition Production Supported
  • 16. Jakarta EE & MicroProfile compliant Application Server WAR / EAR Java ● Runs with Java version supported by the server Conventional application server runtime <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>8.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.microprofile</groupId> <artifactId>microprofile</artifactId> <version>2.2</version> <type>pom</type> </dependency> ● One complete package providing Jakarta EE ● What you see is what you get ● Thoroughly tested by vendor ● Easily patched and upgraded ● Enables portability for enterprise applications
  • 17. Photo by Tom Fisk from Pexels Application Server Runtime: Hollow JAR
  • 18. Application server runtime provided as Hollow JAR Java ● Runs with Java version supported by the server JAR WAR ● Applications server as one single artifact ● Little to no operational management tools ● Don’t include the whole application server with every build of your application ● “Just enough app server”
  • 19. Photo by Tom Fisk from Pexels Application Server Runtime: Uber JAR
  • 20. Application server runtime provided as Uber JAR Java ● Runs with Java version supported by the server JAR Compiled Java Bytecode ● One single artifact ● Little to no operational management tools ● Contains your code and application server ● Opposite of lean and tidy, so bigger in size ● “Just enough app server”
  • 21. JDK 8+ Platform Choose the fitting Java version for your application server runtime JVM JAR WAR EARCOMPILES RUNS IMPLEMENT Runtime 8 5.193 2.2 HOTSPOT DEPLOYS
  • 22. Photo by David Dibert from Pexels But in the end Docker … does it even matter?
  • 23. Shipping and deploying with Docker Docker Image Choose your runtime Java JAR/WAR/EAR Operational Environment ● Use docker-compose ● Ship anywhere ● Run anywhere Docker Image Choose your runtime Java JAR/WAR/EAR
  • 24. Photo by Dana Tentis from Pexels Workshop: Quote of the Day App
  • 25. Workshop: Quote of the Day App
  • 26. WAR / EAR Java11 Java8 JAR W A R Java11 JAR Compiled Java Docker Image Payara Server Java11 WAR Docker Image Payara Micro Java8 WAR Docker Image Java11 Uber JAR application-server-project uber-jar-project Quotes - JAX-RS - MicroProfile RestClient - MicroProfile FaultTolerance: - Retry, Fallback, Timeout - JSF + PrimeFaces - CDI - MicroProfile RestClient - JAX-RS - CDI - JPA - JSON-B hollow-jar-project
  • 27. Docker Image Payara Server Java11 WAR Docker Image Payara Micro Java8 WAR Docker Image Java11 Uber JAR - JAX-RS - MicroProfile RestClient - MicroProfile FaultTolerance: - Retry, Fallback, Timeout - JSF + PrimeFaces - CDI - MicroProfile RestClient - JAX-RS - CDI - JPA - JSON-B - health Quotes
  • 28. Tutorial Session Prerequisites This URL redirects to the Github page containing the tutorial assignments: http://ivo2u.nl/oA Follow these instructions to setup your device for the tutorial: http://ivo2u.nl/oc ...but let’s have a short break first!
  • 29. Tutorial Bonus Assignments Further exploration of possibilities Jakarta EE - Play around with flaky behaviour - Modify/Add Quotes - Explore JSF - https://www.primefaces.org/showcase/ - Add Exception handling - Choose different component for displaying Quotes MicroProfile MicroProfile Fault Tolerance: ● Use @CircuitBreaker in hollow-jar- project MicroProfile Metrics: ● Add @Counted ● Add @Metered MicroProfile Health: ● Create a custom HealthCheck Tips: https://start.microprofile.io
  • 30. Thank you for your visiting this tutorial We value your feedback @edwinderks cloudnativesolutions.guru @ivonet ivonet.nl @tozkeles talip.ozkeles@group9.nl