SlideShare a Scribd company logo
1 of 30
Download to read offline
What We Learned from Porting
Piggymetrics from Spring Boot
to MicroProfile ?
Ed Burns
Principal Architect, Microsoft
Java EE on Azure
@edburns
Emily Jiang
Senior Technical Staff Member, IBM
Liberty Microservice Architect,
Advocate
MicroProfile Senior Lead @IBM
@emilyfhjiang
B
Our Plan for Your Time Investment
1. Introduction on PiggyMetrics
2. Demo of PiggyMetrics running on Spring boot
3. Convert PiggyMetrics from Spring Boot to MicroProfile
4. Demo of PiggyMetrics running on Open Liberty
5. Conclusion
B
Roles
B
Ed Burns
Corporate LOB App Developer
Inherited Spring Based LOB app
Need to convert it to MicroProfile to
reduce OpEx
Emily
MicroProfile Consultant
Microservices Expert
B
What is PiggyMetrics?
A tutorial project, initiated by Alexander Lukyanchikov, demonstrating Microservice Architecture Pattern using
Spring Boot, Spring Cloud and Docker.
https://github.com/sqshq/piggymetrics
J
PiggyMetrics Architecture
J
Demo of running PiggyMetrics on
Spring Boot
B
Observations
● A way to boot yourself into Spring
● Pre-date microservices
● Works well with Spring-Cloud
● Follows Spring development governance model
● No separation of interface from implementation.
● Only one supplier: vendor-locking
B
Seeking alternatives
Spring boot -> MicroProfile
One vendor -> open standard
J
MicroPorfile and Spring Boot
https://www.eclipse.org/community/eclipse_newsletter/2019/september/microprofile.php
J
In action
JAX-RS
Jakarta EE Security,
MicroProfile JWT
MicroProfile Open API
J
Rest calls
MicroProfile Rest Client
Spring Boot MicroProfile
J
https://openliberty.io/guides/microprofile-rest-client.html
Rest calls
MicroProfile Rest Client
Spring Boot MicroProfile
J
Configuration
Spring Boot MicroProfile Config
J
https://openliberty.io/guides/microprofile-config-intro.html
https://openliberty.io/guides/microprofile-config.html
Secure endpoints
Spring Boot
MicroProfile
J
https://openliberty.io/guides/microprofile-jwt.html
Injection
Spring Boot MicroProfile
J
Data access
MongoDB
Spring Boot
J
Metrics
MicroProfile Metrics
J
https://openliberty.io/guides/microprofile-metrics.html
Health
MicroProfile Health
J
https://openliberty.io/guides/microprofile-health.html
Fault Tolerance
MicroProfile Fault Tolerance
J
https://openliberty.io/guides/retry-timeout.html
https://openliberty.io/guides/microprofile-fallback.html
https://openliberty.io/guides/circuit-breaker.html
https://openliberty.io/guides/bulkhead.html
API
MicroProfile Open API
All JAX-RS endpoints
have Open API doc
generated.
Open Liberty has Open
API UI for invocation.
J
https://openliberty.io/guides/microprofile-openapi.html
Distributed Tracing
Spring Cloud Sleuth
If the Spring cloud sleuth is configured on the class path, the
trace information will get generated automatically.
MicroProfile Open Tracing
If MicroProfile Open Tracing feature is enabled, the
trace information will get generated automatically.
J
https://openliberty.io/guides/microprofile-opentracing.html
Infrastructure
J
One Sprint Later
Re-built with MicroProfile Open Liberty
B
•PoC only, support MVP user scenarios
•Spring/Spring Cloud features are replaced with
equivalent ones from Open Liberty
•Deployed and running on AKS
•Leverage service discovery from Kubernetes
•API Gateway is implemented with Rest Client
•Network traffic secured by JWT
Azure Kubernetes
Service
Demo of running PiggyMetrics on
Open Liberty with MicroProfile
B
Technologies used
Eclipse MicroProfile
• Config (gateway, auth-service,
account-service, statistics-service)
• Fault Tolerance (statistics-service)
• Health (gateway, auth-service, account-service,
statistics-service)
• Metrics (gateway, auth-service,
account-service, statistics-service)
• JWT (gateway, auth-service, account-service,
statistics-service)
• Rest Client (gateway, account-service,
statistics-service)
• Open Tracing (gateway, auth-service,
account-service, statistics-service)
• Open API (gateway)
• JAX-RS (gateway, auth-service,
account-service, statistics-service)
• JSON-B/JSON-P (gateway, auth-service,
account-service, statistics-service)
• CDI (gateway, auth-service, account-service,
statistics-service)
•Java EE 8
• Security (auth-service)
•Eclipse JNoSQL
• Artemis (auth-service, account-service,
statistics-service)
•Zipkin for distributed tracing
•Prometheus/Grafana for metric collection/visualization
•ELK for log aggregation & analysis
B
Side-by-side Comparison
B
Takeaway
Developers should be free to choose what
works for them they prefer
Enterprise should provide developers with
platforms that enable innovation and
flexibility and are enterprise and production
ready
Liberty supports both MicroProfile/EE and
Spring
Fast, small, reliable runtime
Optimized for containers and cloud
True liberty for microservice developers
and administrators
Spring is popular
MicroProfile and Jakarta EE are evolving rapidly
(and gaining momentum) as community-driven
and standards-based efforts for developing
microservices and cloud-native applications in
enterprise Java
Both Spring and MicroProfile provide facilities
for developers to build next-generation
applications for cloud
Share similarities
There are differences too (and sometimes,
significant)
Lightweight runtimes for Java/Jakarta EE are
readily available nowadays
B
MicroProfile Impl
APIs
Open Source
Driven by Community
Open standards
Behaviors in accordance
specifications
Lines of Code
Customize server configuration
Less code
Libraries/Depe
ndencies
Runtime provides what is needed
per specification
Smaller image
Application
Packaging
Thin WAR
Spring Impl
Open Source
Driven by VMWare
Convention over configuration
Do what you want/need with code
(and configuration)
Find, mix and match what you like
Manage your own dependencies
Fat JARs, Small JARS (Jib for
containers)
B
References
● Jianguo’s Piggymetrics on MicroProfile https://github.com/majguo/piggymetrics
● Original PiggyMetrics on Azure Spring Cloud https://github.com/Azure-Samples/azure-spring-cloud
● Migration guide
https://www.ibm.com/blogs/bluemix/2018/09/migrate-java-microservices-from-spring-to-microprofile-p1/
● Comparison guide https://www.eclipse.org/community/eclipse_newsletter/2019/september/microprofile.php
● MicroProfile Starter https://start.microprofile.io/
● Spring Starter https://start.spring.io/
● OpenLiberty Home https://openliberty.io
B
Thank You
@emilyfhjiang
Thank You!
@edburns

