SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Adopting Quarkus for the
Digital eXperience Layer
Presented by Christos Sotiriou
Backend Chapter Lead @ Vodafone Greece
25 June, 2020
Digital eXperience Layer
● Vodafone has a plethora of Digital Offerings
● Needed to speed up development & deployments
● Hide legacy SOAP Backends
● Hide enterprise complexity behind simple REST APIs
● Vodafone Group Initiative, Open Source across all markets
Digital eXperience Layer
● Cloud middleware based on Kubernetes (AWS)
● Aimed at speeding up data retrieval for VF’s Digital Services
● Currently 90 Microservices (1/3rd of full scope)
● Kafka, MongoDB, Apigee Gateway. REST APIs
● Aggregation through REST
● SOAP Calls to backends
● MongoDB Cache
● Cache Invalidation through
GoldenGate & Kafka
DXL Architecture
Challenges
Business Model Needs
● Vodafone’s Business Model includes many campaigns
● Multiple and heavy traffic spikes throughout the day
● Microservices running analytics and heavy short-running tasks
● Mission - Critical services (like payments)
The ability to scale out fast is critical
CPU usage / Boot Time
● Mongo & Kafka connections slow boot times
● I/O threads consume CPU
● CPU is required for fast booting
High Ram Usage
● Logging per pod through Kafka
● Data transformation takes a toll in resource
consumption
● Large Dependency tree
● Threads also consume memory
Cluster Health
Cluster Health
Autoscaling fails due to slow boot times
Adopting Quarkus
Technology R&D
Finally chose Quarkus
● Performance benefits for JVM
● Quarkus extensions unlock many capabilities
● Hot Reloading
● Microprofile specification ( Java EE for microservices )
● Good Backing ( Red Hat )
● Tested NodeJS, Golang, Micronaut, Vert.x, Quarkus
● Examine how our common library infrastructure would translate
○ i/o
○ Resource Usage
● Performance metrics for our stacks (resource usage, ease of learning)
Adopting Quarkus
Rewrote our common libraries infrastructure
● Didn’t use Spring Compatibility Layer
● Used reactive streams and methods (initially RxJava, now Mutiny)
● MP REST Outbound Filters allowed better logging
● Microprofile specification ( Java EE for microservices )
○ REST Client
○ Reactive Streams
● 30% Less Code - discarded a lot of glue code
Adopting Quarkus
- All common logic inside common libraries.
- Reduce application-level logic as much as possible.
- Allow developers to care about their own business rules without caring about the ecosystem
- Created internal community where teams are considered to be users of those libraries and
contributors
One Year Later
Results
Spring Boot:
● 800 MB RAM
● 500 mCPUs
● Boot time: 40 seconds
● 2 - 12 replicas
Slow boot times (40 seconds) resulted in slow
auto-scaling in production.
Quarkus:
● 360 MB RAM
● 300 mCPUs
● Boot time: 14 seconds
● 2-4 replicas
Faster boot times, resulted in a healthier
cluster
Use Case: User Information Microservice
Normal usage: 2-3 mil requests per day
Results
Deployed Quarkus ms
Released to 100% of user base
2 replicas
50% user base,
12 replicas
Lessons Learned / Future
- Performance is the developer’s currency
- Have a common infrastructure in place (libraries, procedures)
- Risks pay off more than staying on the safe side
- Replacing more SB microservices
- Testing benefits of JVM vs Native
- Expanding our business model to cover more areas of Vodafone
Thank You!

Contenu connexe

Tendances

Tendances (20)

Making Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdfMaking Cloud Native CI_CD Services.pdf
Making Cloud Native CI_CD Services.pdf
 
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとはコンテナを止めるな!  PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
GKE multi-cluster Ingress
GKE multi-cluster IngressGKE multi-cluster Ingress
GKE multi-cluster Ingress
 
Harbor RegistryのReplication機能
Harbor RegistryのReplication機能Harbor RegistryのReplication機能
Harbor RegistryのReplication機能
 
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
 
如何用k8s打造國產5G NFV平臺? 剖析經濟部5G核網技術的關鍵
如何用k8s打造國產5G NFV平臺?剖析經濟部5G核網技術的關鍵如何用k8s打造國產5G NFV平臺?剖析經濟部5G核網技術的關鍵
如何用k8s打造國產5G NFV平臺? 剖析經濟部5G核網技術的關鍵
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす root権限無しでKubernetesを動かす
root権限無しでKubernetesを動かす
 
Why to Cloud Native
Why to Cloud NativeWhy to Cloud Native
Why to Cloud Native
 
VCS + Terraform Cloud: Azure DevOps, GitLab, GitHub & Bitbucket
VCS + Terraform Cloud: Azure DevOps, GitLab, GitHub & BitbucketVCS + Terraform Cloud: Azure DevOps, GitLab, GitHub & Bitbucket
VCS + Terraform Cloud: Azure DevOps, GitLab, GitHub & Bitbucket
 
Battle of the frameworks : Quarkus vs SpringBoot
Battle of the frameworks : Quarkus vs SpringBootBattle of the frameworks : Quarkus vs SpringBoot
Battle of the frameworks : Quarkus vs SpringBoot
 
