SlideShare a Scribd company logo
Rajith Attapattu, CTO @ Randoli Inc.
www.randoli.ca
Migrating from Oracle SOA
Suite to Microservices On
Kubernetes
1
2
Accelerate your journey to Kubernetes
with the Konveyor Community
A community of people passionate about
helping others modernize and migrate
their applications to the hybrid cloud by
building tools and best practices on
how to break down monoliths, adopt
containers, and embrace Kubernetes.
www.konveyor.io
Watch The Presentation
https://youtu.be/cxH6WjDZc2c
4
What we’ll
discuss
today...
▸ The primary drivers for
migrating off SOA Suite
▸ The high-level approach,
architecture & design
decisions
▸ Implementation details
and challenges faced
▸ Test driven development
and how it reduced our
risks.
▸ Operational concerns
and how we addressed
them
▸ Lessons learned & key
takeaways.
5
The primary drivers for migrating
off SOA Suite
● Move to cloud-native technologies in keeping with the
organizational digital transformation mandate.
● Very high licensing costs of the existing platform.
● Move away from an outdated monolith platform to a
Microservices architecture for efficiency, scalability &
manageability.
6
High Level Architecture
7
Proposed Solution
● Lightweight and
works great on
Springboot
● Rich library with
support for EIP &
Transports, Data
formats
● Error handling
support and
testing support
Camel
● Declarative
approach- What to
do vs how to do
● Helps to
externalize,
centralize and
structure in a self
documenting way
● Visibility on which
rules were
executed
Drools
● Cloud-native was
a goal
● Internal team
with good skills
● Good CI/CD
offering built
around OCP
Kubernetes
8
Camel On Springboot
● SOAP interface to support legacy applications but built a parallel
REST interface using REST DSL
● Used an internal object model that got mapped from SOAP
interface
● Micrometer component for getting metrics
● onException with retry policies for error handling
● Resilience4j with Circuit Breaker EIP to handle downstream
communication
● Camel-Zipkin for tracing
● Custom Camel Springboot Starter
9
Drools Engine
For implementing business rules
● We grouped rules into a package like structure with a naming
convention for easy identification
● For each stage where rules were applied, we built a kie-base with
rules only relevant to that stage.
● These kie-bases were wrapped by a POJO and called as a step in
the camel route.
● This allowed us to write targeted test cases via JUnit
● For each stage, we logged the facts supplied, the rules that got
fired and the decisions (outcome).
10
Test Driven Approach
● Camel has awesome support for writing test cases (Weaveby,
Mock ..etc)
● For each business workflow we wrote test routes that exercised
the various cases as unit tests.
● External integration endpoints were easily mocked by Weaveby
allowing us to write multiple test cases by varying the responses.
● Each sub route was unit tested.
● At least two test cases per business rule.
11
Operational View - Kubernetes
12
Operational Challenges
● Operations need to see all the logs relating to a particular
transaction in ELK
○ Used cxf interceptors to inject gtxid to the mdc
○ Strategically placed logs at key points in the route provided
a detailed picture.
● Used AgendaEventListener to log all the rules fired
● Micrometer exposed metrics via prometheus
● Logging via Camel Zipkin provided timing around endpoints
● JVM metrics collected via prometheus - helped pin point netty
buffer leak.
13
Lessons Learned & Key Takeaways
● With any migration project you need expect that you will not know all the
requirements or the corner cases. You have to peel the onion.
● Distributed logging is a must if you are using containers.
● Understand how JVM memory is allocated and how to tune it in a containerized
application.
● Metrics around external endpoints help understand where the latency is coming
from. Metrics around key points in your route provides further insight.
● When combining Camel EIPs and components investigate further to see what
goes underneath the covers.
Join the Konveyor Community
www.konveyor.io
Thank you!
15
Rajith Attapattu,
CTO @ Randoli Inc.
If you have questions feel free to contact
rajith@randoli.ca
https://www.linkedin.com/in/rajith-muditha-attapattu/

More Related Content

What's hot

Infrastructure-as-Code (IaC) Using Terraform (Intermediate Edition)
Infrastructure-as-Code (IaC) Using Terraform (Intermediate Edition)Infrastructure-as-Code (IaC) Using Terraform (Intermediate Edition)
Infrastructure-as-Code (IaC) Using Terraform (Intermediate Edition)
Adin Ermie
 
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
EDB
 
