SlideShare a Scribd company logo
AGILE INTEGRATION: Decomposing The Monolith
Strategies for Resilient Microservices Runtimes
Agile Integration Day
Michael Costello
Architect-Emerging Technology Practice (Enterprise Integration)
Red Hat- Red Hat Consulting/NA
PROBLEM SET INTRODUCTION
CONTEXT: THE MONOLITH
The Monolith was a good place to be...
Once upon a time, all our applications would tend to run in
large enterprise application servers.
Large enterprise application servers would often pack
features that allowed us to quickly package applications and
deploy them to allow us to serve up a myriad of application
needs and features such as db connection pools, EJB
interfaces for local and remote procedure calls, as well as
subsystems for security enforcement, advanced messaging
subsystems and whatever your heart could truly desire over
the years of various enterprise specs!
CONTEXT: THE MONOLITH
...but change was slow and risk was high.
Over time, our packaging of applications like this would mean:
● Our SDLC would grind to a halt as change sets to our
monoliths required careful wizardry
● Lack of fault isolation would mean that one failure
could cascade into total failure
● Lack of process isolation would allow processes that
constituted little of our available feature set to consume
disproportionate compute resources
● High Availability became nightmarish to ensure
with costly outage often the result
DECOMPOSITION FOR SPEED AND AGILITY
As SOA and Microservice Architecture evolved,
we decomposed the beast
A group of smart people in the industry began to see the benefits of
decomposing large monolithic applications so that we could:
● Adhere to SOLID principles across our service offerings - SOLID
principles require us to separate interfaces, adhere to single
responsibility principles and some other pattern goodies
● BRING SDLC Back- we were able to make changes in isolation
and refocus on meeting stakeholder needs
● Fault and Process Isolation - as decomposition emerged,
cascading fault(s) and resource starvation was mitigated
● And Along Came Containers - as opposed to our beastly
vertically scaled monolith days, we were now able to deploy to
compute that met our micro needs but still get all our ‘illities
Agile Integration enables Monolith Decomposition
Tenets of Agile Integration
● API first
● Policy enforcement across these sets
of API’s implies resiliency
● Metrics and Monitoring
● Tactical Decomposition via single
responsibility principles, interface
segregation and dependency inversion
● Fuse on OpenShift provides a location
transparent mechanism for service
discovery and service conversation
across the enterprise...leverage FTW!!!
Why we decomposed in the first place
EVOLVING DECOMPOSITION
MicroServices Architecture isn’t free
We have A LOT more to manage - services come with their own stacks
and differing rates of change. Dependencies between services form as
services are reliant on others as sources of truth, and functionality.
Managing all of the moving parts involves new requirements.
● Fault Tolerance: We must design the overall system to survive
the failure of an individual component at any time
● Testing Maturity: We must measure the viability of service
offerings, often across invocations
● DevOps Maturity: We must manage independent pipelines and
monitor a dynamic landscape of runtimes
● Network Capacity: Granular decomposition often means
exponentiated growth in wire and service protocols
MSA - CROSS CUTTING CONCERNS
How can we observe and manage the whole flock of services?
As our MicroServices architecture evolves, the
single responsibility nature of each individual
service ignores some cross cutting concerns.
● Cascading failures prevention
● Traffic management, and flow control
● Auth/Auz, and policy enforcement
● Distributed Tracing
● Log Aggregation
● Application Monitoring
● Externalized Configuration
MICROSERVICE RESILIENCE
Runtime concerns for a highly decomposed system
Dependency graphs, needs for auth/auz and policy
enforcement across service invocations and the need
for resiliency across the cluster implies a need for
approaches to address these cross cutting concerns.
The following patterns are useful:
● Policy Enforcement
● Distributed Tracing
● Traffic Routing
● Flow Control Mechanisms
SERVICE MESH
Enabling a Communications Control Plane
“Often used to describe the network of
microservices that make up such applications and
the interactions between them. As a service mesh
grows in size and complexity, it can become harder
to understand and manage. Its requirements can
include discovery, load balancing, failure recovery,
metrics, and monitoring, and often more complex
operational requirements such as A/B testing,
canary releases, rate limiting, access control, and
end-to-end authentication”
https://istio.io/docs/concepts/what-is-istio/overvhttps://istio.io/docs/concepts/wha
t-is-istio/overview.htmliew.html
Istio.io is deployed as a side car in containers
leveraging the Envoy proxy to initiate a
communications control plane.
● Capable of leveraging a number of wire protocols
(http2, gRpc, http 1.1)
● Traffic Management - Control the flow of traffic
and API calls between services
● Visibility into dependencies between services
and the flow of traffic between them
● Policy Enforcement - Service Identity and
Security - apply auth/auz between service calls
SERVICE MESH: Istio
A SideCar Pattern leveraging the Envoy Proxy
POLICY ENFORCEMENT
POLICY ENFORCEMENT
Request rate limiting, for example
Rate limiting is used to protect upstream
application servers from being overwhelmed
by too many user requests at the same time.
● security purposes, for example to slow
down brute‑force password‑guessing
attack strategies
● help protect against DDoS attacks by
limiting the incoming request rate
● prevent an upstream service from
overwhelming a downstream service
with unintended traffic
ROUTE POLICY ENFORCEMENT
Rate Limiting as an Application Concern
The Throttler Pattern allows you to ensure that a specific endpoint does not get overloaded,
or that we don't exceed an agreed SLA with some external service.
The following example shows a throttling policy applied to a Camel route:
RATE LIMIT POLICY VIA PROXY
Rate Limiting as an Infrastructure Concern
Delegate rate limit policy enforcement to a Service Mesh
● Abstract away the details of different policy and
telemetry backend systems
● Move policy decisions out of the app layer and into
configuration instead
● For example, the Mixer component of Istio provides
three core features: precondition checking, quota
management, and telemetry reporting
POLICY ENFORCEMENT AT THE EDGES
API Gateway as a first line of defense
3scale gives you a variety of standard options for API authentication
and security, which can be used alone or in combination to issue
credentials and control access:
● Standard API keys
● Application ID and key pair
● OAuth v1.0 and 2.0
3scale’s access control features let you restrict access to specific
endpoints, methods, and services and apply access policy easy for
groups of users.
The 3scale gateway can also enforce rate limits for API usage and
control traffic flow for groups of developers
CIRCUIT BREAKING
CIRCUIT BREAKING
What is a Circuit Breaker?
“You wrap a protected function call in a circuit
breaker object, which monitors for failures. Once the
failures reach a certain threshold, the circuit breaker
trips, and all further calls to the circuit breaker
return with an error, without the protected call being
made at all. Usually you'll also want some kind of
monitor alert if the circuit breaker trips.”
- Martin Fowler
CIRCUIT BREAKING MICROSERVICES
Apache Camel Hystrix EIP
The hystrix EIP provides integration
with Netflix Hystrix to be used as circuit
breaker in the Camel routes.
Hystrix is a latency and fault tolerance
library designed to isolate points of
access to remote systems, services
and 3rd party libraries, stop cascading
failure and enable resilience in
complex distributed systems where
failure is inevitable.
CIRCUIT BREAKING- Istio with ENVOY
DISTRIBUTED TRACING
DISTRIBUTED TRACING
Observability is key for performance analysis
Container-based applications are often deployed as
several components that work together as a system.
A trace tells the story of a transaction as it propagates
through a distributed system. So, a tracing
implementation must piece together information
about a transaction using data gathered from several
components of a system.
OPEN TRACING EVOLUTION
A community-driven open standard for distributed tracing
OpenTracing: by offering consistent, expressive,
vendor-neutral APIs for popular platforms, OpenTracing
makes it easy for developers to add (or switch) tracing
implementation.
● http://opentracing.io
● https://zipkin.io/
● https://www.jaegertracing.io/
● https://github.com/apache/camel/blob/master/co
mponents/camel-opentracing/src/main/docs/open
tracing.adoc
OPEN TRACING WITH CAMEL
DISTRIBUTED TRACING WITH ISTIO
Service Mesh simplifies application instrumentation for tracing
Istio-enabled applications can be configured to
collect trace spans using Zipkin or Jaeger.
Istio automatically send spans, but they need
some hints to tie together the entire trace.
Applications need to propagate the certain
HTTP headers so that when the proxies send
span information to Zipkin or Jaeger, the spans
can be correlated correctly into a single trace.
ONE MORE THING:
- Schedule a Discovery Session
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHatNews
- OC RHUG: https://www.meetup.com/Red-Hat-Orange-County-CA/

