SlideShare a Scribd company logo
1 of 52
Download to read offline
Ahmed MISBAH - 04/04/2021
Istio as an Enabler for Migrating
Monolithic Applications to
Microservices
V1.3
2
A little about me

Areas of Transformation in the IT World

Migrating Legacy Monolithic Applications to Microservices

Theory

Design

Implementation using Istio

Conclusions
Agenda
3
A little about me

Areas of Transformation in the IT World

Migrating Legacy Monolithic Applications to Microservices

Theory

Design

Implementation using Istio

Conclusions
Agenda
• Software Architect

• Speaker at:

• DevOpsDays Cairo

• Africa and Middle East Conference
on Software Engineering

• Orange DevTest Days

• Java Developer Conference

• Google Developer Group
A little about me
• Topics of interest:

• DevOps

• Agile and Lean

• Software Architecture

• Java
A little about me
6
A little about me

Areas of Transformation in the IT World

Migrating Legacy Monolithic Applications to Microservices

Theory

Design

Implementation using Istio

Conclusions
Agenda
Areas of Transformation in the IT World
Development Process Application Architecture Deployment and Packaging Application Infrastructure
Waterfall
Agile
DevOps
Monolithic
N-Tier | SOA
Microservices
Physical Servers
Virtual Server
Containers
Datacenter
Hosted
Cloud
9
A little about me

Areas of Transformation in the IT World

Migrating Legacy Monolithic Applications to Microservices

Theory

Design

Implementation using Istio

Conclusions
Agenda
Microservices - also known as Microservice Architecture - is an architectural
style that structures an application as a collection of services that are:

• Highly maintainable and testable

• Loosely coupled

• Independently deployable

• Organized around business capabilities or bounded context

• Owned by a small teams
What is Microservice Architecture?
Why Microservice Architecture?
• Technology Heterogeneity

• Robustness

• Scaling

• Ease of Deployment

• Organizational Alignment

• Composability
Microservice Architecture Pain Points
1. Developer Experience

2. Technology Overload (i.e. Complexity)

3. Monitoring and Troubleshooting

4. Handling failure

5. Security

6. Testing

7. Latency

8. Data Consistency
Microservice Architecture Design Patterns
Microservice Architecture Enabling Technology
• Containers (e.g. Docker)

• Container Orchestration (e.g. Kubernetes)

• Service Mesh (e.g. Istio)

• Message Broker and Streaming (e.g. Kafka)

• Public Cloud (e.g. AWS)
Enter Service Mesh
• A Service Mesh is a dedicated infrastructure /
communication layer for facilitating service-to-
service communications
between services or microservices, using
a proxy (often as a sidecar).

• Having such a dedicated communication layer
can provide a number of benefits, such as:

• Providing observability into communications, 

• Providing secure connections, 

• Automating retries and backoff for failed
requests,

• Traffic management,

• Separating the business logic of the application
from the previous points
Enter Service Mesh
To sum up, a Service Mesh offers the ability to:

• Connect: The ability for services to discover and talk
to each other. It enables intelligent routing to control
the flow of traffic and API calls between services/
endpoints. These also enable advanced deployment
strategies such as blue/green, canaries or rolling
upgrades, and more.

• Secure: The ability to secure communication
between services. It can enforce policies to allow or
deny communication. 

• Monitor: Enables observability of your distributed
microservices system. Service Mesh often integrates
out-of-the-box with monitoring and tracing tools
(such as Prometheus and Jaeger in the case of K8s/
Istio) to allow you to discover and visualize
dependencies between services, traffic flow, API
latencies, and tracing.
17
A little about me

Areas of Transformation in the IT World

Migrating Legacy Monolithic Applications to Microservices

Theory

Design

Implementation using Istio

Conclusions
Agenda
Migration Approaches
Big Bang Approach Gradual Approach
Problems with Big Bang Approach
1.Probably a lot of time has been spent and a lot of work has been done so that
the monolithic application could meet the business needs to date. Therefore,
considerable effort is also required for it to be developed in the new
architecture.

2.It will be almost impossible to make the current monolithic application stop
evolving to wait for the new microservice based application to be ready for use.

3.Furthermore, it is very likely that at the end of the development process the
new application is out of date with the current business needs due to the time
spent.
Gradual Approach
Monolithic functionalities can be extracted gradually to be implemented in
microservices by splitting the monolithic application into layers. Such
microservices include business functionalities exposed as API calls. They can
also access the monolithic database or have their own autonomous database.