More Related Content

What's hot

ソーシャルゲームの課金認証共通基盤をどう設計したか
ソーシャルゲームの課金認証共通基盤をどう設計したかソーシャルゲームの課金認証共通基盤をどう設計したか
ソーシャルゲームの課金認証共通基盤をどう設計したかYugo Shimizu
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsTatsuo Kudo
 
Security Process in DevSecOps
Security Process in DevSecOpsSecurity Process in DevSecOps
Security Process in DevSecOpsOpsta
 
Kong Enterprise の紹介
Kong Enterprise の紹介Kong Enterprise の紹介
Kong Enterprise の紹介Yoshito Tabuchi
 
Learn how to use Harbor
Learn how to use HarborLearn how to use Harbor
Learn how to use HarborSteve Wong
 
Continuous Testing Landscape.pptx
Continuous Testing Landscape.pptxContinuous Testing Landscape.pptx
Continuous Testing Landscape.pptxMarc Hornbeek
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 
Palestra Medindo seu nível de Visibilidade e Detecção usando ATT&CK e DeTT&CT
Palestra Medindo seu nível de Visibilidade e Detecção usando ATT&CK e DeTT&CTPalestra Medindo seu nível de Visibilidade e Detecção usando ATT&CK e DeTT&CT
Palestra Medindo seu nível de Visibilidade e Detecção usando ATT&CK e DeTT&CTTenchi Security
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewMaría Angélica Bracho
 
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送Google Cloud Platform - Japan
 