More Related Content

What's hot (20)

PDF
The 3 pillars of agile integration: Container, Connector and API
Judy Breedlove
 
PDF
Agile integration activation: get hands on with ap-is
Judy Breedlove
 
PPTX
Putting data to work
Judy Breedlove
 
PDF
Preparing your organization for microservices
Judy Breedlove
 
PDF
Transform the internal it landscape with APIs
Judy Breedlove
 
PDF
An API-focused approach to Agile Integration
Judy Breedlove
 
PDF
The Three Pillars of Agile Integration: Connector, Container & API
Judy Breedlove
 
PDF
Microservices, containers and event driven architecture - key factors in agil...
Judy Breedlove
 
PPTX
Microservices, containers and event driven architecture - key factors in agil...
Judy Breedlove
 
PDF
Monoliths to microservices workshop
Judy Breedlove
 
PDF
Navigating Cloud Adoption: Trends that Challenge and Inspire Designers
Judy Breedlove
 
PDF
Agile Integration Workshop
Judy Breedlove
 
PDF
Agile Integration with APIs and Containers Workshop
Nicole Maselli
 
PPTX
"The Cloud Native Enterprise is Coming"
James Watters
 
PDF
Building an Integrated Supply Chain for APIs
Asanka Abeysinghe
 
PPTX
2015 cloud trend and cloud DR
bizmerce
 
