SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
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/

Más contenido relacionado

La actualidad más candente

The 3 pillars of agile integration: Container, Connector and API
The 3 pillars of agile integration:  Container, Connector and APIThe 3 pillars of agile integration:  Container, Connector and API
The 3 pillars of agile integration: Container, Connector and APIJudy Breedlove
 
Agile integration activation: get hands on with ap-is
Agile integration activation: get hands on with ap-isAgile integration activation: get hands on with ap-is
Agile integration activation: get hands on with ap-isJudy Breedlove
 
Preparing your organization for microservices
Preparing your organization for microservicesPreparing your organization for microservices
Preparing your organization for microservicesJudy Breedlove
 
Transform the internal it landscape with APIs
Transform the internal it landscape with APIsTransform the internal it landscape with APIs
Transform the internal it landscape with APIsJudy Breedlove
 
An API-focused approach to Agile Integration
An API-focused approach to Agile IntegrationAn API-focused approach to Agile Integration
An API-focused approach to Agile IntegrationJudy Breedlove
 
The Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & APIThe Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & APIJudy Breedlove
 
Microservices, containers and event driven architecture - key factors in agil...
Microservices, containers and event driven architecture - key factors in agil...Microservices, containers and event driven architecture - key factors in agil...
Microservices, containers and event driven architecture - key factors in agil...Judy Breedlove
 
Microservices, containers and event driven architecture - key factors in agil...
Microservices, containers and event driven architecture - key factors in agil...Microservices, containers and event driven architecture - key factors in agil...
Microservices, containers and event driven architecture - key factors in agil...Judy Breedlove
 
Monoliths to microservices workshop
Monoliths to microservices workshopMonoliths to microservices workshop
Monoliths to microservices workshopJudy Breedlove
 
Navigating Cloud Adoption: Trends that Challenge and Inspire Designers
Navigating Cloud Adoption:  Trends that Challenge and Inspire DesignersNavigating Cloud Adoption:  Trends that Challenge and Inspire Designers
Navigating Cloud Adoption: Trends that Challenge and Inspire DesignersJudy Breedlove
 
Agile Integration Workshop
Agile Integration WorkshopAgile Integration Workshop
Agile Integration WorkshopJudy Breedlove
 
Agile Integration with APIs and Containers Workshop
Agile Integration with APIs and Containers Workshop Agile Integration with APIs and Containers Workshop
Agile Integration with APIs and Containers Workshop Nicole Maselli
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" James Watters
 
Building an Integrated Supply Chain for APIs
Building an Integrated Supply Chain for APIs Building an Integrated Supply Chain for APIs
Building an Integrated Supply Chain for APIs Asanka Abeysinghe
 
2015 cloud trend and cloud DR
2015 cloud trend and cloud DR2015 cloud trend and cloud DR
2015 cloud trend and cloud DRbizmerce
 
Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013
Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013
Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013asheshbadani
 
The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)Asanka Abeysinghe
 
Empowering developers and operators through Gitlab and HashiCorp
Empowering developers and operators through Gitlab and HashiCorpEmpowering developers and operators through Gitlab and HashiCorp
Empowering developers and operators through Gitlab and HashiCorpMitchell Pronschinske
 
LIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud FoundryLIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud FoundryVMware Tanzu
 

La actualidad más candente (20)

The 3 pillars of agile integration: Container, Connector and API
The 3 pillars of agile integration:  Container, Connector and APIThe 3 pillars of agile integration:  Container, Connector and API
The 3 pillars of agile integration: Container, Connector and API
 
Agile integration activation: get hands on with ap-is
Agile integration activation: get hands on with ap-isAgile integration activation: get hands on with ap-is
Agile integration activation: get hands on with ap-is
 
Putting data to work
Putting data to workPutting data to work
Putting data to work
 
Preparing your organization for microservices
Preparing your organization for microservicesPreparing your organization for microservices
Preparing your organization for microservices
 
Transform the internal it landscape with APIs
Transform the internal it landscape with APIsTransform the internal it landscape with APIs
Transform the internal it landscape with APIs
 
An API-focused approach to Agile Integration
An API-focused approach to Agile IntegrationAn API-focused approach to Agile Integration
An API-focused approach to Agile Integration
 
The Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & APIThe Three Pillars of Agile Integration: Connector, Container & API
The Three Pillars of Agile Integration: Connector, Container & API
 
Microservices, containers and event driven architecture - key factors in agil...
Microservices, containers and event driven architecture - key factors in agil...Microservices, containers and event driven architecture - key factors in agil...
Microservices, containers and event driven architecture - key factors in agil...
 
Microservices, containers and event driven architecture - key factors in agil...
Microservices, containers and event driven architecture - key factors in agil...Microservices, containers and event driven architecture - key factors in agil...
Microservices, containers and event driven architecture - key factors in agil...
 
Monoliths to microservices workshop
Monoliths to microservices workshopMonoliths to microservices workshop
Monoliths to microservices workshop
 