Google Cloud のネットワークとロードバランサ
Google Cloud のネットワークとロードバランサGoogle Cloud のネットワークとロードバランサ
Google Cloud のネットワークとロードバランサ
 
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
 
Rootlessコンテナ
RootlessコンテナRootlessコンテナ
Rootlessコンテナ
 
[GKE & Spanner 勉強会] GKE 入門
[GKE & Spanner 勉強会] GKE 入門[GKE & Spanner 勉強会] GKE 入門
[GKE & Spanner 勉強会] GKE 入門
 

Similaire à C. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layer

BISSA: Empowering Web gadget Communication with Tuple Spaces
BISSA: Empowering Web gadget Communication with Tuple SpacesBISSA: Empowering Web gadget Communication with Tuple Spaces
BISSA: Empowering Web gadget Communication with Tuple Spaces
Srinath Perera
 

Similaire à C. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layer (20)

Challenges In Modern Application
Challenges In Modern ApplicationChallenges In Modern Application
Challenges In Modern Application
 
Spring and Pivotal Application Service - SpringOne Tour - Boston
Spring and Pivotal Application Service - SpringOne Tour - BostonSpring and Pivotal Application Service - SpringOne Tour - Boston
Spring and Pivotal Application Service - SpringOne Tour - Boston
 
Software Architecture for Cloud Infrastructure
Software Architecture for Cloud InfrastructureSoftware Architecture for Cloud Infrastructure
Software Architecture for Cloud Infrastructure
 
Lanka government cloud: what, why & how?
Lanka government cloud: what, why & how?Lanka government cloud: what, why & how?
Lanka government cloud: what, why & how?
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
Interop ITX: Moving applications: From Legacy to Cloud-to-Cloud
Interop ITX: Moving applications: From Legacy to Cloud-to-CloudInterop ITX: Moving applications: From Legacy to Cloud-to-Cloud
Interop ITX: Moving applications: From Legacy to Cloud-to-Cloud
 
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed ServiceCloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
Cloud-Native Patterns and the Benefits of MySQL as a Platform Managed Service
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journey
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
 
Microservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing MicroservicesMicroservices @ Work - A Practice Report of Developing Microservices
Microservices @ Work - A Practice Report of Developing Microservices
 
Summer 2017 undergraduate research powerpoint
Summer 2017 undergraduate research powerpointSummer 2017 undergraduate research powerpoint
Summer 2017 undergraduate research powerpoint
 
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
 
Day in the life event-driven workshop
Day in the life  event-driven workshopDay in the life  event-driven workshop
Day in the life event-driven workshop
 
TIBCO vs MuleSoft Differentiators
TIBCO vs MuleSoft DifferentiatorsTIBCO vs MuleSoft Differentiators
TIBCO vs MuleSoft Differentiators
 
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
 
BISSA: Empowering Web gadget Communication with Tuple Spaces
BISSA: Empowering Web gadget Communication with Tuple SpacesBISSA: Empowering Web gadget Communication with Tuple Spaces
BISSA: Empowering Web gadget Communication with Tuple Spaces
 
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthUSENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a Month
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 

Plus de Uni Systems S.M.S.A.

Plus de Uni Systems S.M.S.A. (20)

Microsoft Power Platform.pptx
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptx
 
Uni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptx
 
D365 Demonstration CRM G Aspiotis
D365 Demonstration CRM G AspiotisD365 Demonstration CRM G Aspiotis
D365 Demonstration CRM G Aspiotis
 
AI pitch SSideri
 AI pitch SSideri  AI pitch SSideri
AI pitch SSideri
 
Microsoft Fabric Intro D Koutsanastasis
Microsoft Fabric Intro D KoutsanastasisMicrosoft Fabric Intro D Koutsanastasis
Microsoft Fabric Intro D Koutsanastasis
 
Create Unique Experiences through a CRM Approach St Kontos
Create Unique Experiences through a CRM Approach St Kontos Create Unique Experiences through a CRM Approach St Kontos
Create Unique Experiences through a CRM Approach St Kontos
 
Bridging The Gap D Karystinos
 Bridging The Gap D Karystinos Bridging The Gap D Karystinos
Bridging The Gap D Karystinos
 
Bring your data to the era of AI D. Agagiotis.pdf
Bring your data to the era of AI D. Agagiotis.pdfBring your data to the era of AI D. Agagiotis.pdf
Bring your data to the era of AI D. Agagiotis.pdf
 
How AI Transforms Businesses
How AI Transforms BusinessesHow AI Transforms Businesses
How AI Transforms Businesses
 
Innovative approaches with AI, Data Analytics & CRM
Innovative approaches with AI, Data Analytics & CRMInnovative approaches with AI, Data Analytics & CRM
Innovative approaches with AI, Data Analytics & CRM
 
Medallia VoC in action .pdf
Medallia VoC in action .pdfMedallia VoC in action .pdf
Medallia VoC in action .pdf
 
CX Powered by Uni Systems.pdf
CX Powered by Uni Systems.pdfCX Powered by Uni Systems.pdf
CX Powered by Uni Systems.pdf
 