Many patterns exist for splitting monolithic application. One of the most useful
and commonly used techniques is the Strangler Fig Application.
Strangler Fig
Is a certain type of fig that seeds itself in the upper branches of trees. The
fig then descends toward the ground to take root, gradually enveloping the
original tree. The existing tree becomes initially a support structure for the
new fig, and if taken to the final stages, you may see the original tree die
and rot away, leaving only the new, now self-supporting fig in its place.
Strangler Fig Application
In the context of software, the parallel here is to have our new system
initially be supported by, and wrapping, the existing system. The idea is
that the old and the new can coexist, giving the new system time to
grow and potentially entirely replace the old system. 
Stages of Strangler Fig Application Pattern
1.Identify: identify parts of the legacy
application that will be migrated. DDD can be
used to identify various bounded contexts

2.Transform: implement this functionality in a
new microservice

3.Co-exist: leave the existing module in the
legacy application as is. Incrementally re-route
calls from the monolith to the new micro service

4.Eliminate: once the traffic is completely
redirected to the micro service, eliminate the
legacy module
24
A little about me

Areas of Transformation in the IT World

Migrating Legacy Monolithic Applications to Microservices

Theory

Design

Implementation using Istio

Conclusions
Agenda
Why Istio?
(1) Offers everything you need from a service mesh:

• Traffic Management
• Virtual Services

• Destination Rules

• Gateways

• Service enteries

• Sidecars

• Security (ICM, Authentication and Authorization)

• Observability (Metrics, Distributed Tracing, Access
Logs)
Why Istio?
(2) K8s native (i.e. extensibility and all other K8s goodies)

(3) FOSS

(4) Relies on other FOSS (Envoy, Jaeger, Prometheus,
Grafana, Kiali, etc.)
Migrating to Microservices using K8s + Istio
Assumptions:
• Legacy application is a modular monolith

• Deployment will be on a public cloud

• K8s cluster is installed with Istio

• Legacy monolithic application does not run in a
container

• Strangler Fig Application Pattern will be used for
splitting the monolithic application

• Complete DB decomposition will not be covered
+
The sample application
Step 1 - Deploy monolithic application to K8s
• CI pipeline of application should be modified so
as to package monolithic application as a
container image and upload it to an artifact
repository or container registry

• CD pipeline should be configured so as to
trigger the deployment of the application to K8s

• An Istio Ingress Gateway should be deployed
and configured to route all traffic to the
monolithic application

• DNS should be configured so as to map your
domains to the new K8s cluster
K8s Node
K8s Pod
Envoy Proxy
Monolith
Cloud Load Balancer /
Istio Ingress Gateway
Clients
Step 1 - Deploy monolithic application to K8s
K8s Node
K8s Pod
Envoy Proxy
Monolith
Cloud Load Balancer /
Istio Ingress Gateway
Clients
Step 2 - Split Service 1
• Sample applications consists of 4 services

• Service 1 will be split from the monolith

• Istio Ingress Gateway will be configured to
route traffic from legacy Service 1
endpoints to new Microservice 1
Step 2 - Split Service 1
K8s Node
K8s Pod
Envoy Proxy
Monolith
Cloud Load Balancer /
Istio Ingress Gateway
Clients
K8s Pod
Envoy Proxy
Microservice 1
Step 3 - Split Service 2
• Legacy monolith now has only 3 services

• Service 2 will now be split into a separate Microservice

• Service 2 business layer needs data from business layer of
Service 4. Here, we will have one of the following cases:

(1) Presentation layer exposes business layer
functionalities as web services

(2) Business layer functionalities exposed as web services

(3) Presentation layer does not expose business layer
functionalities as web services

