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

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
Judy 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-is
Judy Breedlove
 
Putting data to work
Putting data to workPutting data to work
Putting data to work
Judy Breedlove
 
Preparing your organization for microservices
Preparing your organization for microservicesPreparing your organization for microservices
Preparing your organization for microservices
Judy 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 APIs
Judy 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 Integration
Judy 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 & API
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
 
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 workshop
Judy 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 Designers
Judy Breedlove
 
Agile Integration Workshop
Agile Integration WorkshopAgile Integration Workshop
Agile Integration Workshop
Judy 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, 2013
asheshbadani
 
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 HashiCorp
Mitchell Pronschinske
 
LIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud FoundryLIVE DEMO: Pivotal Cloud Foundry
LIVE DEMO: Pivotal Cloud Foundry
VMware Tanzu
 

What's hot (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 to Agile integration: Decomposing the monolith

Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Faren faren
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
Ajay 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 Management
WSO2
 
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
CitiusTech
 
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 Architectures
Crishantha Nanayakkara
 
Microservices Design Principles.pdf
Microservices Design Principles.pdfMicroservices Design Principles.pdf
Microservices Design Principles.pdf
Simform
 
[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.pptx
ssuserecd44f
 
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.pptx
PINGXIONG3
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Luiz Fernando Signorelli
 
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
Ahmed Misbah
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
Kelvin Yeung
 
Service mesh
Service meshService mesh
Service mesh
Arnab Mitra
 
'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
 
Microservices
MicroservicesMicroservices
Microservices
Rajesh Kumar
 

Similar to 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
 

More from 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 mesh
Judy 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 serverless
Judy Breedlove
 
Cloud-Native Microservices
Cloud-Native MicroservicesCloud-Native Microservices
Cloud-Native Microservices
Judy 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.x
Judy 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 boot
Judy 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 shift
Judy 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 cloud
Judy 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 - Atlanta
Judy Breedlove
 
Agile integration workshop Seattle
Agile integration workshop SeattleAgile integration workshop Seattle
Agile integration workshop Seattle
Judy Breedlove
 

More from 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
 

Recently uploaded

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 

Recently uploaded (20)

How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 

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/