SlideShare a Scribd company logo
1 of 24
Demystifying Microservices for Java
EE Developers
David R. Heffelfinger
Ensode Technology, LLC
http://www.ensode.com
@ensode
Steve Millidge
Payara Services Ltd
https://www.payara.fish
@l33tj4v4
About the speakers
David R. Heffelfinger
Independent consultant based in Fairfax, VA
Java Champion
Author of several books on Java, Java EE and
related technologies
Frequent speaker at Java conferences
Named one of 39 Java experts you should follow on
Twitter
About the speakers (cont'd)
Steve Millidge
Founder and Director of Payara Services and C2B2
Consulting
Many years in the field as an application server
consultant.
Now runs the Payara team and when allowed adds
features and bugs
Session Outline
● What are microservices?
● Can Java EE do microservices?
● Migrating to microservices
● Microservices Demo
● Java EE 8, Java EE 9 and MicroProfile
● Summary
What are microservices?
● Architectural style
–Code deployed in small, granular modules
–Low coupling, high cohesion
–RESTful web services
–Framework and programming language independent
Can Java EE do microservices?
● Many Java EE application server vendors provide
lightweight, embeddable application servers (e.g.
Payara Micro)
● One application deployed per instance of application
server
● Several instances of the application server deployed
to a server
Can Java EE do microservices? (cont'd)
●Some application servers allow the creation of an
“uber jar”
●Lightweight application servers can be added to a
container image (i.e. Docker)
–Applications can be deployed as thin wars, typically
a few kilobytes in size.
●Modern, lightweight Java EE application servers
suitable for microservices development
Microservices Advantages
●Smaller codebases
●Microservices encourage good coding practices
●Resilience
●Scalability
Microservices Disadvantages
●Additional operational and tooling overhead
●Increased debugging complexity
●Distributed transactions may pose a challenge
●Potential for complex interdependencies
●Susceptible to the fallacies of distributed computing
Fallacies of distributed computing
●The network is reliable.
●Latency is zero.
●Bandwidth is infinite.
●The network is secure.
●Topology doesn't change.
●There is one administrator.
●Transport cost is zero.
●The network is homogeneous.
Migrating to microservices
●Should we migrate?
–Do the benefits outweight the disadvantages?
–Are there pressing business requirements?
●A migration to microservices may not provide much
value to end users
Migrating to microservices(cont'd)
●Iterative refactoring
–Refactor an existing application one module at a time
–Identify an existing module to refactor as a
microservice
●Client code for the refactored module would invoke
the refactored code via HTTP requests
–Identify a second module to refactor, then a third,
etc, until the complete application has been refactored
to follow the microservices architectural style
Migrating to microservices(cont'd)
●Partial refactoring
–Identify modules that may be reusable across
applications
–Refactor those (and only those) modules as
microservices
–Hybrid approach
Migrating to microservices(cont'd)
●Implement new requirements as microservices
–Existing code invokes the newly developed
microservices via HTTP requests
–Hybrid approach
Payara Micro Payara Micro
Resource Adapter (RAR) Resource Adapter (RAR)
MQTT Topic
Outbound Inbound
Event Based Microservices Demo
JAX-RS (WAR File)
MDB (EJB JAR)
Java EE 8
●Java API for JSON Binding (JSON-B)
–Automatically populate Java objects from JSON
–Automatically generate JSON from Java objects
●Java API for RESTful Web Services (JAX-RS) 2.1
–JSON-B support
–Server Sent Events
–Improved CDI integration
–Security improvements
Java EE 8 (cont'd)
●CDI 2.0
–Observer ordering
–Asynchronous events
–Configurators for major Service Provider Interface
(SPI) elements
Java EE 8 (cont'd)
●Bean Validation 2.0
–Support for Java SE 8 Date/Time API
–Ability to validate all members of a collection with a
single annotation
–Repeatable annotation support
Java EE 9
●Project Jigsaw support
–Java EE dependencies declared as modules
●Circuit Breaker design pattern support for JAX-RS
●New Event API
●NoSQL database support
●New State Management API
Microprofile
Collaboration between application server vendors and JUGs
• IBM
• Payara Services
• Red Hat
• Tomitribe
• Hazelcast
• Fujitsu
• Kumulzee
• SmartBear
• London Java Community
• SouJava Brazilian JUG
MicroProfile 1.1
● Does not compete with Java EE
–“Feeds” the Java EE standard
●JAX-RS, CDI, JSON-P and a Configuration API
● New APIS coming in 1.2
MicroProfile 1.2
Adds further microservices focussed specs
Fault Tolerance – Timeout, Bulkhead, Circuit Breaker
JWT Propagation
Metrics
Healthcheck
Summary
●Java EE is suitable for microservices
–Java EE developers can leverage their expertise
–Deploy Java EE compliant code to an embeddable
application server
–Traditional Java EE applications can be partially or
completely refactored to microservices
Additional Resources
●Demystifying Microservices for Java EE Developers
Guide: http://info.payara.fish/demystifying-microservices-for-java-ee-developers
●The Aquarium (Java EE 8/9 News):
https://blogs.oracle.com/theaquarium/
●MicroProfile: https://microprofile.io/
●Follow us on Twitter! @ensode @l33tj4v4

More Related Content

What's hot

Building Services with WSO2 Microservices Framework for Java
Building Services with WSO2 Microservices Framework for JavaBuilding Services with WSO2 Microservices Framework for Java
Building Services with WSO2 Microservices Framework for JavaSanjeewa Malalgoda
 
WSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesWSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesDassana Wijesekara
 
Microservice architecture 바로 알기
Microservice architecture 바로 알기Microservice architecture 바로 알기
Microservice architecture 바로 알기GunHee Lee
 
Dev Ops Geek Fest: Automating the ForgeRock Platform
Dev Ops Geek Fest: Automating the ForgeRock PlatformDev Ops Geek Fest: Automating the ForgeRock Platform
Dev Ops Geek Fest: Automating the ForgeRock PlatformForgeRock
 
Riyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewRiyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewsatyasekhar123
 
Microservices architecture overview v2
Microservices architecture overview v2Microservices architecture overview v2
Microservices architecture overview v2Dmitry Skaredov
 
Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build ToolsMichael Ducy
 
Faircom BigBlueButton Developers Community Hackathon 2020 - RIADVICE - Ghazi ...
Faircom BigBlueButton Developers Community Hackathon 2020 - RIADVICE - Ghazi ...Faircom BigBlueButton Developers Community Hackathon 2020 - RIADVICE - Ghazi ...
Faircom BigBlueButton Developers Community Hackathon 2020 - RIADVICE - Ghazi ...RIADVICE
 
Tibco Interview questions
Tibco Interview questionsTibco Interview questions
Tibco Interview questionsDavidfleeks
 
Java2 days 5_agile_steps_to_cloud-ready_apps
Java2 days 5_agile_steps_to_cloud-ready_appsJava2 days 5_agile_steps_to_cloud-ready_apps
Java2 days 5_agile_steps_to_cloud-ready_appsPayara
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.imjacobclark
 
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
[WSO2Con EU 2018] Deploying Applications in K8S and Docker[WSO2Con EU 2018] Deploying Applications in K8S and Docker
[WSO2Con EU 2018] Deploying Applications in K8S and DockerWSO2
 
JBoss / Red Hat: bridging the gap between web services technologies and real ...
JBoss / Red Hat: bridging the gap between web services technologies and real ...JBoss / Red Hat: bridging the gap between web services technologies and real ...
JBoss / Red Hat: bridging the gap between web services technologies and real ...ecows2011
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...Daniel Bryant
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservicesjclingan
 
Microservices (msa) insights with comments
Microservices (msa) insights with commentsMicroservices (msa) insights with comments
Microservices (msa) insights with commentsLior Bar-On
 

What's hot (20)

Building Services with WSO2 Microservices Framework for Java
Building Services with WSO2 Microservices Framework for JavaBuilding Services with WSO2 Microservices Framework for Java
Building Services with WSO2 Microservices Framework for Java
 
WSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - MicroservicesWSO2 Workshop Sydney 2016 - Microservices
WSO2 Workshop Sydney 2016 - Microservices
 
Microservice architecture 바로 알기
Microservice architecture 바로 알기Microservice architecture 바로 알기
Microservice architecture 바로 알기
 
Dev Ops Geek Fest: Automating the ForgeRock Platform
Dev Ops Geek Fest: Automating the ForgeRock PlatformDev Ops Geek Fest: Automating the ForgeRock Platform
Dev Ops Geek Fest: Automating the ForgeRock Platform
 
Bbva bank on Open Stack
Bbva bank on Open StackBbva bank on Open Stack
Bbva bank on Open Stack
 
First8 java one review 2016
First8 java one review 2016First8 java one review 2016
First8 java one review 2016
 
Riyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code reviewRiyadh Meetup4- Sonarqube for Mule 4 Code review
Riyadh Meetup4- Sonarqube for Mule 4 Code review
 
Microservices architecture overview v2
Microservices architecture overview v2Microservices architecture overview v2
Microservices architecture overview v2
 
Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build Tools
 
Faircom BigBlueButton Developers Community Hackathon 2020 - RIADVICE - Ghazi ...
Faircom BigBlueButton Developers Community Hackathon 2020 - RIADVICE - Ghazi ...Faircom BigBlueButton Developers Community Hackathon 2020 - RIADVICE - Ghazi ...
Faircom BigBlueButton Developers Community Hackathon 2020 - RIADVICE - Ghazi ...
 
Tibco Interview questions
Tibco Interview questionsTibco Interview questions
Tibco Interview questions
 
Java2 days 5_agile_steps_to_cloud-ready_apps
Java2 days 5_agile_steps_to_cloud-ready_appsJava2 days 5_agile_steps_to_cloud-ready_apps
Java2 days 5_agile_steps_to_cloud-ready_apps
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.
 
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
[WSO2Con EU 2018] Deploying Applications in K8S and Docker[WSO2Con EU 2018] Deploying Applications in K8S and Docker
[WSO2Con EU 2018] Deploying Applications in K8S and Docker
 
JBoss / Red Hat: bridging the gap between web services technologies and real ...
JBoss / Red Hat: bridging the gap between web services technologies and real ...JBoss / Red Hat: bridging the gap between web services technologies and real ...
JBoss / Red Hat: bridging the gap between web services technologies and real ...
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
 
Bye bye WCF, hello gRPC
Bye bye WCF, hello gRPCBye bye WCF, hello gRPC
Bye bye WCF, hello gRPC
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservices
 
Java on Azure
Java on AzureJava on Azure
Java on Azure
 
Microservices (msa) insights with comments
Microservices (msa) insights with commentsMicroservices (msa) insights with comments
Microservices (msa) insights with comments
 

Similar to Demystifying microservices for JavaEE developers by Steve Millidge.

From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...Karan Parikh
 
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxUtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxGrace Jansen
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivRon Perlmuter
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxGrace Jansen
 
Ato Z of Microservices Architecture by Systango
Ato Z of Microservices Architecture by SystangoAto Z of Microservices Architecture by Systango
Ato Z of Microservices Architecture by SystangoSystango
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
Service-Mesh-Presentation.pdf
Service-Mesh-Presentation.pdfService-Mesh-Presentation.pdf
Service-Mesh-Presentation.pdfchanhluc2112
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondUgo Landini
 
Subhajit_Das_Resume_(M)2016
Subhajit_Das_Resume_(M)2016Subhajit_Das_Resume_(M)2016
Subhajit_Das_Resume_(M)2016Subhajit Das
 
MicroProfile Panel - Sept 2016
MicroProfile Panel - Sept 2016MicroProfile Panel - Sept 2016
MicroProfile Panel - Sept 2016Ray Ploski
 
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedis Labs
 
Decentralized APIs for Agile Businesses
Decentralized APIs for Agile BusinessesDecentralized APIs for Agile Businesses
Decentralized APIs for Agile BusinessesNuwan Dias
 
APIdays Zurich 2019 - Decentralized API Management for Agile Enterprises Nuwa...
APIdays Zurich 2019 - Decentralized API Management for Agile Enterprises Nuwa...APIdays Zurich 2019 - Decentralized API Management for Agile Enterprises Nuwa...
APIdays Zurich 2019 - Decentralized API Management for Agile Enterprises Nuwa...apidays
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologySimon Ritter
 
TransitioningToMicroServonDocker_MS
TransitioningToMicroServonDocker_MSTransitioningToMicroServonDocker_MS
TransitioningToMicroServonDocker_MSLana Kalashnyk
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Ken Owens
 

Similar to Demystifying microservices for JavaEE developers by Steve Millidge. (20)

From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...From a monolith to microservices + REST: The evolution of LinkedIn's architec...
From a monolith to microservices + REST: The evolution of LinkedIn's architec...
 
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptxUtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
UtrechtJUG_Exploring statefulmicroservices in a cloud-native world.pptx
 
Node.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel AvivNode.js meetup at Palo Alto Networks Tel Aviv
Node.js meetup at Palo Alto Networks Tel Aviv
 
KaranDeepSinghCV
KaranDeepSinghCVKaranDeepSinghCV
KaranDeepSinghCV
 
DevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptxDevoxxBelgium_StatefulCloud.pptx
DevoxxBelgium_StatefulCloud.pptx
 
Ato Z of Microservices Architecture by Systango
Ato Z of Microservices Architecture by SystangoAto Z of Microservices Architecture by Systango
Ato Z of Microservices Architecture by Systango
 
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. JuričJavantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Service-Mesh-Presentation.pdf
Service-Mesh-Presentation.pdfService-Mesh-Presentation.pdf
Service-Mesh-Presentation.pdf
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
Subhajit_Das_Resume_(M)2016
Subhajit_Das_Resume_(M)2016Subhajit_Das_Resume_(M)2016
Subhajit_Das_Resume_(M)2016
 
Micro services
Micro servicesMicro services
Micro services
 
MicroProfile Panel - Sept 2016
MicroProfile Panel - Sept 2016MicroProfile Panel - Sept 2016
MicroProfile Panel - Sept 2016
 
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases DistributedRedisConf17 - Dynomite - Making Non-distributed Databases Distributed
RedisConf17 - Dynomite - Making Non-distributed Databases Distributed
 
Decentralized APIs for Agile Businesses
Decentralized APIs for Agile BusinessesDecentralized APIs for Agile Businesses
Decentralized APIs for Agile Businesses
 
APIdays Zurich 2019 - Decentralized API Management for Agile Enterprises Nuwa...
APIdays Zurich 2019 - Decentralized API Management for Agile Enterprises Nuwa...APIdays Zurich 2019 - Decentralized API Management for Agile Enterprises Nuwa...
APIdays Zurich 2019 - Decentralized API Management for Agile Enterprises Nuwa...
 
Developing Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java TechnologyDeveloping Enterprise Applications Using Java Technology
Developing Enterprise Applications Using Java Technology
 
Resume_Venugopal
Resume_VenugopalResume_Venugopal
Resume_Venugopal
 
TransitioningToMicroServonDocker_MS
TransitioningToMicroServonDocker_MSTransitioningToMicroServonDocker_MS
TransitioningToMicroServonDocker_MS
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 

More from Payara

Easy Java Integration Testing with Testcontainers​
Easy Java Integration Testing with Testcontainers​Easy Java Integration Testing with Testcontainers​
Easy Java Integration Testing with Testcontainers​Payara
 
Payara Cloud - Cloud Native Jakarta EE.pptx
Payara Cloud - Cloud Native Jakarta EE.pptxPayara Cloud - Cloud Native Jakarta EE.pptx
Payara Cloud - Cloud Native Jakarta EE.pptxPayara
 
Jakarta Concurrency: Present and Future
Jakarta Concurrency: Present and FutureJakarta Concurrency: Present and Future
Jakarta Concurrency: Present and FuturePayara
 
GlassFish Migration Webinar 2022 Current version.pptx
GlassFish Migration Webinar 2022 Current version.pptxGlassFish Migration Webinar 2022 Current version.pptx
GlassFish Migration Webinar 2022 Current version.pptxPayara
 
10 Strategies for Developing Reliable Jakarta EE & MicroProfile Applications ...
10 Strategies for Developing Reliable Jakarta EE & MicroProfile Applications ...10 Strategies for Developing Reliable Jakarta EE & MicroProfile Applications ...
10 Strategies for Developing Reliable Jakarta EE & MicroProfile Applications ...Payara
 
Securing Microservices with MicroProfile and Auth0v2
Securing Microservices with MicroProfile and Auth0v2Securing Microservices with MicroProfile and Auth0v2
Securing Microservices with MicroProfile and Auth0v2Payara
 
Reactive features of MicroProfile you need to learn
Reactive features of MicroProfile you need to learnReactive features of MicroProfile you need to learn
Reactive features of MicroProfile you need to learnPayara
 
Effective cloud-ready apps with MicroProfile
Effective cloud-ready apps with MicroProfileEffective cloud-ready apps with MicroProfile
Effective cloud-ready apps with MicroProfilePayara
 
A step-by-step guide from traditional Java EE to reactive microservice design
A step-by-step guide from traditional Java EE to reactive microservice designA step-by-step guide from traditional Java EE to reactive microservice design
A step-by-step guide from traditional Java EE to reactive microservice designPayara
 
Transactions in Microservices
Transactions in MicroservicesTransactions in Microservices
Transactions in MicroservicesPayara
 
Fun with Kubernetes and Payara Micro 5
Fun with Kubernetes and Payara Micro 5Fun with Kubernetes and Payara Micro 5
Fun with Kubernetes and Payara Micro 5Payara
 
What's new in Jakarta EE and Eclipse GlassFish (May 2019)
What's new in Jakarta EE and Eclipse GlassFish (May 2019)What's new in Jakarta EE and Eclipse GlassFish (May 2019)
What's new in Jakarta EE and Eclipse GlassFish (May 2019)Payara
 
Previewing Payara Platform 5.192
Previewing Payara Platform 5.192Previewing Payara Platform 5.192
Previewing Payara Platform 5.192Payara
 
Secure JAX-RS
Secure JAX-RSSecure JAX-RS
Secure JAX-RSPayara
 
Gradual Migration to MicroProfile
Gradual Migration to MicroProfileGradual Migration to MicroProfile
Gradual Migration to MicroProfilePayara
 
Monitor Microservices with MicroProfile Metrics
Monitor Microservices with MicroProfile MetricsMonitor Microservices with MicroProfile Metrics
Monitor Microservices with MicroProfile MetricsPayara
 
Java2 days -_be_reactive_and_micro_with_a_microprofile_stack
Java2 days -_be_reactive_and_micro_with_a_microprofile_stackJava2 days -_be_reactive_and_micro_with_a_microprofile_stack
Java2 days -_be_reactive_and_micro_with_a_microprofile_stackPayara
 
Rapid development tools for java ee 8 and micro profile [GIDS]
Rapid development tools for java ee 8 and micro profile [GIDS] Rapid development tools for java ee 8 and micro profile [GIDS]
Rapid development tools for java ee 8 and micro profile [GIDS] Payara
 
Ondrej mihalyi be reactive and micro with a micro profile stack
Ondrej mihalyi   be reactive and micro with a micro profile stackOndrej mihalyi   be reactive and micro with a micro profile stack
Ondrej mihalyi be reactive and micro with a micro profile stackPayara
 
Bed con Quest for JavaEE
Bed con Quest for JavaEEBed con Quest for JavaEE
Bed con Quest for JavaEEPayara
 

More from Payara (20)

Easy Java Integration Testing with Testcontainers​
Easy Java Integration Testing with Testcontainers​Easy Java Integration Testing with Testcontainers​
Easy Java Integration Testing with Testcontainers​
 
Payara Cloud - Cloud Native Jakarta EE.pptx
Payara Cloud - Cloud Native Jakarta EE.pptxPayara Cloud - Cloud Native Jakarta EE.pptx
Payara Cloud - Cloud Native Jakarta EE.pptx
 
Jakarta Concurrency: Present and Future
Jakarta Concurrency: Present and FutureJakarta Concurrency: Present and Future
Jakarta Concurrency: Present and Future
 
GlassFish Migration Webinar 2022 Current version.pptx
GlassFish Migration Webinar 2022 Current version.pptxGlassFish Migration Webinar 2022 Current version.pptx
GlassFish Migration Webinar 2022 Current version.pptx
 
10 Strategies for Developing Reliable Jakarta EE & MicroProfile Applications ...
10 Strategies for Developing Reliable Jakarta EE & MicroProfile Applications ...10 Strategies for Developing Reliable Jakarta EE & MicroProfile Applications ...
10 Strategies for Developing Reliable Jakarta EE & MicroProfile Applications ...
 
Securing Microservices with MicroProfile and Auth0v2
Securing Microservices with MicroProfile and Auth0v2Securing Microservices with MicroProfile and Auth0v2
Securing Microservices with MicroProfile and Auth0v2
 
Reactive features of MicroProfile you need to learn
Reactive features of MicroProfile you need to learnReactive features of MicroProfile you need to learn
Reactive features of MicroProfile you need to learn
 
Effective cloud-ready apps with MicroProfile
Effective cloud-ready apps with MicroProfileEffective cloud-ready apps with MicroProfile
Effective cloud-ready apps with MicroProfile
 
A step-by-step guide from traditional Java EE to reactive microservice design
A step-by-step guide from traditional Java EE to reactive microservice designA step-by-step guide from traditional Java EE to reactive microservice design
A step-by-step guide from traditional Java EE to reactive microservice design
 
Transactions in Microservices
Transactions in MicroservicesTransactions in Microservices
Transactions in Microservices
 
Fun with Kubernetes and Payara Micro 5
Fun with Kubernetes and Payara Micro 5Fun with Kubernetes and Payara Micro 5
Fun with Kubernetes and Payara Micro 5
 
What's new in Jakarta EE and Eclipse GlassFish (May 2019)
What's new in Jakarta EE and Eclipse GlassFish (May 2019)What's new in Jakarta EE and Eclipse GlassFish (May 2019)
What's new in Jakarta EE and Eclipse GlassFish (May 2019)
 
Previewing Payara Platform 5.192
Previewing Payara Platform 5.192Previewing Payara Platform 5.192
Previewing Payara Platform 5.192
 
Secure JAX-RS
Secure JAX-RSSecure JAX-RS
Secure JAX-RS
 
Gradual Migration to MicroProfile
Gradual Migration to MicroProfileGradual Migration to MicroProfile
Gradual Migration to MicroProfile
 
Monitor Microservices with MicroProfile Metrics
Monitor Microservices with MicroProfile MetricsMonitor Microservices with MicroProfile Metrics
Monitor Microservices with MicroProfile Metrics
 
Java2 days -_be_reactive_and_micro_with_a_microprofile_stack
Java2 days -_be_reactive_and_micro_with_a_microprofile_stackJava2 days -_be_reactive_and_micro_with_a_microprofile_stack
Java2 days -_be_reactive_and_micro_with_a_microprofile_stack
 
Rapid development tools for java ee 8 and micro profile [GIDS]
Rapid development tools for java ee 8 and micro profile [GIDS] Rapid development tools for java ee 8 and micro profile [GIDS]
Rapid development tools for java ee 8 and micro profile [GIDS]
 
Ondrej mihalyi be reactive and micro with a micro profile stack
Ondrej mihalyi   be reactive and micro with a micro profile stackOndrej mihalyi   be reactive and micro with a micro profile stack
Ondrej mihalyi be reactive and micro with a micro profile stack
 
Bed con Quest for JavaEE
Bed con Quest for JavaEEBed con Quest for JavaEE
Bed con Quest for JavaEE
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Demystifying microservices for JavaEE developers by Steve Millidge.

  • 1. Demystifying Microservices for Java EE Developers David R. Heffelfinger Ensode Technology, LLC http://www.ensode.com @ensode Steve Millidge Payara Services Ltd https://www.payara.fish @l33tj4v4
  • 2. About the speakers David R. Heffelfinger Independent consultant based in Fairfax, VA Java Champion Author of several books on Java, Java EE and related technologies Frequent speaker at Java conferences Named one of 39 Java experts you should follow on Twitter
  • 3. About the speakers (cont'd) Steve Millidge Founder and Director of Payara Services and C2B2 Consulting Many years in the field as an application server consultant. Now runs the Payara team and when allowed adds features and bugs
  • 4. Session Outline ● What are microservices? ● Can Java EE do microservices? ● Migrating to microservices ● Microservices Demo ● Java EE 8, Java EE 9 and MicroProfile ● Summary
  • 5. What are microservices? ● Architectural style –Code deployed in small, granular modules –Low coupling, high cohesion –RESTful web services –Framework and programming language independent
  • 6. Can Java EE do microservices? ● Many Java EE application server vendors provide lightweight, embeddable application servers (e.g. Payara Micro) ● One application deployed per instance of application server ● Several instances of the application server deployed to a server
  • 7. Can Java EE do microservices? (cont'd) ●Some application servers allow the creation of an “uber jar” ●Lightweight application servers can be added to a container image (i.e. Docker) –Applications can be deployed as thin wars, typically a few kilobytes in size. ●Modern, lightweight Java EE application servers suitable for microservices development
  • 8. Microservices Advantages ●Smaller codebases ●Microservices encourage good coding practices ●Resilience ●Scalability
  • 9. Microservices Disadvantages ●Additional operational and tooling overhead ●Increased debugging complexity ●Distributed transactions may pose a challenge ●Potential for complex interdependencies ●Susceptible to the fallacies of distributed computing
  • 10. Fallacies of distributed computing ●The network is reliable. ●Latency is zero. ●Bandwidth is infinite. ●The network is secure. ●Topology doesn't change. ●There is one administrator. ●Transport cost is zero. ●The network is homogeneous.
  • 11. Migrating to microservices ●Should we migrate? –Do the benefits outweight the disadvantages? –Are there pressing business requirements? ●A migration to microservices may not provide much value to end users
  • 12. Migrating to microservices(cont'd) ●Iterative refactoring –Refactor an existing application one module at a time –Identify an existing module to refactor as a microservice ●Client code for the refactored module would invoke the refactored code via HTTP requests –Identify a second module to refactor, then a third, etc, until the complete application has been refactored to follow the microservices architectural style
  • 13. Migrating to microservices(cont'd) ●Partial refactoring –Identify modules that may be reusable across applications –Refactor those (and only those) modules as microservices –Hybrid approach
  • 14. Migrating to microservices(cont'd) ●Implement new requirements as microservices –Existing code invokes the newly developed microservices via HTTP requests –Hybrid approach
  • 15. Payara Micro Payara Micro Resource Adapter (RAR) Resource Adapter (RAR) MQTT Topic Outbound Inbound Event Based Microservices Demo JAX-RS (WAR File) MDB (EJB JAR)
  • 16. Java EE 8 ●Java API for JSON Binding (JSON-B) –Automatically populate Java objects from JSON –Automatically generate JSON from Java objects ●Java API for RESTful Web Services (JAX-RS) 2.1 –JSON-B support –Server Sent Events –Improved CDI integration –Security improvements
  • 17. Java EE 8 (cont'd) ●CDI 2.0 –Observer ordering –Asynchronous events –Configurators for major Service Provider Interface (SPI) elements
  • 18. Java EE 8 (cont'd) ●Bean Validation 2.0 –Support for Java SE 8 Date/Time API –Ability to validate all members of a collection with a single annotation –Repeatable annotation support
  • 19. Java EE 9 ●Project Jigsaw support –Java EE dependencies declared as modules ●Circuit Breaker design pattern support for JAX-RS ●New Event API ●NoSQL database support ●New State Management API
  • 20. Microprofile Collaboration between application server vendors and JUGs • IBM • Payara Services • Red Hat • Tomitribe • Hazelcast • Fujitsu • Kumulzee • SmartBear • London Java Community • SouJava Brazilian JUG
  • 21. MicroProfile 1.1 ● Does not compete with Java EE –“Feeds” the Java EE standard ●JAX-RS, CDI, JSON-P and a Configuration API ● New APIS coming in 1.2
  • 22. MicroProfile 1.2 Adds further microservices focussed specs Fault Tolerance – Timeout, Bulkhead, Circuit Breaker JWT Propagation Metrics Healthcheck
  • 23. Summary ●Java EE is suitable for microservices –Java EE developers can leverage their expertise –Deploy Java EE compliant code to an embeddable application server –Traditional Java EE applications can be partially or completely refactored to microservices
  • 24. Additional Resources ●Demystifying Microservices for Java EE Developers Guide: http://info.payara.fish/demystifying-microservices-for-java-ee-developers ●The Aquarium (Java EE 8/9 News): https://blogs.oracle.com/theaquarium/ ●MicroProfile: https://microprofile.io/ ●Follow us on Twitter! @ensode @l33tj4v4