PDF
Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013
asheshbadani
 
PDF
The Role of Integration in Microservice Architecture (MSA)
Asanka Abeysinghe
 
PPTX
Empowering developers and operators through Gitlab and HashiCorp
Mitchell Pronschinske
 
PDF
LIVE DEMO: Pivotal Cloud Foundry
VMware Tanzu
 
The 3 pillars of agile integration: Container, Connector and API
Judy Breedlove
 
Agile integration activation: get hands on with ap-is
Judy Breedlove
 
Putting data to work
Judy Breedlove
 
Preparing your organization for microservices
Judy Breedlove
 
Transform the internal it landscape with APIs
Judy Breedlove
 
An API-focused approach to Agile Integration
Judy Breedlove
 
The Three Pillars of Agile Integration: Connector, Container & API
Judy Breedlove
 
Microservices, containers and event driven architecture - key factors in agil...
Judy Breedlove
 
Microservices, containers and event driven architecture - key factors in agil...
Judy Breedlove
 
Monoliths to microservices workshop
Judy Breedlove
 
Navigating Cloud Adoption: Trends that Challenge and Inspire Designers
Judy Breedlove
 
Agile Integration Workshop
Judy Breedlove
 
Agile Integration with APIs and Containers Workshop
Nicole Maselli
 
"The Cloud Native Enterprise is Coming"
James Watters
 
Building an Integrated Supply Chain for APIs
Asanka Abeysinghe
 
2015 cloud trend and cloud DR
bizmerce
 
Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013
asheshbadani
 
The Role of Integration in Microservice Architecture (MSA)
Asanka Abeysinghe
 
Empowering developers and operators through Gitlab and HashiCorp
Mitchell Pronschinske
 
LIVE DEMO: Pivotal Cloud Foundry
VMware Tanzu
 

Similar to Agile integration: Decomposing the monolith (20)

PPTX
Microservices architecture
Faren faren
 
PDF
Microservices for Application Modernisation
Ajay Kumar Uppal
 
PDF
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
WSO2
 
PPTX
Microservices: A Step Towards Modernizing Healthcare Applications
CitiusTech
 