(4) Business layer functionalities are not exposed as web
services and are called as functions/methods
Step 3 - Split Service 2 - Cases 1 and 2
K8s Node
K8s Pod
Envoy Proxy
Monolith
Cloud Load Balancer /
Istio Ingress Gateway
Clients
K8s Pod
Envoy Proxy
Microservice 2
K8s Pod
Envoy Proxy
Microservice 1
Step 3 - Split Service 2 - Cases 3 and 4
• “Branch by Abstraction” pattern will be
used
Monolith Monolith
Service 4
business layer
functionality
abstraction
Monolith
Service 2
business
layer
functionality
abstraction
Service 2
business
layer
functionality
web service
client
Service 4
business
layer
functionality
web service
Step 3 - Split Service 2 - Cases 3 and 4
Microservice 2
Service 2
business
layer
functionality
abstraction
Service 2
business
layer
functionality
web service
client
Service 4
business
layer
functionality
web service
Envoy
Proxy
Envoy
Proxy
Monolith
Step 4 - Split Service 4
Microservice 2
Service 2
business
layer
functionality
abstraction
Service 2
business
layer
functionality
web service
client
Service 4
business
layer
functionality
web service
Envoy
Proxy
Envoy
Proxy
Envoy
Proxy
Monolith
Microservice 4
Step 4 - Split Service 4
Microservice 2
Envoy
Proxy
Envoy
Proxy
Envoy
Proxy
Monolith
Microservice 4
Envoy
Proxy
Microservice 1
Step 5 - Split Service 3
K8s Node
Cloud Load Balancer /
Istio Ingress Gateway
Clients
K8s Pod
Envoy Proxy
Microservice 2
K8s Pod
Envoy Proxy
Microservice 4
K8s Pod
Envoy Proxy
Microservice 3
K8s Pod
Envoy Proxy
Microservice 1
K8s Pod
Envoy Proxy
Monolith
Hurray !!
K8s Node
Cloud Load Balancer /
Istio Ingress Gateway
Clients
K8s Pod
Envoy Proxy
Microservice 2
K8s Pod
Envoy Proxy
Microservice 4
K8s Pod
Envoy Proxy
Microservice 3
K8s Pod
Envoy Proxy
Microservice 1
What about the DB?
• You can start with a shared DB,

• Then start decomposing the DB using a
pattern,

• Finally, you should end up with one DB
per microservice. 

• Istio Egress controller can be used to
control traffic to the DB if it will be used as
a service and not deployed within the K8s
cluster
K8s cluster and DB on the same VPC
Cloud Load Balancer /
Istio Ingress Gateway
Clients
K8s Pod
Envoy Proxy
Microservice 2
K8s Pod
Envoy Proxy
Microservice 4
K8s Pod
Envoy Proxy
Microservice 3
K8s Pod
Envoy Proxy
Microservice 1
K8s Node
Istio Egress Gateway
Shared DB
K8s cluster and DBs on the same VPC
Cloud Load Balancer /
Istio Ingress Gateway
Clients
K8s Pod
Envoy Proxy
Microservice 2
K8s Pod
Envoy Proxy
Microservice 4
K8s Pod
Envoy Proxy
Microservice 3
K8s Pod
Envoy Proxy
Microservice 1
K8s Node
Istio Egress Gateway
DB 1 DB 2 DB 3 DB 4
Migrating Legacy Monolithic Applications to Microservices
Other goodies
• Load Balancing

• Canary Releases

• Fault Injection

• Circuit Breaking

• Mutual TLS
Migrating Legacy Monolithic Applications to Microservices
Kiali
Migrating Legacy Monolithic Applications to Microservices
Grafana
Migrating Legacy Monolithic Applications to Microservices
Prometheus
Migrating Legacy Monolithic Applications to Microservices
Jaeger
49
A little about me

Areas of Transformation in the IT World

Migrating Legacy Monolithic Applications to Microservices

Theory

Design

Implementation using Istio

Conclusions
Agenda
Conclusions
• Migrating to Microservices is a hot area in Application Architecture
transformation

• Migration to Microservices requires lots of enablers, such as containerization
and container orchestration on the cloud

• Service mesh adds a lot of benefits to your software architecture

• Istio is a wonderful enabler for migrating to microservices and service mesh
architecture; offering the capability to implement a lot of patterns easily
References
Thank You!
https://twitter.com/AhmedMisbahTech https://www.linkedin.com/in/ahmed-
misbah-msc-251a3a32/
https://www.youtube.com/channel/UCZxEB
qvA1fGKLusLwoadf_w

More Related Content

What's hot

Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principlesSanjoy Kumar Roy
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
AWS Media Day- POOQ의 AWS Headend (Live/VoD) 구축 (박명순 부장)
AWS Media Day- POOQ의 AWS Headend (Live/VoD) 구축 (박명순 부장)AWS Media Day- POOQ의 AWS Headend (Live/VoD) 구축 (박명순 부장)
AWS Media Day- POOQ의 AWS Headend (Live/VoD) 구축 (박명순 부장)Amazon Web Services Korea
 
CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®confluent
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the MonolithVMware Tanzu
 
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드confluent
 
Introduction to Apache Kafka and Confluent... and why they matter
Introduction to Apache Kafka and Confluent... and why they matterIntroduction to Apache Kafka and Confluent... and why they matter
Introduction to Apache Kafka and Confluent... and why they matterconfluent
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices Amazon Web Services
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture Nadeesha Gamage
 