How to govern and secure a Data Mesh?
How to govern and secure a Data Mesh?How to govern and secure a Data Mesh?
How to govern and secure a Data Mesh?
confluent
 
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Edureka!
 
AWS Cloud Migration Insights Forum
AWS Cloud Migration Insights ForumAWS Cloud Migration Insights Forum
AWS Cloud Migration Insights Forum
Amazon Web Services
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
loodse
 
Strategic Approach To Data Migration Project Plan
Strategic Approach To Data Migration Project PlanStrategic Approach To Data Migration Project Plan
Strategic Approach To Data Migration Project Plan
SlideTeam
 
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
DataWorks Summit
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
Araf Karsh Hamid
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
Araf Karsh Hamid
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
Igor Sfiligoi
 
Argo Workflows 3.0, a detailed look at what’s new from the Argo Team
Argo Workflows 3.0, a detailed look at what’s new from the Argo TeamArgo Workflows 3.0, a detailed look at what’s new from the Argo Team
Argo Workflows 3.0, a detailed look at what’s new from the Argo Team
LibbySchulze
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
Robert Bohne
 
Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive Overview
Bob Killen
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
 
Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...
jeetendra mandal
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
NexThoughts Technologies
 
Cloud Migration: A How-To Guide
Cloud Migration: A How-To GuideCloud Migration: A How-To Guide
Cloud Migration: A How-To Guide
Amazon Web Services
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
Knoldus Inc.
 
Kubernetes
KubernetesKubernetes
Kubernetes
erialc_w
 

What's hot (20)

Infrastructure-as-Code (IaC) Using Terraform (Intermediate Edition)
Infrastructure-as-Code (IaC) Using Terraform (Intermediate Edition)Infrastructure-as-Code (IaC) Using Terraform (Intermediate Edition)
Infrastructure-as-Code (IaC) Using Terraform (Intermediate Edition)
 
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
 
How to govern and secure a Data Mesh?
How to govern and secure a Data Mesh?How to govern and secure a Data Mesh?
How to govern and secure a Data Mesh?
 
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
 
AWS Cloud Migration Insights Forum
AWS Cloud Migration Insights ForumAWS Cloud Migration Insights Forum
AWS Cloud Migration Insights Forum
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
 
Strategic Approach To Data Migration Project Plan
Strategic Approach To Data Migration Project PlanStrategic Approach To Data Migration Project Plan
Strategic Approach To Data Migration Project Plan
 
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
PayPal merchant ecosystem using Apache Spark, Hive, Druid, and HBase
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
Microservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and SagaMicroservices Architecture Part 2 Event Sourcing and Saga
Microservices Architecture Part 2 Event Sourcing and Saga
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
 
Argo Workflows 3.0, a detailed look at what’s new from the Argo Team
Argo Workflows 3.0, a detailed look at what’s new from the Argo TeamArgo Workflows 3.0, a detailed look at what’s new from the Argo Team
Argo Workflows 3.0, a detailed look at what’s new from the Argo Team
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive Overview
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
 
Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Cloud Migration: A How-To Guide
Cloud Migration: A How-To GuideCloud Migration: A How-To Guide
Cloud Migration: A How-To Guide
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
 
Kubernetes
KubernetesKubernetes
Kubernetes
 

Similar to Migrating from oracle soa suite to microservices on kubernetes

The Kubernetes Effect
The Kubernetes EffectThe Kubernetes Effect
The Kubernetes Effect
Bilgin Ibryam
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
Miki Lombardi
 
Using Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersUsing Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M users
Mirantis
 
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
kloia
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
Weaveworks
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolithAgile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
Judy Breedlove
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
Haggai Philip Zagury
 
Microservice Workshop Hands On
Microservice Workshop Hands On Microservice Workshop Hands On
Microservice Workshop Hands On
Ram G Suri
 
Moving from Monolith to Microservices
Moving from Monolith to MicroservicesMoving from Monolith to Microservices
Moving from Monolith to Microservices
Mist.io
 
API Microservices with Node.js and Docker
API Microservices with Node.js and DockerAPI Microservices with Node.js and Docker
API Microservices with Node.js and Docker
Apigee | Google Cloud
 
Cloud Native Camel Design Patterns
Cloud Native Camel Design PatternsCloud Native Camel Design Patterns
Cloud Native Camel Design Patterns
Bilgin Ibryam
 