Migrating to Microservices Patterns and Technologies (edition 2023)
 Migrating to Microservices Patterns and Technologies (edition 2023) Migrating to Microservices Patterns and Technologies (edition 2023)
Migrating to Microservices Patterns and Technologies (edition 2023)Ahmed Misbah
 
ATT&CK is the Best Defense - Emulating Sophisticated Adversary Malware to Bol...
ATT&CK is the Best Defense - Emulating Sophisticated Adversary Malware to Bol...ATT&CK is the Best Defense - Emulating Sophisticated Adversary Malware to Bol...
ATT&CK is the Best Defense - Emulating Sophisticated Adversary Malware to Bol...MITRE ATT&CK
 
ABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyDerek E. Weeks
 
DevSecOps: Minimizing Risk, Improving Security
DevSecOps: Minimizing Risk, Improving SecurityDevSecOps: Minimizing Risk, Improving Security
DevSecOps: Minimizing Risk, Improving SecurityFranklin Mosley
 
The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017
The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017 The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017
The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017 Xpand IT
 
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>Naoto Miyachi
 

What's hot (20)

ソーシャルゲームの課金認証共通基盤をどう設計したか
ソーシャルゲームの課金認証共通基盤をどう設計したかソーシャルゲームの課金認証共通基盤をどう設計したか
ソーシャルゲームの課金認証共通基盤をどう設計したか
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
Security Process in DevSecOps
Security Process in DevSecOpsSecurity Process in DevSecOps
Security Process in DevSecOps
 
Kong Enterprise の紹介
Kong Enterprise の紹介Kong Enterprise の紹介
Kong Enterprise の紹介
 
Learn how to use Harbor
Learn how to use HarborLearn how to use Harbor
Learn how to use Harbor
 
Continuous Testing Landscape.pptx
Continuous Testing Landscape.pptxContinuous Testing Landscape.pptx
Continuous Testing Landscape.pptx
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
Palestra Medindo seu nível de Visibilidade e Detecção usando ATT&CK e DeTT&CT
Palestra Medindo seu nível de Visibilidade e Detecção usando ATT&CK e DeTT&CTPalestra Medindo seu nível de Visibilidade e Detecção usando ATT&CK e DeTT&CT
Palestra Medindo seu nível de Visibilidade e Detecção usando ATT&CK e DeTT&CT
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
 
Balaji Resume
Balaji ResumeBalaji Resume
Balaji Resume
 
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
[Cloud OnAir] Google Cloud の AI / IoT 最新事例紹介 2020年10月22日 放送
 
Migrating to Microservices Patterns and Technologies (edition 2023)
 Migrating to Microservices Patterns and Technologies (edition 2023) Migrating to Microservices Patterns and Technologies (edition 2023)
Migrating to Microservices Patterns and Technologies (edition 2023)
 
02 api gateway
02 api gateway02 api gateway
02 api gateway
 
Exploring Quarkus on JDK 17
Exploring Quarkus on JDK 17Exploring Quarkus on JDK 17
Exploring Quarkus on JDK 17
 
ATT&CK is the Best Defense - Emulating Sophisticated Adversary Malware to Bol...
ATT&CK is the Best Defense - Emulating Sophisticated Adversary Malware to Bol...ATT&CK is the Best Defense - Emulating Sophisticated Adversary Malware to Bol...
ATT&CK is the Best Defense - Emulating Sophisticated Adversary Malware to Bol...
 
ABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyABN AMRO DevSecOps Journey
ABN AMRO DevSecOps Journey
 
DevSecOps: Minimizing Risk, Improving Security
DevSecOps: Minimizing Risk, Improving SecurityDevSecOps: Minimizing Risk, Improving Security
DevSecOps: Minimizing Risk, Improving Security
 
AWSではじめるDNSSEC
AWSではじめるDNSSECAWSではじめるDNSSEC
AWSではじめるDNSSEC
 
The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017
The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017 The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017
The Real World with OpenShift - Red Hat DevOps & Microservices Conference 2017
 
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
今更聞けない電子認証入門 -OAuth 2.0/OIDCからFIDOまで- <改定2版>
 

Similar to What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile

Micro profile and istio
Micro profile and istioMicro profile and istio
Micro profile and istioEmily Jiang
 
Cloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesCloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesWSO2
 
Cloud native programming model comparison
Cloud native programming model comparisonCloud native programming model comparison
Cloud native programming model comparisonEmily Jiang
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your AppKarenBruner
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your AppStackRox
 
Build12 factorappusingmp
Build12 factorappusingmpBuild12 factorappusingmp
Build12 factorappusingmpEmily Jiang
 
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup  MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup Stephanie Swart
 
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...Ambassador Labs
 
Live Coding 12 Factor App
Live Coding 12 Factor AppLive Coding 12 Factor App
Live Coding 12 Factor AppEmily Jiang
 
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Matt Raible
 
TechEvent Eclipse Microprofile
TechEvent Eclipse MicroprofileTechEvent Eclipse Microprofile
TechEvent Eclipse MicroprofileTrivadis
 
Observability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with KeptnObservability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with KeptnAndreas Grabner
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...VMware Tanzu
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioMichelle Holley
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316Jupil Hwang
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kuberneteskloia
 
Front end microservices - October 2019
Front end microservices - October 2019Front end microservices - October 2019
Front end microservices - October 2019Mikhail Kuznetcov
 
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...Icinga
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSAOracle Korea
 

Similar to What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile (20)

Micro profile and istio
Micro profile and istioMicro profile and istio
Micro profile and istio
 
Cloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in KubernetesCloud Native API Management : Microservices to APIs in Kubernetes
Cloud Native API Management : Microservices to APIs in Kubernetes
 
Cloud native programming model comparison
Cloud native programming model comparisonCloud native programming model comparison
Cloud native programming model comparison
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your App
 
How to Make Istio Work with Your App
How to Make Istio Work with Your AppHow to Make Istio Work with Your App
How to Make Istio Work with Your App
 
Build12 factorappusingmp
Build12 factorappusingmpBuild12 factorappusingmp
Build12 factorappusingmp
 
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup  MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
MicroProfile as the Istio Programming Model | Virtual Eclipse Community Meetup
 
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
 
Live Coding 12 Factor App
Live Coding 12 Factor AppLive Coding 12 Factor App
Live Coding 12 Factor App
 
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
 
TechEvent Eclipse Microprofile
TechEvent Eclipse MicroprofileTechEvent Eclipse Microprofile
TechEvent Eclipse Microprofile
 
Observability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with KeptnObservability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with Keptn
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud - An...
 
Service Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with IstioService Mesh on Kubernetes with Istio
Service Mesh on Kubernetes with Istio
 
Abhishek_Kumar
Abhishek_KumarAbhishek_Kumar
Abhishek_Kumar
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Front end microservices - October 2019
Front end microservices - October 2019Front end microservices - October 2019
Front end microservices - October 2019
 
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 

More from Ed Burns

2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution BriefingEd Burns
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentEd Burns
 
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...Ed Burns
 
Enterprise Java on Azure: From Java EE to Spring, we have you covered
Enterprise Java on Azure: From Java EE to Spring, we have you coveredEnterprise Java on Azure: From Java EE to Spring, we have you covered
Enterprise Java on Azure: From Java EE to Spring, we have you coveredEd Burns
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Ed Burns
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudEd Burns
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologyEd Burns
 