Building Real-time Push APIs Using Kafka as the Customer Facing Interface wit...
Building Real-time Push APIs Using Kafka as the Customer Facing Interface wit...Building Real-time Push APIs Using Kafka as the Customer Facing Interface wit...
Building Real-time Push APIs Using Kafka as the Customer Facing Interface wit...HostedbyConfluent
 
Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...
Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...
Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...confluent
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드Opennaru, inc.
 
Stream and Batch Processing in the Cloud with Data Microservices
Stream and Batch Processing in the Cloud with Data MicroservicesStream and Batch Processing in the Cloud with Data Microservices
Stream and Batch Processing in the Cloud with Data Microservicesmarius_bogoevici
 
Beyond the Brokers: A Tour of the Kafka Ecosystem
Beyond the Brokers: A Tour of the Kafka EcosystemBeyond the Brokers: A Tour of the Kafka Ecosystem
Beyond the Brokers: A Tour of the Kafka Ecosystemconfluent
 
Apache Kafka Streams + Machine Learning / Deep Learning
Apache Kafka Streams + Machine Learning / Deep LearningApache Kafka Streams + Machine Learning / Deep Learning
Apache Kafka Streams + Machine Learning / Deep LearningKai Wähner
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersAtlassian
 
Apache Kafka in the Insurance Industry
Apache Kafka in the Insurance IndustryApache Kafka in the Insurance Industry
Apache Kafka in the Insurance IndustryKai Wähner
 

What's hot (20)

Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
AWS Media Day- POOQ의 AWS Headend (Live/VoD) 구축 (박명순 부장)
AWS Media Day- POOQ의 AWS Headend (Live/VoD) 구축 (박명순 부장)AWS Media Day- POOQ의 AWS Headend (Live/VoD) 구축 (박명순 부장)
AWS Media Day- POOQ의 AWS Headend (Live/VoD) 구축 (박명순 부장)
 
CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
 
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
Confluent Workshop Series: ksqlDB로 스트리밍 앱 빌드
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Introduction to Apache Kafka and Confluent... and why they matter
Introduction to Apache Kafka and Confluent... and why they matterIntroduction to Apache Kafka and Confluent... and why they matter
Introduction to Apache Kafka and Confluent... and why they matter
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture
 
Building Real-time Push APIs Using Kafka as the Customer Facing Interface wit...
Building Real-time Push APIs Using Kafka as the Customer Facing Interface wit...Building Real-time Push APIs Using Kafka as the Customer Facing Interface wit...
Building Real-time Push APIs Using Kafka as the Customer Facing Interface wit...
 
Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...
Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...
Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...
 
From Monolith to Microservices
From Monolith to MicroservicesFrom Monolith to Microservices
From Monolith to Microservices
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
Stream and Batch Processing in the Cloud with Data Microservices
Stream and Batch Processing in the Cloud with Data MicroservicesStream and Batch Processing in the Cloud with Data Microservices
Stream and Batch Processing in the Cloud with Data Microservices
 
Beyond the Brokers: A Tour of the Kafka Ecosystem
Beyond the Brokers: A Tour of the Kafka EcosystemBeyond the Brokers: A Tour of the Kafka Ecosystem
Beyond the Brokers: A Tour of the Kafka Ecosystem
 
Apache Kafka Streams + Machine Learning / Deep Learning
Apache Kafka Streams + Machine Learning / Deep LearningApache Kafka Streams + Machine Learning / Deep Learning
Apache Kafka Streams + Machine Learning / Deep Learning
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and ContainersYour Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
 
Apache Kafka in the Insurance Industry
Apache Kafka in the Insurance IndustryApache Kafka in the Insurance Industry
Apache Kafka in the Insurance Industry
 

Similar to Istio as an Enabler for Migrating Monolithic Applications to Microservices

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
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Ahmed Misbah
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...apidays
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...WSO2
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?NGINX, Inc.
 
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.pptxPINGXIONG3
 
apidays LIVE Hong Kong 2021 - Modernizing Monolith Applications with API Arch...
apidays LIVE Hong Kong 2021 - Modernizing Monolith Applications with API Arch...apidays LIVE Hong Kong 2021 - Modernizing Monolith Applications with API Arch...
apidays LIVE Hong Kong 2021 - Modernizing Monolith Applications with API Arch...apidays
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
Comparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxComparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxssuserecd44f
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Ken Owens
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMiki Lombardi
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep DiveYong Feng
 
Cloud computing
Cloud computingCloud computing
Cloud computingshethzaid
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith Judy Breedlove
 