The journey to Native Cloud Architecture & Microservices, tracing the footste...
The journey to Native Cloud Architecture & Microservices, tracing the footste...The journey to Native Cloud Architecture & Microservices, tracing the footste...
The journey to Native Cloud Architecture & Microservices, tracing the footste...
Mek Srunyu Stittri
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
Google Cloud Platform - Japan
 
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
Ron Perlmuter
 
Cloudify: Open vCPE Design Concepts and Multi-Cloud Orchestration
Cloudify: Open vCPE Design Concepts and Multi-Cloud OrchestrationCloudify: Open vCPE Design Concepts and Multi-Cloud Orchestration
Cloudify: Open vCPE Design Concepts and Multi-Cloud Orchestration
Cloudify Community
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Weaveworks
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOps
Opsta
 
Cloud Native Practice
Cloud Native PracticeCloud Native Practice
Cloud Native Practice
Philip Zheng
 
'How to build efficient backend based on microservice architecture' by Anton ...
'How to build efficient backend based on microservice architecture' by Anton ...'How to build efficient backend based on microservice architecture' by Anton ...
'How to build efficient backend based on microservice architecture' by Anton ...
OdessaJS Conf
 
Journey Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityJourney Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment Maturity
Altoros
 

Similar to Migrating from oracle soa suite to microservices on kubernetes (20)

The Kubernetes Effect
The Kubernetes EffectThe Kubernetes Effect
The Kubernetes Effect
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Using Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M usersUsing Kubernetes to make cellular data plans cheaper for 50M users
Using Kubernetes to make cellular data plans cheaper for 50M users
 
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
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolithAgile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
Microservice Workshop Hands On
Microservice Workshop Hands On Microservice Workshop Hands On
Microservice Workshop Hands On
 
Moving from Monolith to Microservices
Moving from Monolith to MicroservicesMoving from Monolith to Microservices
Moving from Monolith to Microservices
 
API Microservices with Node.js and Docker
API Microservices with Node.js and DockerAPI Microservices with Node.js and Docker
API Microservices with Node.js and Docker
 
Cloud Native Camel Design Patterns
Cloud Native Camel Design PatternsCloud Native Camel Design Patterns
Cloud Native Camel Design Patterns
 
The journey to Native Cloud Architecture & Microservices, tracing the footste...
The journey to Native Cloud Architecture & Microservices, tracing the footste...The journey to Native Cloud Architecture & Microservices, tracing the footste...
The journey to Native Cloud Architecture & Microservices, tracing the footste...
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
 
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
 
Cloudify: Open vCPE Design Concepts and Multi-Cloud Orchestration
Cloudify: Open vCPE Design Concepts and Multi-Cloud OrchestrationCloudify: Open vCPE Design Concepts and Multi-Cloud Orchestration
Cloudify: Open vCPE Design Concepts and Multi-Cloud Orchestration
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Deploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOpsDeploy 22 microservices from scratch in 30 mins with GitOps
Deploy 22 microservices from scratch in 30 mins with GitOps
 
Cloud Native Practice
Cloud Native PracticeCloud Native Practice
Cloud Native Practice
 
'How to build efficient backend based on microservice architecture' by Anton ...
'How to build efficient backend based on microservice architecture' by Anton ...'How to build efficient backend based on microservice architecture' by Anton ...
'How to build efficient backend based on microservice architecture' by Anton ...
 
Journey Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityJourney Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment Maturity
 

More from Konveyor Community

State of application modernization 2024 report
State of application modernization 2024 reportState of application modernization 2024 report
State of application modernization 2024 report
Konveyor Community
 
Tackle 2: New capabilities for modernizing applications to leverage Kubernetes
Tackle 2: New capabilities for modernizing applications to leverage KubernetesTackle 2: New capabilities for modernizing applications to leverage Kubernetes
Tackle 2: New capabilities for modernizing applications to leverage Kubernetes
Konveyor Community
 
State of application modernization 2022
State of application modernization 2022State of application modernization 2022
State of application modernization 2022
Konveyor Community
 
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Konveyor Community
 
Rehosting apps between k8s clusters and automating deployment using crane
Rehosting apps between k8s clusters and automating deployment using craneRehosting apps between k8s clusters and automating deployment using crane
Rehosting apps between k8s clusters and automating deployment using crane
Konveyor Community
 
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 monthsMigrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Konveyor Community
 
How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads  How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads
Konveyor Community
 