PDF
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
apidays
 
PDF
Enterprise Integration in Cloud Native Microservices Architectures
Crishantha Nanayakkara
 
PDF
Microservices Design Principles.pdf
Simform
 
PDF
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
WSO2
 
PDF
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JSFestUA
 
PPTX
Comparative Analysis of Software Architectures.pptx
ssuserecd44f
 
PPTX
DevOps-training-in-chandigarh-Join-now--
asmeerana605
 
PPTX
Do You Need A Service Mesh?
NGINX, Inc.
 
PPTX
Do I Need A Service Mesh.pptx
PINGXIONG3
 
PPTX
Microservices architecture
Luiz Fernando Signorelli
 
PDF
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Ahmed Misbah
 
PDF
Why Microservice
Kelvin Yeung
 
PPTX
Service mesh
Arnab Mitra
 
PDF
'How to build efficient backend based on microservice architecture' by Anton ...
OdessaJS Conf
 
PDF
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
riyak40
 
PPTX
Microservices
Rajesh Kumar
 
Microservices architecture
Faren faren
 
Microservices for Application Modernisation
Ajay Kumar Uppal
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
WSO2
 
Microservices: A Step Towards Modernizing Healthcare Applications
CitiusTech
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
apidays
 
Enterprise Integration in Cloud Native Microservices Architectures
Crishantha Nanayakkara
 
Microservices Design Principles.pdf
Simform
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
WSO2
 
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JSFestUA
 
Comparative Analysis of Software Architectures.pptx
ssuserecd44f
 
DevOps-training-in-chandigarh-Join-now--
asmeerana605
 
Do You Need A Service Mesh?
NGINX, Inc.
 
Do I Need A Service Mesh.pptx
PINGXIONG3
 
Microservices architecture
Luiz Fernando Signorelli
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Ahmed Misbah
 
Why Microservice
Kelvin Yeung
 
Service mesh
Arnab Mitra
 
'How to build efficient backend based on microservice architecture' by Anton ...
OdessaJS Conf
 
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
riyak40
 
Microservices
Rajesh Kumar
 
Ad

More from Judy Breedlove (11)

PDF
Evolution of integration and microservices patterns with service mesh
Judy Breedlove
 
PDF
Serverless and serverfull - where microservices compliments serverless
Judy Breedlove
 
PDF
Cloud-Native Microservices
Judy Breedlove
 
PPTX
App Mod 05: App resiliency detecting and preventing issues in distributed apps
Judy Breedlove
 
PPTX
App Mod 04: Reactive microservices with eclipse vert.x
Judy Breedlove
 
PPTX
App Mod 03: Monoliths to microservices with java ee and spring boot
Judy Breedlove
 
PPTX
App Mod 02: A developer intro to open shift
Judy Breedlove
 
PPTX
App Mod 01: Moving existing apps to the cloud
Judy Breedlove
 
PDF
Implementing Enterprise Identity and Access Management in a microservices wor...
Judy Breedlove
 
PDF
Red Hat Agile integration workshop - Atlanta
Judy Breedlove
 
PDF
Agile integration workshop Seattle
Judy Breedlove
 
Evolution of integration and microservices patterns with service mesh
Judy Breedlove
 
Serverless and serverfull - where microservices compliments serverless
Judy Breedlove
 
Cloud-Native Microservices
Judy Breedlove
 
App Mod 05: App resiliency detecting and preventing issues in distributed apps
Judy Breedlove
 
App Mod 04: Reactive microservices with eclipse vert.x
Judy Breedlove
 
App Mod 03: Monoliths to microservices with java ee and spring boot
Judy Breedlove
 
App Mod 02: A developer intro to open shift
Judy Breedlove
 
App Mod 01: Moving existing apps to the cloud
Judy Breedlove
 
Implementing Enterprise Identity and Access Management in a microservices wor...
Judy Breedlove
 
Red Hat Agile integration workshop - Atlanta
Judy Breedlove
 
Agile integration workshop Seattle
Judy Breedlove
 
Ad

Recently uploaded (20)

PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 