Change the Business Landscape with Voice of Customer.pdf
Change the Business Landscape with Voice of Customer.pdfChange the Business Landscape with Voice of Customer.pdf
Change the Business Landscape with Voice of Customer.pdf
 
CX Powered by Uni Systems
CX Powered by Uni SystemsCX Powered by Uni Systems
CX Powered by Uni Systems
 
Change the Business Landscape with Voice of Customer
Change the Business Landscape with Voice of CustomerChange the Business Landscape with Voice of Customer
Change the Business Landscape with Voice of Customer
 
Medallia VoC in action
Medallia VoC in actionMedallia VoC in action
Medallia VoC in action
 
The Evolution in Customer Experience: Migration to Cloud for Contact Center
The Evolution in Customer Experience: Migration to Cloud for Contact CenterThe Evolution in Customer Experience: Migration to Cloud for Contact Center
The Evolution in Customer Experience: Migration to Cloud for Contact Center
 
The Evolution of Customer Experience
The Evolution of Customer Experience The Evolution of Customer Experience
The Evolution of Customer Experience
 
Using cloud native development to achieve digital transformation
Using cloud native development to achieve digital transformationUsing cloud native development to achieve digital transformation
Using cloud native development to achieve digital transformation
 
Microsoft: Invent with Purpose
Microsoft: Invent with PurposeMicrosoft: Invent with Purpose
Microsoft: Invent with Purpose
 

Dernier

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
+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
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Dernier (20)

%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
+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...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 

C. Sotiriou, Vodafone Greece: Adopting Quarkus for the digital experience layer

  • 1. Adopting Quarkus for the Digital eXperience Layer Presented by Christos Sotiriou Backend Chapter Lead @ Vodafone Greece 25 June, 2020
  • 2. Digital eXperience Layer ● Vodafone has a plethora of Digital Offerings ● Needed to speed up development & deployments ● Hide legacy SOAP Backends ● Hide enterprise complexity behind simple REST APIs ● Vodafone Group Initiative, Open Source across all markets
  • 3. Digital eXperience Layer ● Cloud middleware based on Kubernetes (AWS) ● Aimed at speeding up data retrieval for VF’s Digital Services ● Currently 90 Microservices (1/3rd of full scope) ● Kafka, MongoDB, Apigee Gateway. REST APIs
  • 4. ● Aggregation through REST ● SOAP Calls to backends ● MongoDB Cache ● Cache Invalidation through GoldenGate & Kafka DXL Architecture
  • 6. Business Model Needs ● Vodafone’s Business Model includes many campaigns ● Multiple and heavy traffic spikes throughout the day ● Microservices running analytics and heavy short-running tasks ● Mission - Critical services (like payments) The ability to scale out fast is critical
  • 7. CPU usage / Boot Time ● Mongo & Kafka connections slow boot times ● I/O threads consume CPU ● CPU is required for fast booting High Ram Usage ● Logging per pod through Kafka ● Data transformation takes a toll in resource consumption ● Large Dependency tree ● Threads also consume memory Cluster Health
  • 8. Cluster Health Autoscaling fails due to slow boot times
  • 10. Technology R&D Finally chose Quarkus ● Performance benefits for JVM ● Quarkus extensions unlock many capabilities ● Hot Reloading ● Microprofile specification ( Java EE for microservices ) ● Good Backing ( Red Hat ) ● Tested NodeJS, Golang, Micronaut, Vert.x, Quarkus ● Examine how our common library infrastructure would translate ○ i/o ○ Resource Usage ● Performance metrics for our stacks (resource usage, ease of learning)
  • 11. Adopting Quarkus Rewrote our common libraries infrastructure ● Didn’t use Spring Compatibility Layer ● Used reactive streams and methods (initially RxJava, now Mutiny) ● MP REST Outbound Filters allowed better logging ● Microprofile specification ( Java EE for microservices ) ○ REST Client ○ Reactive Streams ● 30% Less Code - discarded a lot of glue code
  • 12. Adopting Quarkus - All common logic inside common libraries. - Reduce application-level logic as much as possible. - Allow developers to care about their own business rules without caring about the ecosystem - Created internal community where teams are considered to be users of those libraries and contributors
  • 14. Results Spring Boot: ● 800 MB RAM ● 500 mCPUs ● Boot time: 40 seconds ● 2 - 12 replicas Slow boot times (40 seconds) resulted in slow auto-scaling in production. Quarkus: ● 360 MB RAM ● 300 mCPUs ● Boot time: 14 seconds ● 2-4 replicas Faster boot times, resulted in a healthier cluster Use Case: User Information Microservice Normal usage: 2-3 mil requests per day
  • 15. Results Deployed Quarkus ms Released to 100% of user base 2 replicas 50% user base, 12 replicas
  • 16. Lessons Learned / Future - Performance is the developer’s currency - Have a common infrastructure in place (libraries, procedures) - Risks pay off more than staying on the safe side - Replacing more SB microservices - Testing benefits of JVM vs Native - Expanding our business model to cover more areas of Vodafone