Tackle Containerization Advisor (TCA) for Legacy Applications
Tackle Containerization Advisor (TCA) for Legacy ApplicationsTackle Containerization Advisor (TCA) for Legacy Applications
Tackle Containerization Advisor (TCA) for Legacy Applications
Konveyor Community
 
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewriteCost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
Konveyor Community
 
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
Konveyor Community
 
Tackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorTackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case Generator
Konveyor Community
 
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
Konveyor Community
 
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Konveyor Community
 
Data-centric Application Analysis with Open-source Tool Tackle-DiVA
Data-centric Application Analysis with Open-source Tool Tackle-DiVAData-centric Application Analysis with Open-source Tool Tackle-DiVA
Data-centric Application Analysis with Open-source Tool Tackle-DiVA
Konveyor Community
 
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Automate Workflows With The Open-source Cloud-native Tool Boomerang FlowAutomate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Konveyor Community
 
[Konveyor] adding security to dev ops for your kubernetes native applications
[Konveyor] adding security to dev ops for your kubernetes native applications [Konveyor] adding security to dev ops for your kubernetes native applications
[Konveyor] adding security to dev ops for your kubernetes native applications
Konveyor Community
 
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
Konveyor Community
 
[Konveyor] roles & processes that make application modernization projects...
[Konveyor] roles & processes that make application modernization projects...[Konveyor] roles & processes that make application modernization projects...
[Konveyor] roles & processes that make application modernization projects...
Konveyor Community
 
Modern Security Pain Points with Application Modernization - With Jermaine Ed...
Modern Security Pain Points with Application Modernization - With Jermaine Ed...Modern Security Pain Points with Application Modernization - With Jermaine Ed...
Modern Security Pain Points with Application Modernization - With Jermaine Ed...
Konveyor Community
 
[Konveyor] address technical risks when implementing workload modernization u...
[Konveyor] address technical risks when implementing workload modernization u...[Konveyor] address technical risks when implementing workload modernization u...
[Konveyor] address technical risks when implementing workload modernization u...
Konveyor Community
 

More from Konveyor Community (20)

State of application modernization 2024 report
State of application modernization 2024 reportState of application modernization 2024 report
State of application modernization 2024 report
 
Tackle 2: New capabilities for modernizing applications to leverage Kubernetes
Tackle 2: New capabilities for modernizing applications to leverage KubernetesTackle 2: New capabilities for modernizing applications to leverage Kubernetes
Tackle 2: New capabilities for modernizing applications to leverage Kubernetes
 
State of application modernization 2022
State of application modernization 2022State of application modernization 2022
State of application modernization 2022
 
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
 
Rehosting apps between k8s clusters and automating deployment using crane
Rehosting apps between k8s clusters and automating deployment using craneRehosting apps between k8s clusters and automating deployment using crane
Rehosting apps between k8s clusters and automating deployment using crane
 
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 monthsMigrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
 
How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads  How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads
 
Tackle Containerization Advisor (TCA) for Legacy Applications
Tackle Containerization Advisor (TCA) for Legacy ApplicationsTackle Containerization Advisor (TCA) for Legacy Applications
Tackle Containerization Advisor (TCA) for Legacy Applications
 
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewriteCost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
 
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
 
Tackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case GeneratorTackle-test: An Automatic Unit-level Test Case Generator
Tackle-test: An Automatic Unit-level Test Case Generator
 
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
Zero-Touch Declarative Rehosting of Legacy Monolith Applications to Kubernete...
 
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
 
Data-centric Application Analysis with Open-source Tool Tackle-DiVA
Data-centric Application Analysis with Open-source Tool Tackle-DiVAData-centric Application Analysis with Open-source Tool Tackle-DiVA
Data-centric Application Analysis with Open-source Tool Tackle-DiVA
 
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Automate Workflows With The Open-source Cloud-native Tool Boomerang FlowAutomate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
 
[Konveyor] adding security to dev ops for your kubernetes native applications
[Konveyor] adding security to dev ops for your kubernetes native applications [Konveyor] adding security to dev ops for your kubernetes native applications
[Konveyor] adding security to dev ops for your kubernetes native applications
 
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
[Konveyor] introduction to cloud native chaos engineering with litmus chaos (1)
 
[Konveyor] roles & processes that make application modernization projects...
[Konveyor] roles & processes that make application modernization projects...[Konveyor] roles & processes that make application modernization projects...
[Konveyor] roles & processes that make application modernization projects...
 