Agile integration: Decomposing the monolith

  • 1. AGILE INTEGRATION: Decomposing The Monolith Strategies for Resilient Microservices Runtimes Agile Integration Day Michael Costello Architect-Emerging Technology Practice (Enterprise Integration) Red Hat- Red Hat Consulting/NA
  • 3. CONTEXT: THE MONOLITH The Monolith was a good place to be... Once upon a time, all our applications would tend to run in large enterprise application servers. Large enterprise application servers would often pack features that allowed us to quickly package applications and deploy them to allow us to serve up a myriad of application needs and features such as db connection pools, EJB interfaces for local and remote procedure calls, as well as subsystems for security enforcement, advanced messaging subsystems and whatever your heart could truly desire over the years of various enterprise specs!
  • 4. CONTEXT: THE MONOLITH ...but change was slow and risk was high. Over time, our packaging of applications like this would mean: ● Our SDLC would grind to a halt as change sets to our monoliths required careful wizardry ● Lack of fault isolation would mean that one failure could cascade into total failure ● Lack of process isolation would allow processes that constituted little of our available feature set to consume disproportionate compute resources ● High Availability became nightmarish to ensure with costly outage often the result
  • 5. DECOMPOSITION FOR SPEED AND AGILITY As SOA and Microservice Architecture evolved, we decomposed the beast A group of smart people in the industry began to see the benefits of decomposing large monolithic applications so that we could: ● Adhere to SOLID principles across our service offerings - SOLID principles require us to separate interfaces, adhere to single responsibility principles and some other pattern goodies ● BRING SDLC Back- we were able to make changes in isolation and refocus on meeting stakeholder needs ● Fault and Process Isolation - as decomposition emerged, cascading fault(s) and resource starvation was mitigated ● And Along Came Containers - as opposed to our beastly vertically scaled monolith days, we were now able to deploy to compute that met our micro needs but still get all our ‘illities
  • 6. Agile Integration enables Monolith Decomposition Tenets of Agile Integration ● API first ● Policy enforcement across these sets of API’s implies resiliency ● Metrics and Monitoring ● Tactical Decomposition via single responsibility principles, interface segregation and dependency inversion ● Fuse on OpenShift provides a location transparent mechanism for service discovery and service conversation across the enterprise...leverage FTW!!! Why we decomposed in the first place
  • 7. EVOLVING DECOMPOSITION MicroServices Architecture isn’t free We have A LOT more to manage - services come with their own stacks and differing rates of change. Dependencies between services form as services are reliant on others as sources of truth, and functionality. Managing all of the moving parts involves new requirements. ● Fault Tolerance: We must design the overall system to survive the failure of an individual component at any time ● Testing Maturity: We must measure the viability of service offerings, often across invocations ● DevOps Maturity: We must manage independent pipelines and monitor a dynamic landscape of runtimes ● Network Capacity: Granular decomposition often means exponentiated growth in wire and service protocols
  • 8. MSA - CROSS CUTTING CONCERNS How can we observe and manage the whole flock of services? As our MicroServices architecture evolves, the single responsibility nature of each individual service ignores some cross cutting concerns. ● Cascading failures prevention ● Traffic management, and flow control ● Auth/Auz, and policy enforcement ● Distributed Tracing ● Log Aggregation ● Application Monitoring ● Externalized Configuration
  • 9. MICROSERVICE RESILIENCE Runtime concerns for a highly decomposed system Dependency graphs, needs for auth/auz and policy enforcement across service invocations and the need for resiliency across the cluster implies a need for approaches to address these cross cutting concerns. The following patterns are useful: ● Policy Enforcement ● Distributed Tracing ● Traffic Routing ● Flow Control Mechanisms
  • 10. SERVICE MESH Enabling a Communications Control Plane “Often used to describe the network of microservices that make up such applications and the interactions between them. As a service mesh grows in size and complexity, it can become harder to understand and manage. Its requirements can include discovery, load balancing, failure recovery, metrics, and monitoring, and often more complex operational requirements such as A/B testing, canary releases, rate limiting, access control, and end-to-end authentication” https://istio.io/docs/concepts/what-is-istio/overvhttps://istio.io/docs/concepts/wha t-is-istio/overview.htmliew.html
  • 11. Istio.io is deployed as a side car in containers leveraging the Envoy proxy to initiate a communications control plane. ● Capable of leveraging a number of wire protocols (http2, gRpc, http 1.1) ● Traffic Management - Control the flow of traffic and API calls between services ● Visibility into dependencies between services and the flow of traffic between them ● Policy Enforcement - Service Identity and Security - apply auth/auz between service calls SERVICE MESH: Istio A SideCar Pattern leveraging the Envoy Proxy
  • 13. POLICY ENFORCEMENT Request rate limiting, for example Rate limiting is used to protect upstream application servers from being overwhelmed by too many user requests at the same time. ● security purposes, for example to slow down brute‑force password‑guessing attack strategies ● help protect against DDoS attacks by limiting the incoming request rate ● prevent an upstream service from overwhelming a downstream service with unintended traffic
  • 14. ROUTE POLICY ENFORCEMENT Rate Limiting as an Application Concern The Throttler Pattern allows you to ensure that a specific endpoint does not get overloaded, or that we don't exceed an agreed SLA with some external service. The following example shows a throttling policy applied to a Camel route:
  • 15. RATE LIMIT POLICY VIA PROXY Rate Limiting as an Infrastructure Concern Delegate rate limit policy enforcement to a Service Mesh ● Abstract away the details of different policy and telemetry backend systems ● Move policy decisions out of the app layer and into configuration instead ● For example, the Mixer component of Istio provides three core features: precondition checking, quota management, and telemetry reporting
  • 16. POLICY ENFORCEMENT AT THE EDGES API Gateway as a first line of defense 3scale gives you a variety of standard options for API authentication and security, which can be used alone or in combination to issue credentials and control access: ● Standard API keys ● Application ID and key pair ● OAuth v1.0 and 2.0 3scale’s access control features let you restrict access to specific endpoints, methods, and services and apply access policy easy for groups of users. The 3scale gateway can also enforce rate limits for API usage and control traffic flow for groups of developers
  • 18. CIRCUIT BREAKING What is a Circuit Breaker? “You wrap a protected function call in a circuit breaker object, which monitors for failures. Once the failures reach a certain threshold, the circuit breaker trips, and all further calls to the circuit breaker return with an error, without the protected call being made at all. Usually you'll also want some kind of monitor alert if the circuit breaker trips.” - Martin Fowler
  • 19. CIRCUIT BREAKING MICROSERVICES Apache Camel Hystrix EIP The hystrix EIP provides integration with Netflix Hystrix to be used as circuit breaker in the Camel routes. Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.
  • 22. DISTRIBUTED TRACING Observability is key for performance analysis Container-based applications are often deployed as several components that work together as a system. A trace tells the story of a transaction as it propagates through a distributed system. So, a tracing implementation must piece together information about a transaction using data gathered from several components of a system.
  • 23. OPEN TRACING EVOLUTION A community-driven open standard for distributed tracing OpenTracing: by offering consistent, expressive, vendor-neutral APIs for popular platforms, OpenTracing makes it easy for developers to add (or switch) tracing implementation. ● http://opentracing.io ● https://zipkin.io/ ● https://www.jaegertracing.io/ ● https://github.com/apache/camel/blob/master/co mponents/camel-opentracing/src/main/docs/open tracing.adoc
  • 25. DISTRIBUTED TRACING WITH ISTIO Service Mesh simplifies application instrumentation for tracing Istio-enabled applications can be configured to collect trace spans using Zipkin or Jaeger. Istio automatically send spans, but they need some hints to tie together the entire trace. Applications need to propagate the certain HTTP headers so that when the proxies send span information to Zipkin or Jaeger, the spans can be correlated correctly into a single trace.
  • 26. ONE MORE THING: - Schedule a Discovery Session plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHatNews - OC RHUG: https://www.meetup.com/Red-Hat-Orange-County-CA/