Benefits of Containers, Microservices and Containerized Microservices
Benefits of Containers, Microservices and Containerized MicroservicesBenefits of Containers, Microservices and Containerized Microservices
Benefits of Containers, Microservices and Containerized MicroservicesHTS Hosting
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMohammedShahid562503
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 

Similar to Istio as an Enabler for Migrating Monolithic Applications to Microservices (20)

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)
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
 
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
 
apidays LIVE Hong Kong 2021 - Modernizing Monolith Applications with API Arch...
apidays LIVE Hong Kong 2021 - Modernizing Monolith Applications with API Arch...apidays LIVE Hong Kong 2021 - Modernizing Monolith Applications with API Arch...
apidays LIVE Hong Kong 2021 - Modernizing Monolith Applications with API Arch...
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Comparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxComparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptx
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
ISTIO Deep Dive
ISTIO Deep DiveISTIO Deep Dive
ISTIO Deep Dive
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
 
Benefits of Containers, Microservices and Containerized Microservices
Benefits of Containers, Microservices and Containerized MicroservicesBenefits of Containers, Microservices and Containerized Microservices
Benefits of Containers, Microservices and Containerized Microservices
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
MICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptxMICROSERVICES ARCHITECTURE unit -2.pptx
MICROSERVICES ARCHITECTURE unit -2.pptx
 
Microservices-101
Microservices-101Microservices-101
Microservices-101
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 

More from Ahmed Misbah

6+1 Technical Tips for Tech Startups (2023 Edition)
6+1 Technical Tips for Tech Startups (2023 Edition)6+1 Technical Tips for Tech Startups (2023 Edition)
6+1 Technical Tips for Tech Startups (2023 Edition)Ahmed Misbah
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfAhmed Misbah
 
DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)Ahmed Misbah
 
TDD Anti-patterns (2022 edition)
TDD Anti-patterns (2022 edition)TDD Anti-patterns (2022 edition)
TDD Anti-patterns (2022 edition)Ahmed Misbah
 
Implementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessImplementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessAhmed Misbah
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDDAhmed Misbah
 
Getting Started with DevOps
Getting Started with DevOpsGetting Started with DevOps
Getting Started with DevOpsAhmed Misbah
 
DevOps for absolute beginners
DevOps for absolute beginnersDevOps for absolute beginners
DevOps for absolute beginnersAhmed Misbah
 
Microservice test strategies for applications based on Spring, K8s and Istio
Microservice test strategies for applications based on Spring, K8s and IstioMicroservice test strategies for applications based on Spring, K8s and Istio
Microservice test strategies for applications based on Spring, K8s and IstioAhmed Misbah
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3Ahmed Misbah
 
Welcome to the Professional World
Welcome to the Professional WorldWelcome to the Professional World
Welcome to the Professional WorldAhmed Misbah
 
More topics on Java
More topics on JavaMore topics on Java
More topics on JavaAhmed Misbah
 
Career Paths for Software Professionals
Career Paths for Software ProfessionalsCareer Paths for Software Professionals
Career Paths for Software ProfessionalsAhmed Misbah
 
Effective User Story Writing
Effective User Story WritingEffective User Story Writing
Effective User Story WritingAhmed Misbah
 
DDT Testing Library for Android
DDT Testing Library for AndroidDDT Testing Library for Android
DDT Testing Library for AndroidAhmed Misbah
 
Software Architecture
Software ArchitectureSoftware Architecture
Software ArchitectureAhmed Misbah
 
The Road to DevOps V3
The Road to DevOps V3The Road to DevOps V3
The Road to DevOps V3Ahmed Misbah
 

More from Ahmed Misbah (20)

6+1 Technical Tips for Tech Startups (2023 Edition)
6+1 Technical Tips for Tech Startups (2023 Edition)6+1 Technical Tips for Tech Startups (2023 Edition)
6+1 Technical Tips for Tech Startups (2023 Edition)
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdf
 
DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)DevOps for absolute beginners (2022 edition)
DevOps for absolute beginners (2022 edition)
 
TDD Anti-patterns (2022 edition)
TDD Anti-patterns (2022 edition)TDD Anti-patterns (2022 edition)
TDD Anti-patterns (2022 edition)
 
Implementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using KubelessImplementing FaaS on Kubernetes using Kubeless
Implementing FaaS on Kubernetes using Kubeless
 
Introduction to TDD
Introduction to TDDIntroduction to TDD
Introduction to TDD
 
Getting Started with DevOps
Getting Started with DevOpsGetting Started with DevOps
Getting Started with DevOps
 