Navigating Cloud Adoption: Trends that Challenge and Inspire Designers
Navigating Cloud Adoption:  Trends that Challenge and Inspire DesignersNavigating Cloud Adoption:  Trends that Challenge and Inspire Designers
Navigating Cloud Adoption: Trends that Challenge and Inspire Designers
 
Agile Integration Workshop
Agile Integration WorkshopAgile Integration Workshop
Agile Integration Workshop
 
Agile Integration with APIs and Containers Workshop
Agile Integration with APIs and Containers Workshop Agile Integration with APIs and Containers Workshop
Agile Integration with APIs and Containers Workshop
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming"
 
Building an Integrated Supply Chain for APIs
Building an Integrated Supply Chain for APIs Building an Integrated Supply Chain for APIs
Building an Integrated Supply Chain for APIs
 
2015 cloud trend and cloud DR
2015 cloud trend and cloud DR2015 cloud trend and cloud DR
2015 cloud trend and cloud DR
 
Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013
Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013
Red Hat OpenShift Enterprise 2 Launch Webcast Slides Dec 3, 2013
 
The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)The Role of Integration in Microservice Architecture (MSA)
The Role of Integration in Microservice Architecture (MSA)
 
Empowering developers and operators through Gitlab and HashiCorp
Empowering developers and operators through Gitlab and HashiCorpEmpowering developers and operators through Gitlab and HashiCorp
Empowering developers and operators through Gitlab and HashiCorp
 
LIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud FoundryLIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud Foundry
 

Similar a Agile integration: Decomposing the monolith

Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureFaren faren
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application ModernisationAjay Kumar Uppal
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API ManagementWSO2
 
Microservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsMicroservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsCitiusTech
 
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
 
Enterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices ArchitecturesEnterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices ArchitecturesCrishantha Nanayakkara
 
Microservices Design Principles.pdf
Microservices Design Principles.pdfMicroservices Design Principles.pdf
Microservices Design Principles.pdfSimform
 
[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
 
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...JSFestUA
 
Comparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxComparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxssuserecd44f
 
DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--asmeerana605
 
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
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Ahmed Misbah
 
'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
 
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...riyak40
 

Similar a Agile integration: Decomposing the monolith (20)

Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
 
Microservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare ApplicationsMicroservices: A Step Towards Modernizing Healthcare Applications
Microservices: A Step Towards Modernizing Healthcare Applications
 
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...
 
Enterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices ArchitecturesEnterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices Architectures
 
Microservices Design Principles.pdf
Microservices Design Principles.pdfMicroservices Design Principles.pdf
Microservices Design Principles.pdf
 
[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 ...
 
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
 
Comparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptxComparative Analysis of Software Architectures.pptx
Comparative Analysis of Software Architectures.pptx
 
DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--
 
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
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Service mesh
Service meshService mesh
Service mesh
 
'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 ...
 
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
SaaS Application Scalability: Best Practices from Architecture to Cloud Infra...
 
Microservices
MicroservicesMicroservices
Microservices
 

Más de Judy Breedlove

Evolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service meshEvolution of integration and microservices patterns with service mesh
Evolution of integration and microservices patterns with service meshJudy Breedlove
 
Serverless and serverfull - where microservices compliments serverless
Serverless and serverfull - where microservices compliments serverlessServerless and serverfull - where microservices compliments serverless
Serverless and serverfull - where microservices compliments serverlessJudy Breedlove
 
Cloud-Native Microservices
Cloud-Native MicroservicesCloud-Native Microservices
Cloud-Native MicroservicesJudy Breedlove
 
App Mod 05: App resiliency detecting and preventing issues in distributed apps
App Mod 05: App resiliency detecting and preventing issues in distributed apps App Mod 05: App resiliency detecting and preventing issues in distributed apps
App Mod 05: App resiliency detecting and preventing issues in distributed apps Judy Breedlove
 
App Mod 04: Reactive microservices with eclipse vert.x
App Mod 04: Reactive microservices with eclipse vert.xApp Mod 04: Reactive microservices with eclipse vert.x
App Mod 04: Reactive microservices with eclipse vert.xJudy Breedlove
 
App Mod 03: Monoliths to microservices with java ee and spring boot
App Mod 03: Monoliths to microservices with java ee and spring bootApp Mod 03: Monoliths to microservices with java ee and spring boot
App Mod 03: Monoliths to microservices with java ee and spring bootJudy Breedlove
 
App Mod 02: A developer intro to open shift
App Mod 02: A developer intro to open shiftApp Mod 02: A developer intro to open shift
App Mod 02: A developer intro to open shiftJudy Breedlove
 
App Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloudApp Mod 01: Moving existing apps to the cloud
App Mod 01: Moving existing apps to the cloudJudy Breedlove
 
Implementing Enterprise Identity and Access Management in a microservices wor...
Implementing Enterprise Identity and Access Management in a microservices wor...Implementing Enterprise Identity and Access Management in a microservices wor...
Implementing Enterprise Identity and Access Management in a microservices wor...Judy Breedlove
 
Red Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaRed Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaJudy Breedlove
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop SeattleJudy Breedlove
 

Más de Judy Breedlove (11)

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

Último

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Último (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

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/