Modern Security Pain Points with Application Modernization - With Jermaine Ed...
Modern Security Pain Points with Application Modernization - With Jermaine Ed...Modern Security Pain Points with Application Modernization - With Jermaine Ed...
Modern Security Pain Points with Application Modernization - With Jermaine Ed...
 
[Konveyor] address technical risks when implementing workload modernization u...
[Konveyor] address technical risks when implementing workload modernization u...[Konveyor] address technical risks when implementing workload modernization u...
[Konveyor] address technical risks when implementing workload modernization u...
 

Recently uploaded

From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 

Recently uploaded (20)

From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 

Migrating from oracle soa suite to microservices on kubernetes

  • 1. Rajith Attapattu, CTO @ Randoli Inc. www.randoli.ca Migrating from Oracle SOA Suite to Microservices On Kubernetes 1
  • 2. 2 Accelerate your journey to Kubernetes with the Konveyor Community A community of people passionate about helping others modernize and migrate their applications to the hybrid cloud by building tools and best practices on how to break down monoliths, adopt containers, and embrace Kubernetes. www.konveyor.io
  • 4. 4 What we’ll discuss today... ▸ The primary drivers for migrating off SOA Suite ▸ The high-level approach, architecture & design decisions ▸ Implementation details and challenges faced ▸ Test driven development and how it reduced our risks. ▸ Operational concerns and how we addressed them ▸ Lessons learned & key takeaways.
  • 5. 5 The primary drivers for migrating off SOA Suite ● Move to cloud-native technologies in keeping with the organizational digital transformation mandate. ● Very high licensing costs of the existing platform. ● Move away from an outdated monolith platform to a Microservices architecture for efficiency, scalability & manageability.
  • 7. 7 Proposed Solution ● Lightweight and works great on Springboot ● Rich library with support for EIP & Transports, Data formats ● Error handling support and testing support Camel ● Declarative approach- What to do vs how to do ● Helps to externalize, centralize and structure in a self documenting way ● Visibility on which rules were executed Drools ● Cloud-native was a goal ● Internal team with good skills ● Good CI/CD offering built around OCP Kubernetes
  • 8. 8 Camel On Springboot ● SOAP interface to support legacy applications but built a parallel REST interface using REST DSL ● Used an internal object model that got mapped from SOAP interface ● Micrometer component for getting metrics ● onException with retry policies for error handling ● Resilience4j with Circuit Breaker EIP to handle downstream communication ● Camel-Zipkin for tracing ● Custom Camel Springboot Starter
  • 9. 9 Drools Engine For implementing business rules ● We grouped rules into a package like structure with a naming convention for easy identification ● For each stage where rules were applied, we built a kie-base with rules only relevant to that stage. ● These kie-bases were wrapped by a POJO and called as a step in the camel route. ● This allowed us to write targeted test cases via JUnit ● For each stage, we logged the facts supplied, the rules that got fired and the decisions (outcome).
  • 10. 10 Test Driven Approach ● Camel has awesome support for writing test cases (Weaveby, Mock ..etc) ● For each business workflow we wrote test routes that exercised the various cases as unit tests. ● External integration endpoints were easily mocked by Weaveby allowing us to write multiple test cases by varying the responses. ● Each sub route was unit tested. ● At least two test cases per business rule.
  • 11. 11 Operational View - Kubernetes
  • 12. 12 Operational Challenges ● Operations need to see all the logs relating to a particular transaction in ELK ○ Used cxf interceptors to inject gtxid to the mdc ○ Strategically placed logs at key points in the route provided a detailed picture. ● Used AgendaEventListener to log all the rules fired ● Micrometer exposed metrics via prometheus ● Logging via Camel Zipkin provided timing around endpoints ● JVM metrics collected via prometheus - helped pin point netty buffer leak.
  • 13. 13 Lessons Learned & Key Takeaways ● With any migration project you need expect that you will not know all the requirements or the corner cases. You have to peel the onion. ● Distributed logging is a must if you are using containers. ● Understand how JVM memory is allocated and how to tune it in a containerized application. ● Metrics around external endpoints help understand where the latency is coming from. Metrics around key points in your route provides further insight. ● When combining Camel EIPs and components investigate further to see what goes underneath the covers.
  • 14. Join the Konveyor Community www.konveyor.io
  • 15. Thank you! 15 Rajith Attapattu, CTO @ Randoli Inc. If you have questions feel free to contact rajith@randoli.ca https://www.linkedin.com/in/rajith-muditha-attapattu/