DevOps for absolute beginners
DevOps for absolute beginnersDevOps for absolute beginners
DevOps for absolute beginners
 
Microservice test strategies for applications based on Spring, K8s and Istio
Microservice test strategies for applications based on Spring, K8s and IstioMicroservice test strategies for applications based on Spring, K8s and Istio
Microservice test strategies for applications based on Spring, K8s and Istio
 
Cucumber jvm best practices v3
Cucumber jvm best practices v3Cucumber jvm best practices v3
Cucumber jvm best practices v3
 
Welcome to the Professional World
Welcome to the Professional WorldWelcome to the Professional World
Welcome to the Professional World
 
More topics on Java
More topics on JavaMore topics on Java
More topics on Java
 
Career Paths for Software Professionals
Career Paths for Software ProfessionalsCareer Paths for Software Professionals
Career Paths for Software Professionals
 
Effective User Story Writing
Effective User Story WritingEffective User Story Writing
Effective User Story Writing
 
AndGen+
AndGen+AndGen+
AndGen+
 
DDT Testing Library for Android
DDT Testing Library for AndroidDDT Testing Library for Android
DDT Testing Library for Android
 
Big Data for QAs
Big Data for QAsBig Data for QAs
Big Data for QAs
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software Design
Software DesignSoftware Design
Software Design
 
The Road to DevOps V3
The Road to DevOps V3The Road to DevOps V3
The Road to DevOps V3
 

Recently uploaded

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 

Recently uploaded (20)

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
+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...
 