JavaOne-2017 Ignite Session: How to build a Theremin
JavaOne-2017 Ignite Session: How to build a ThereminJavaOne-2017 Ignite Session: How to build a Theremin
JavaOne-2017 Ignite Session: How to build a ThereminEd Burns
 
Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Ed Burns
 
Chicago JUG / GOTO Meetup
Chicago JUG / GOTO MeetupChicago JUG / GOTO Meetup
Chicago JUG / GOTO MeetupEd Burns
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016Ed Burns
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessEd Burns
 

More from Ed Burns (12)

2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing2020-02-10 Java on Azure Solution Briefing
2020-02-10 Java on Azure Solution Briefing
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java Development
 
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
 
Enterprise Java on Azure: From Java EE to Spring, we have you covered
Enterprise Java on Azure: From Java EE to Spring, we have you coveredEnterprise Java on Azure: From Java EE to Spring, we have you covered
Enterprise Java on Azure: From Java EE to Spring, we have you covered
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?Programming Language Platform Growth: Table Stakes or Deal Makes?
Programming Language Platform Growth: Table Stakes or Deal Makes?
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the Cloud
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information TechnologySeminole County Teach In 2017: Crooms Acadamy of Information Technology
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
 
JavaOne-2017 Ignite Session: How to build a Theremin
JavaOne-2017 Ignite Session: How to build a ThereminJavaOne-2017 Ignite Session: How to build a Theremin
JavaOne-2017 Ignite Session: How to build a Theremin
 
Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017
 