Istio as an Enabler for Migrating Monolithic Applications to Microservices

  • 1. Ahmed MISBAH - 04/04/2021 Istio as an Enabler for Migrating Monolithic Applications to Microservices V1.3
  • 2. 2 A little about me Areas of Transformation in the IT World Migrating Legacy Monolithic Applications to Microservices Theory Design Implementation using Istio Conclusions Agenda
  • 3. 3 A little about me Areas of Transformation in the IT World Migrating Legacy Monolithic Applications to Microservices Theory Design Implementation using Istio Conclusions Agenda
  • 4. • Software Architect • Speaker at: • DevOpsDays Cairo • Africa and Middle East Conference on Software Engineering • Orange DevTest Days • Java Developer Conference • Google Developer Group A little about me
  • 5. • Topics of interest: • DevOps • Agile and Lean • Software Architecture • Java A little about me
  • 6. 6 A little about me Areas of Transformation in the IT World Migrating Legacy Monolithic Applications to Microservices Theory Design Implementation using Istio Conclusions Agenda
  • 7. Areas of Transformation in the IT World Development Process Application Architecture Deployment and Packaging Application Infrastructure Waterfall Agile DevOps Monolithic N-Tier | SOA Microservices Physical Servers Virtual Server Containers Datacenter Hosted Cloud
  • 8.
  • 9. 9 A little about me Areas of Transformation in the IT World Migrating Legacy Monolithic Applications to Microservices Theory Design Implementation using Istio Conclusions Agenda
  • 10. Microservices - also known as Microservice Architecture - is an architectural style that structures an application as a collection of services that are: • Highly maintainable and testable • Loosely coupled • Independently deployable • Organized around business capabilities or bounded context • Owned by a small teams What is Microservice Architecture?
  • 11. Why Microservice Architecture? • Technology Heterogeneity • Robustness • Scaling • Ease of Deployment • Organizational Alignment • Composability
  • 12. Microservice Architecture Pain Points 1. Developer Experience 2. Technology Overload (i.e. Complexity) 3. Monitoring and Troubleshooting 4. Handling failure 5. Security 6. Testing 7. Latency 8. Data Consistency
  • 14. Microservice Architecture Enabling Technology • Containers (e.g. Docker) • Container Orchestration (e.g. Kubernetes) • Service Mesh (e.g. Istio) • Message Broker and Streaming (e.g. Kafka) • Public Cloud (e.g. AWS)
  • 15. Enter Service Mesh • A Service Mesh is a dedicated infrastructure / communication layer for facilitating service-to- service communications between services or microservices, using a proxy (often as a sidecar). • Having such a dedicated communication layer can provide a number of benefits, such as: • Providing observability into communications, • Providing secure connections, • Automating retries and backoff for failed requests, • Traffic management, • Separating the business logic of the application from the previous points
  • 16. Enter Service Mesh To sum up, a Service Mesh offers the ability to: • Connect: The ability for services to discover and talk to each other. It enables intelligent routing to control the flow of traffic and API calls between services/ endpoints. These also enable advanced deployment strategies such as blue/green, canaries or rolling upgrades, and more. • Secure: The ability to secure communication between services. It can enforce policies to allow or deny communication. • Monitor: Enables observability of your distributed microservices system. Service Mesh often integrates out-of-the-box with monitoring and tracing tools (such as Prometheus and Jaeger in the case of K8s/ Istio) to allow you to discover and visualize dependencies between services, traffic flow, API latencies, and tracing.
  • 17. 17 A little about me Areas of Transformation in the IT World Migrating Legacy Monolithic Applications to Microservices Theory Design Implementation using Istio Conclusions Agenda
  • 18. Migration Approaches Big Bang Approach Gradual Approach
  • 19. Problems with Big Bang Approach 1.Probably a lot of time has been spent and a lot of work has been done so that the monolithic application could meet the business needs to date. Therefore, considerable effort is also required for it to be developed in the new architecture. 2.It will be almost impossible to make the current monolithic application stop evolving to wait for the new microservice based application to be ready for use. 3.Furthermore, it is very likely that at the end of the development process the new application is out of date with the current business needs due to the time spent.
  • 20. Gradual Approach Monolithic functionalities can be extracted gradually to be implemented in microservices by splitting the monolithic application into layers. Such microservices include business functionalities exposed as API calls. They can also access the monolithic database or have their own autonomous database. Many patterns exist for splitting monolithic application. One of the most useful and commonly used techniques is the Strangler Fig Application.
  • 21. Strangler Fig Is a certain type of fig that seeds itself in the upper branches of trees. The fig then descends toward the ground to take root, gradually enveloping the original tree. The existing tree becomes initially a support structure for the new fig, and if taken to the final stages, you may see the original tree die and rot away, leaving only the new, now self-supporting fig in its place.
  • 22. Strangler Fig Application In the context of software, the parallel here is to have our new system initially be supported by, and wrapping, the existing system. The idea is that the old and the new can coexist, giving the new system time to grow and potentially entirely replace the old system. 
  • 23. Stages of Strangler Fig Application Pattern 1.Identify: identify parts of the legacy application that will be migrated. DDD can be used to identify various bounded contexts 2.Transform: implement this functionality in a new microservice 3.Co-exist: leave the existing module in the legacy application as is. Incrementally re-route calls from the monolith to the new micro service 4.Eliminate: once the traffic is completely redirected to the micro service, eliminate the legacy module
  • 24. 24 A little about me Areas of Transformation in the IT World Migrating Legacy Monolithic Applications to Microservices Theory Design Implementation using Istio Conclusions Agenda
  • 25. Why Istio? (1) Offers everything you need from a service mesh: • Traffic Management • Virtual Services • Destination Rules • Gateways • Service enteries • Sidecars • Security (ICM, Authentication and Authorization) • Observability (Metrics, Distributed Tracing, Access Logs)
  • 26. Why Istio? (2) K8s native (i.e. extensibility and all other K8s goodies) (3) FOSS (4) Relies on other FOSS (Envoy, Jaeger, Prometheus, Grafana, Kiali, etc.)
  • 27. Migrating to Microservices using K8s + Istio Assumptions: • Legacy application is a modular monolith • Deployment will be on a public cloud • K8s cluster is installed with Istio • Legacy monolithic application does not run in a container • Strangler Fig Application Pattern will be used for splitting the monolithic application • Complete DB decomposition will not be covered +
  • 29. Step 1 - Deploy monolithic application to K8s • CI pipeline of application should be modified so as to package monolithic application as a container image and upload it to an artifact repository or container registry • CD pipeline should be configured so as to trigger the deployment of the application to K8s • An Istio Ingress Gateway should be deployed and configured to route all traffic to the monolithic application • DNS should be configured so as to map your domains to the new K8s cluster K8s Node K8s Pod Envoy Proxy Monolith Cloud Load Balancer / Istio Ingress Gateway Clients
  • 30. Step 1 - Deploy monolithic application to K8s K8s Node K8s Pod Envoy Proxy Monolith Cloud Load Balancer / Istio Ingress Gateway Clients
  • 31. Step 2 - Split Service 1 • Sample applications consists of 4 services • Service 1 will be split from the monolith • Istio Ingress Gateway will be configured to route traffic from legacy Service 1 endpoints to new Microservice 1
  • 32. Step 2 - Split Service 1 K8s Node K8s Pod Envoy Proxy Monolith Cloud Load Balancer / Istio Ingress Gateway Clients K8s Pod Envoy Proxy Microservice 1
  • 33. Step 3 - Split Service 2 • Legacy monolith now has only 3 services • Service 2 will now be split into a separate Microservice • Service 2 business layer needs data from business layer of Service 4. Here, we will have one of the following cases: (1) Presentation layer exposes business layer functionalities as web services (2) Business layer functionalities exposed as web services (3) Presentation layer does not expose business layer functionalities as web services (4) Business layer functionalities are not exposed as web services and are called as functions/methods
  • 34. Step 3 - Split Service 2 - Cases 1 and 2 K8s Node K8s Pod Envoy Proxy Monolith Cloud Load Balancer / Istio Ingress Gateway Clients K8s Pod Envoy Proxy Microservice 2 K8s Pod Envoy Proxy Microservice 1
  • 35. Step 3 - Split Service 2 - Cases 3 and 4 • “Branch by Abstraction” pattern will be used Monolith Monolith Service 4 business layer functionality abstraction Monolith Service 2 business layer functionality abstraction Service 2 business layer functionality web service client Service 4 business layer functionality web service
  • 36. Step 3 - Split Service 2 - Cases 3 and 4 Microservice 2 Service 2 business layer functionality abstraction Service 2 business layer functionality web service client Service 4 business layer functionality web service Envoy Proxy Envoy Proxy Monolith
  • 37. Step 4 - Split Service 4 Microservice 2 Service 2 business layer functionality abstraction Service 2 business layer functionality web service client Service 4 business layer functionality web service Envoy Proxy Envoy Proxy Envoy Proxy Monolith Microservice 4
  • 38. Step 4 - Split Service 4 Microservice 2 Envoy Proxy Envoy Proxy Envoy Proxy Monolith Microservice 4 Envoy Proxy Microservice 1
  • 39. Step 5 - Split Service 3 K8s Node Cloud Load Balancer / Istio Ingress Gateway Clients K8s Pod Envoy Proxy Microservice 2 K8s Pod Envoy Proxy Microservice 4 K8s Pod Envoy Proxy Microservice 3 K8s Pod Envoy Proxy Microservice 1 K8s Pod Envoy Proxy Monolith
  • 40. Hurray !! K8s Node Cloud Load Balancer / Istio Ingress Gateway Clients K8s Pod Envoy Proxy Microservice 2 K8s Pod Envoy Proxy Microservice 4 K8s Pod Envoy Proxy Microservice 3 K8s Pod Envoy Proxy Microservice 1
  • 41. What about the DB? • You can start with a shared DB, • Then start decomposing the DB using a pattern, • Finally, you should end up with one DB per microservice. • Istio Egress controller can be used to control traffic to the DB if it will be used as a service and not deployed within the K8s cluster
  • 42. K8s cluster and DB on the same VPC Cloud Load Balancer / Istio Ingress Gateway Clients K8s Pod Envoy Proxy Microservice 2 K8s Pod Envoy Proxy Microservice 4 K8s Pod Envoy Proxy Microservice 3 K8s Pod Envoy Proxy Microservice 1 K8s Node Istio Egress Gateway Shared DB
  • 43. K8s cluster and DBs on the same VPC Cloud Load Balancer / Istio Ingress Gateway Clients K8s Pod Envoy Proxy Microservice 2 K8s Pod Envoy Proxy Microservice 4 K8s Pod Envoy Proxy Microservice 3 K8s Pod Envoy Proxy Microservice 1 K8s Node Istio Egress Gateway DB 1 DB 2 DB 3 DB 4
  • 44. Migrating Legacy Monolithic Applications to Microservices Other goodies • Load Balancing • Canary Releases • Fault Injection • Circuit Breaking • Mutual TLS
  • 45. Migrating Legacy Monolithic Applications to Microservices Kiali
  • 46. Migrating Legacy Monolithic Applications to Microservices Grafana
  • 47. Migrating Legacy Monolithic Applications to Microservices Prometheus
  • 48. Migrating Legacy Monolithic Applications to Microservices Jaeger
  • 49. 49 A little about me Areas of Transformation in the IT World Migrating Legacy Monolithic Applications to Microservices Theory Design Implementation using Istio Conclusions Agenda
  • 50. Conclusions • Migrating to Microservices is a hot area in Application Architecture transformation • Migration to Microservices requires lots of enablers, such as containerization and container orchestration on the cloud • Service mesh adds a lot of benefits to your software architecture • Istio is a wonderful enabler for migrating to microservices and service mesh architecture; offering the capability to implement a lot of patterns easily