Chicago JUG / GOTO Meetup
Chicago JUG / GOTO MeetupChicago JUG / GOTO Meetup
Chicago JUG / GOTO Meetup
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile

  • 1. What We Learned from Porting Piggymetrics from Spring Boot to MicroProfile ? Ed Burns Principal Architect, Microsoft Java EE on Azure @edburns Emily Jiang Senior Technical Staff Member, IBM Liberty Microservice Architect, Advocate MicroProfile Senior Lead @IBM @emilyfhjiang B
  • 2. Our Plan for Your Time Investment 1. Introduction on PiggyMetrics 2. Demo of PiggyMetrics running on Spring boot 3. Convert PiggyMetrics from Spring Boot to MicroProfile 4. Demo of PiggyMetrics running on Open Liberty 5. Conclusion B
  • 3. Roles B Ed Burns Corporate LOB App Developer Inherited Spring Based LOB app Need to convert it to MicroProfile to reduce OpEx Emily MicroProfile Consultant Microservices Expert B
  • 4. What is PiggyMetrics? A tutorial project, initiated by Alexander Lukyanchikov, demonstrating Microservice Architecture Pattern using Spring Boot, Spring Cloud and Docker. https://github.com/sqshq/piggymetrics J
  • 6. Demo of running PiggyMetrics on Spring Boot B
  • 7. Observations ● A way to boot yourself into Spring ● Pre-date microservices ● Works well with Spring-Cloud ● Follows Spring development governance model ● No separation of interface from implementation. ● Only one supplier: vendor-locking B
  • 8. Seeking alternatives Spring boot -> MicroProfile One vendor -> open standard J
  • 9. MicroPorfile and Spring Boot https://www.eclipse.org/community/eclipse_newsletter/2019/september/microprofile.php J
  • 10. In action JAX-RS Jakarta EE Security, MicroProfile JWT MicroProfile Open API J
  • 11. Rest calls MicroProfile Rest Client Spring Boot MicroProfile J https://openliberty.io/guides/microprofile-rest-client.html
  • 12. Rest calls MicroProfile Rest Client Spring Boot MicroProfile J
  • 13. Configuration Spring Boot MicroProfile Config J https://openliberty.io/guides/microprofile-config-intro.html https://openliberty.io/guides/microprofile-config.html
  • 19. Fault Tolerance MicroProfile Fault Tolerance J https://openliberty.io/guides/retry-timeout.html https://openliberty.io/guides/microprofile-fallback.html https://openliberty.io/guides/circuit-breaker.html https://openliberty.io/guides/bulkhead.html
  • 20. API MicroProfile Open API All JAX-RS endpoints have Open API doc generated. Open Liberty has Open API UI for invocation. J https://openliberty.io/guides/microprofile-openapi.html
  • 21. Distributed Tracing Spring Cloud Sleuth If the Spring cloud sleuth is configured on the class path, the trace information will get generated automatically. MicroProfile Open Tracing If MicroProfile Open Tracing feature is enabled, the trace information will get generated automatically. J https://openliberty.io/guides/microprofile-opentracing.html
  • 23. One Sprint Later Re-built with MicroProfile Open Liberty B •PoC only, support MVP user scenarios •Spring/Spring Cloud features are replaced with equivalent ones from Open Liberty •Deployed and running on AKS •Leverage service discovery from Kubernetes •API Gateway is implemented with Rest Client •Network traffic secured by JWT Azure Kubernetes Service
  • 24. Demo of running PiggyMetrics on Open Liberty with MicroProfile B
  • 25. Technologies used Eclipse MicroProfile • Config (gateway, auth-service, account-service, statistics-service) • Fault Tolerance (statistics-service) • Health (gateway, auth-service, account-service, statistics-service) • Metrics (gateway, auth-service, account-service, statistics-service) • JWT (gateway, auth-service, account-service, statistics-service) • Rest Client (gateway, account-service, statistics-service) • Open Tracing (gateway, auth-service, account-service, statistics-service) • Open API (gateway) • JAX-RS (gateway, auth-service, account-service, statistics-service) • JSON-B/JSON-P (gateway, auth-service, account-service, statistics-service) • CDI (gateway, auth-service, account-service, statistics-service) •Java EE 8 • Security (auth-service) •Eclipse JNoSQL • Artemis (auth-service, account-service, statistics-service) •Zipkin for distributed tracing •Prometheus/Grafana for metric collection/visualization •ELK for log aggregation & analysis B
  • 27. Takeaway Developers should be free to choose what works for them they prefer Enterprise should provide developers with platforms that enable innovation and flexibility and are enterprise and production ready Liberty supports both MicroProfile/EE and Spring Fast, small, reliable runtime Optimized for containers and cloud True liberty for microservice developers and administrators Spring is popular MicroProfile and Jakarta EE are evolving rapidly (and gaining momentum) as community-driven and standards-based efforts for developing microservices and cloud-native applications in enterprise Java Both Spring and MicroProfile provide facilities for developers to build next-generation applications for cloud Share similarities There are differences too (and sometimes, significant) Lightweight runtimes for Java/Jakarta EE are readily available nowadays B
  • 28. MicroProfile Impl APIs Open Source Driven by Community Open standards Behaviors in accordance specifications Lines of Code Customize server configuration Less code Libraries/Depe ndencies Runtime provides what is needed per specification Smaller image Application Packaging Thin WAR Spring Impl Open Source Driven by VMWare Convention over configuration Do what you want/need with code (and configuration) Find, mix and match what you like Manage your own dependencies Fat JARs, Small JARS (Jib for containers) B
  • 29. References ● Jianguo’s Piggymetrics on MicroProfile https://github.com/majguo/piggymetrics ● Original PiggyMetrics on Azure Spring Cloud https://github.com/Azure-Samples/azure-spring-cloud ● Migration guide https://www.ibm.com/blogs/bluemix/2018/09/migrate-java-microservices-from-spring-to-microprofile-p1/ ● Comparison guide https://www.eclipse.org/community/eclipse_newsletter/2019/september/microprofile.php ● MicroProfile Starter https://start.microprofile.io/ ● Spring Starter https://start.spring.io/ ● OpenLiberty Home https://openliberty.io B