SlideShare una empresa de Scribd logo
1 de 37
Delivering Microservices
in a Hybrid Environment
Andrew Phillips, XebiaLabs
Cloud Computing Expo 2015 - Santa Clara
2 Copyright 2014.
About Me
▪ Helping enterprises adopt Devops and
Continuous Delivery with XebiaLabs
▪ Lots of enterprise software development
on high-performance systems
▪ Been on both sides of the “Dev…Ops” fence
▪ Active open source contributor and committer
▪ Regular meetup, conference etc. presenter
3 Copyright 2014.
About Me
VISIBILITY
AUTOMATION
CONTROL
XebiaLabs Solutions
Release
Orchestration
Deployment
Automation
Test
Analytics
Orchestrate,
automate + view
release pipelines
Automate deployment
of complex
application releases
Analyze test results
across multiple
test tools
Connecting the dots for
Continuous Delivery
At Enterprise Scale
G l o b a l L e a d e r s D e l i v e r S o f t w a r e w i t h X e b i a L a b s
5 Copyright 2014.
Agenda
▪ Lightning Microservices intro
▪ The Challenge of Hybrid Environments
▪ Approaches to Tackling the Dependency
Problem
6 Copyright 2014.
Lightning Microservices Intro
▪ Avoid grinding to a halt with
large monolithic applications
▪ Small, independently-
deployable units
− “Independently-deployable” ≠
(functionally) independent!
▪ Good at solving one business
problem
− Vs. designed to solve one technical
problem (cf. SOA)
7 Copyright 2014.
The Challenge of Hybrid
Environments
2.5 months
3 months
Dependency
Release
2.5 months
Release
2 months
No Dependency
Release
2 months
2 months
Release
…
…
Dependency
Monoliths: few(er) components, similar release cycles
8 Copyright 2014.
Monoliths: few(er) components, similar release cycles
The Challenge of Hybrid
Environments
2.5 months
3 months
Dependency
2.5 months
Release
2 months
No Dependency
2 months
2 months
…
…
Dependency
Release
Release
Release Release
Larger systems =
big functional changes can
be made with fewer deps
May need
to wait a (relatively) short
amount of time to sync up
releases
9 Copyright 2014.
The Challenge of Hybrid
Environments
▪ Hybrid environment: orders of magnitude difference in
release cycles
▪ Even occasional dependencies can have a huge impact
2 days
1 month
6h 6h 6h
Dependency
Release
Release Release
Dependency
10 Copyright 2014.
The Challenge of Hybrid
Environments
▪ Hybrid environment: orders of magnitude difference in
release cycles
▪ Even occasional dependencies can have a huge impact
2 days
1 month
6h 6h 6h
Dependency
Release
Release Release
Dependency
11 Copyright 2014.
The Challenge of Hybrid
Environments
▪ Hybrid environment: orders of magnitude difference in
release cycles
▪ Even occasional dependencies can have a huge impact
2 days
1 month
6h 6h 6h
Dependency
Release
Release Release
Dependency
Microservice A
Monolith
Microservice B
12 Copyright 2014.
Tackling the Dependency Problem
Interface partitioning1
13 Copyright 2014.
Tackling the Dependency Problem
Interface partitioning
Service virtualization
1
2
14 Copyright 2014.
Tackling the Dependency Problem
Interface partitioning
Service virtualization
Dependency management & enforcement
1
2
3
15 Copyright 2014.
Interface partitioning
Service virtualization
Dependency management & enforcement
Feature flags
Tackling the Dependency Problem
1
2
3
4
16 Copyright 2014.
Interface Partitioning
▪ Between microservices/standalone components: depend
on APIs rather than version of the app binary
− Dependency = change in public interface = should have new API version
− App binary version may change many times without the API changing
▪ What about monolithic services that have an enormous
and/or not clearly defined interface?
v1
17 Copyright 2014.
Interface Partitioning
▪ Assigning a single version to the entire interface
(equivalently, depending on the app version) makes it hard
to localize dependencies and areas of frequent change
− Microservice A depends on the next version of monolith X…but which bit?
− Microservice B depends on version N, but we’re going to be at N+1 soon.
Has the part of the interface B talks to changed? Do we need to check for
breaking changes?
18 Copyright 2014.
Interface Partitioning
▪ Assigning a single version to the entire interface
(equivalently, depending on the app version) makes it hard
to localize dependencies and areas of frequent change
− Microservice A depends on the next version of monolith X…but which bit?
− Microservice B depends on version N, but we’re going to be at N+1 soon.
Has the part of the interface B talks to changed? Do we need to check for
breaking changes?
▪ Approach: interface partitioning
▪ Split the functionality provided by the monolith into multiple
“logical interfaces” & assign version numbers to each
▪ The next release version of the monolith may change some
logical interfaces but leave many others unchanged
19 Copyright 2014.
Interface Partitioning
▪ Defining logical interfaces also helps determine where to
break components out of the monolith
▪ …and helps you determine the scope of stubs more easily
− More on that in a bit
v3.5
v1.2
v2.4.6
20 Copyright 2014.
v3.5
v1.2
v2.4.6
Interface Partitioning
▪ Defining logical interfaces also helps determine where to
break components out of the monolith
▪ …and helps you determine the scope of stubs more easily
− More on that in a bit
One monolith version =
multiple logical interface
versions
21 Copyright 2014.
ServiceVirtualization
▪ Deploying monolithic applications
to test environments is complex,
time-consuming, expensive and
error-prone
▪ The overall application is often not
in a deployable state, even if new
feature a particular dependent
component requires has already
been completed
22 Copyright 2014.
ServiceVirtualization
▪ Approach: create stubs for the new versions of logical
interfaces other components depend on
− Stubs can be standalone or “overlaid” on top of an older version of the
monolithic application
▪ Challenge: need to understand the contract of the logical
interface
− Benefit: have a well-defined contract for the logical interface!
− If the interface’s intended behavior is not known, commercial Service
Virtualization tools can help
▪ Ideally, the monolith team creates and maintains the stub
− Additional work, but stubs should be simple and easy to create and update
as the logical interface being stubbed should be a small subset of the
overall interface of the monolithic app
23 Copyright 2014.
ServiceVirtualization
v3.5
v2.4.6
v3.6
v2.5.0
24 Copyright 2014.
v3.5
v2.4.6
v3.6
v2.5.0
ServiceVirtualization
Standalone stub
Overlay –
delegates to an
older version of
the monolith
25 Copyright 2014.
Dependency Mgmt & Enforcement
▪ Want to be able to a) specify, b) enforce and potentially c)
fix dependencies at deployment time
− Nothing terribly new here (we’ve had this with tools like Yum/RPM/… for
ages
− Just not something that the newer microservice delivery technology
supports well
− Also not in a way that supports cross-machine dependencies
26 Copyright 2014.
Dependency Mgmt & Enforcement
▪ Want to be able to a) specify, b) enforce and potentially c)
fix dependencies at deployment time
− Nothing terribly new here (we’ve had this with tools like Yum/RPM/… for
ages
− Just not something that the newer microservice delivery technology
supports well
− Also not in a way that supports cross-machine dependencies
▪ Want to be able to specify local dependencies and use
automation to compute the transitive closure
− For real-world service landscapes, maintaining a central “global”
description of the entire system is not feasible
− “Know your neighbors”
27 Copyright 2014.
Dependency Mgmt & Enforcement
Want to be able to
declare dependencies
locally and ahead of time
28 Copyright 2014.
Dependency Mgmt & Enforcement
Want dependency
violations to be detected
(and fixed?) automatically
29 Copyright 2014.
Feature Flags
▪ Solving the dependency problem in integration testing
environments is one thing, but really we want to solve the
problem for production, too
− Use new functionality that isn’t dependent on the update to the monolith
− Stress test existing functionality in the only environment that’s genuinely
realistic
▪ Approach: Feature Flags
▪ Add configurable switches to your
microservices/standalone components to enable use of the
new monolith feature(s) to be toggled
30 Copyright 2014.
Feature Flags
▪ Can “dark launch”/preview the new feature to a selected
audience, even if not fully functional
▪ Can use (potentially more advanced) stubs to stress test the
new functionality in production
▪ Reduces the complexity of the eventual monolith release since
all dependent components have already been deployed
▪ Makes rollback much easier: “just” need to revert to the
previous version of the monolith and disable the Feature Flags
▪ Allows for broken new functionality in the monolith to be
hidden by disabling appropriate Feature Flags
31 Copyright 2014.
Feature Flags
UseFeatureA: off
UseFeatureB: off
UseFeatureA: on
UseFeatureB: on
BEFORE AFTER
v3.6
v2.5.0
v3.5
v2.4.6
32 Copyright 2014.
Feature Flags
UseFeatureA: off
UseFeatureB: off
UseFeatureA: on
UseFeatureB: on
BEFORE AFTER
v3.6
v2.5.0
v3.5
v2.4.6
No need to deploy
a new version of
the microservice
33 Copyright 2014.
Resources
▪ Microservices
http://martinfowler.com/articles/microservices.html
▪ Exploring the Uncharted Territory of Microservices
http://www.infoq.com/news/2015/03/benefits-microservices
https://www.youtube.com/watch?v=MRa21icSIQk
▪ Randy Shoup and Andrew Phillips Q&A on Microservices
http://www.infoq.com/articles/question-answer-microservices
▪ 8 Questions You Need to Ask About Microservices, Containers &
Docker in 2015
http://blog.xebialabs.com/2014/12/31/8-questions-need-ask-
microservices-containers-docker-2015/
34 Copyright 2014.
Resources
https://xebialabs.com/resources/whitepapers/the-it-managers-guide-to-continuous-delivery/
Questions?
36 Copyright 2014.
Learn more
Learn more about XebiaLabs:
xebialabs.com/products
xebialabs.com/solutions/continuous-delivery
Stay informed:
blog.xebialabs.com
@XebiaLabs
youtube.com/xebialabs
Thank You!

Más contenido relacionado

La actualidad más candente

[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
Ambassador Labs
 

La actualidad más candente (20)

Learn What’s New With CA 1® - Take Advantage of the Enhancements You Requested
Learn What’s New With CA 1® - Take Advantage of the Enhancements You RequestedLearn What’s New With CA 1® - Take Advantage of the Enhancements You Requested
Learn What’s New With CA 1® - Take Advantage of the Enhancements You Requested
 
Provisioning & DevOps at Amis25
Provisioning & DevOps at Amis25Provisioning & DevOps at Amis25
Provisioning & DevOps at Amis25
 
Mainframe Software Management Made Easier
Mainframe Software Management Made EasierMainframe Software Management Made Easier
Mainframe Software Management Made Easier
 
Chapter2
Chapter2Chapter2
Chapter2
 
Getting Started with SOA using SwitchYard
Getting Started with SOA using SwitchYardGetting Started with SOA using SwitchYard
Getting Started with SOA using SwitchYard
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013
 
Application Lifecycle Management for Multivalue Customers
Application Lifecycle Management for Multivalue CustomersApplication Lifecycle Management for Multivalue Customers
Application Lifecycle Management for Multivalue Customers
 
Implementing Continuous Integration to Improve Software Quality
Implementing Continuous Integration to Improve Software QualityImplementing Continuous Integration to Improve Software Quality
Implementing Continuous Integration to Improve Software Quality
 
Version Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version ControlVersion Uncontrolled! How to Manage Your Version Control
Version Uncontrolled! How to Manage Your Version Control
 
Test driven cloud development using Oracle SOA CS and Oracle Developer CS
Test driven cloud development using Oracle SOA CS and Oracle Developer CSTest driven cloud development using Oracle SOA CS and Oracle Developer CS
Test driven cloud development using Oracle SOA CS and Oracle Developer CS
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
 
Removing Barriers Between Dev and Ops
Removing Barriers Between Dev and OpsRemoving Barriers Between Dev and Ops
Removing Barriers Between Dev and Ops
 
Managing the SSL Process
Managing the SSL ProcessManaging the SSL Process
Managing the SSL Process
 
Desjardins Group Leverages CA Workload Automation as It Begins Its DevOps Jou...
Desjardins Group Leverages CA Workload Automation as It Begins Its DevOps Jou...Desjardins Group Leverages CA Workload Automation as It Begins Its DevOps Jou...
Desjardins Group Leverages CA Workload Automation as It Begins Its DevOps Jou...
 
Velocity 2014 Tool Chain Choices
Velocity 2014 Tool Chain ChoicesVelocity 2014 Tool Chain Choices
Velocity 2014 Tool Chain Choices
 
Ansible
AnsibleAnsible
Ansible
 
Node.js Tools Ecosystem
Node.js Tools EcosystemNode.js Tools Ecosystem
Node.js Tools Ecosystem
 
Devops maturity model
Devops maturity modelDevops maturity model
Devops maturity model
 
Predicting When Your Applications Will Go Off the Rails! Managing DB2 Appli...
Predicting When Your Applications Will Go Off the Rails!  Managing DB2 Appli...Predicting When Your Applications Will Go Off the Rails!  Managing DB2 Appli...
Predicting When Your Applications Will Go Off the Rails! Managing DB2 Appli...
 
Building Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NETBuilding Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NET
 

Similar a Delivering Microservices in a Hybrid Environment

Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
VMware Tanzu
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Matt Stine
 

Similar a Delivering Microservices in a Hybrid Environment (20)

Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic RelationshipCloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
Cloud Foundry and Microservices: A Mutualistic Symbiotic Relationship
 
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
Keynote: Architecting for Continuous Delivery (Pivotal Cloud Platform Roadshow)
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and Beyond
 
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
Automated Provisioning, Management & Cost Control for Kubernetes Clusters
Automated Provisioning, Management & Cost Control for Kubernetes ClustersAutomated Provisioning, Management & Cost Control for Kubernetes Clusters
Automated Provisioning, Management & Cost Control for Kubernetes Clusters
 
Introduction to CloudHub 2.0
Introduction to CloudHub 2.0Introduction to CloudHub 2.0
Introduction to CloudHub 2.0
 
Virtualising the BSS Stack
Virtualising the BSS StackVirtualising the BSS Stack
Virtualising the BSS Stack
 
Enterprise DevOps in the Age of Docker & Microservices
Enterprise DevOps in the Age of Docker & MicroservicesEnterprise DevOps in the Age of Docker & Microservices
Enterprise DevOps in the Age of Docker & Microservices
 
Software application architecture
Software application architectureSoftware application architecture
Software application architecture
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Microservices training
Microservices trainingMicroservices training
Microservices training
 
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlowCloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
Cloud Expo New York: OpenFlow Is SDN Yet SDN Is Not Only OpenFlow
 
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
 
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
 

Más de XebiaLabs

Más de XebiaLabs (20)

Metrics That Matter: How to Measure Digital Transformation Success
Metrics That Matter: How to Measure Digital Transformation SuccessMetrics That Matter: How to Measure Digital Transformation Success
Metrics That Matter: How to Measure Digital Transformation Success
 
Infrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale OrganizationsInfrastructure as Code in Large Scale Organizations
Infrastructure as Code in Large Scale Organizations
 
Accelerate Your Digital Transformation: How to Achieve Business Agility with ...
Accelerate Your Digital Transformation: How to Achieve Business Agility with ...Accelerate Your Digital Transformation: How to Achieve Business Agility with ...
Accelerate Your Digital Transformation: How to Achieve Business Agility with ...
 
Don't Let Technology Slow Down Your Digital Transformation
Don't Let Technology Slow Down Your Digital Transformation Don't Let Technology Slow Down Your Digital Transformation
Don't Let Technology Slow Down Your Digital Transformation
 
Deliver More Customer Value with Value Stream Management
Deliver More Customer Value with Value Stream ManagementDeliver More Customer Value with Value Stream Management
Deliver More Customer Value with Value Stream Management
 
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
Building a Software Chain of Custody: A Guide for CTOs, CIOs, and Enterprise ...
 
XebiaLabs: DevOps 2020 with Gene Kim
XebiaLabs: DevOps 2020 with Gene KimXebiaLabs: DevOps 2020 with Gene Kim
XebiaLabs: DevOps 2020 with Gene Kim
 
From Chaos to Compliance: The New Digital Governance for DevOps
From Chaos to Compliance: The New Digital Governance for DevOpsFrom Chaos to Compliance: The New Digital Governance for DevOps
From Chaos to Compliance: The New Digital Governance for DevOps
 
Supercharge Your Digital Transformation by Establishing a DevOps Platform
Supercharge Your Digital Transformation by Establishing a DevOps PlatformSupercharge Your Digital Transformation by Establishing a DevOps Platform
Supercharge Your Digital Transformation by Establishing a DevOps Platform
 
Build a Bridge Between CI/CD and ITSM w/ Quint Technology
Build a Bridge Between CI/CD and ITSM w/ Quint TechnologyBuild a Bridge Between CI/CD and ITSM w/ Quint Technology
Build a Bridge Between CI/CD and ITSM w/ Quint Technology
 
Make Software Audit Nightmares a Thing of the Past
Make Software Audit Nightmares a Thing of the PastMake Software Audit Nightmares a Thing of the Past
Make Software Audit Nightmares a Thing of the Past
 
Is Your DevOps Ready for the Cloud?
Is Your DevOps Ready for the Cloud?Is Your DevOps Ready for the Cloud?
Is Your DevOps Ready for the Cloud?
 
Compliance und Sicherheit im Rahmen von Software-Deployments
Compliance und Sicherheit im Rahmen von Software-DeploymentsCompliance und Sicherheit im Rahmen von Software-Deployments
Compliance und Sicherheit im Rahmen von Software-Deployments
 
All Roads Lead to DevOps
All Roads Lead to DevOpsAll Roads Lead to DevOps
All Roads Lead to DevOps
 
Reaching Cloud Utopia: How to Create a Single Pipeline for Hybrid Deployments
Reaching Cloud Utopia: How to Create a Single Pipeline for Hybrid DeploymentsReaching Cloud Utopia: How to Create a Single Pipeline for Hybrid Deployments
Reaching Cloud Utopia: How to Create a Single Pipeline for Hybrid Deployments
 
Avoid Troubled Waters: Building a Bridge Between ServiceNow and CI/CD
Avoid Troubled Waters: Building a Bridge Between ServiceNow and CI/CDAvoid Troubled Waters: Building a Bridge Between ServiceNow and CI/CD
Avoid Troubled Waters: Building a Bridge Between ServiceNow and CI/CD
 
Shift Left and Automate: How to Bake Compliance and Security into Your Softwa...
Shift Left and Automate: How to Bake Compliance and Security into Your Softwa...Shift Left and Automate: How to Bake Compliance and Security into Your Softwa...
Shift Left and Automate: How to Bake Compliance and Security into Your Softwa...
 
2019 DevOps Predictions
2019 DevOps Predictions2019 DevOps Predictions
2019 DevOps Predictions
 
Building a Bridge Between CI/CD and ITSM
Building a Bridge Between CI/CD and ITSMBuilding a Bridge Between CI/CD and ITSM
Building a Bridge Between CI/CD and ITSM
 
DevOps Hits Adolescence – what’s next?
DevOps Hits Adolescence – what’s next?DevOps Hits Adolescence – what’s next?
DevOps Hits Adolescence – what’s next?
 

Último

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Último (20)

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 

Delivering Microservices in a Hybrid Environment

  • 1. Delivering Microservices in a Hybrid Environment Andrew Phillips, XebiaLabs Cloud Computing Expo 2015 - Santa Clara
  • 2. 2 Copyright 2014. About Me ▪ Helping enterprises adopt Devops and Continuous Delivery with XebiaLabs ▪ Lots of enterprise software development on high-performance systems ▪ Been on both sides of the “Dev…Ops” fence ▪ Active open source contributor and committer ▪ Regular meetup, conference etc. presenter
  • 4. VISIBILITY AUTOMATION CONTROL XebiaLabs Solutions Release Orchestration Deployment Automation Test Analytics Orchestrate, automate + view release pipelines Automate deployment of complex application releases Analyze test results across multiple test tools Connecting the dots for Continuous Delivery At Enterprise Scale G l o b a l L e a d e r s D e l i v e r S o f t w a r e w i t h X e b i a L a b s
  • 5. 5 Copyright 2014. Agenda ▪ Lightning Microservices intro ▪ The Challenge of Hybrid Environments ▪ Approaches to Tackling the Dependency Problem
  • 6. 6 Copyright 2014. Lightning Microservices Intro ▪ Avoid grinding to a halt with large monolithic applications ▪ Small, independently- deployable units − “Independently-deployable” ≠ (functionally) independent! ▪ Good at solving one business problem − Vs. designed to solve one technical problem (cf. SOA)
  • 7. 7 Copyright 2014. The Challenge of Hybrid Environments 2.5 months 3 months Dependency Release 2.5 months Release 2 months No Dependency Release 2 months 2 months Release … … Dependency Monoliths: few(er) components, similar release cycles
  • 8. 8 Copyright 2014. Monoliths: few(er) components, similar release cycles The Challenge of Hybrid Environments 2.5 months 3 months Dependency 2.5 months Release 2 months No Dependency 2 months 2 months … … Dependency Release Release Release Release Larger systems = big functional changes can be made with fewer deps May need to wait a (relatively) short amount of time to sync up releases
  • 9. 9 Copyright 2014. The Challenge of Hybrid Environments ▪ Hybrid environment: orders of magnitude difference in release cycles ▪ Even occasional dependencies can have a huge impact 2 days 1 month 6h 6h 6h Dependency Release Release Release Dependency
  • 10. 10 Copyright 2014. The Challenge of Hybrid Environments ▪ Hybrid environment: orders of magnitude difference in release cycles ▪ Even occasional dependencies can have a huge impact 2 days 1 month 6h 6h 6h Dependency Release Release Release Dependency
  • 11. 11 Copyright 2014. The Challenge of Hybrid Environments ▪ Hybrid environment: orders of magnitude difference in release cycles ▪ Even occasional dependencies can have a huge impact 2 days 1 month 6h 6h 6h Dependency Release Release Release Dependency Microservice A Monolith Microservice B
  • 12. 12 Copyright 2014. Tackling the Dependency Problem Interface partitioning1
  • 13. 13 Copyright 2014. Tackling the Dependency Problem Interface partitioning Service virtualization 1 2
  • 14. 14 Copyright 2014. Tackling the Dependency Problem Interface partitioning Service virtualization Dependency management & enforcement 1 2 3
  • 15. 15 Copyright 2014. Interface partitioning Service virtualization Dependency management & enforcement Feature flags Tackling the Dependency Problem 1 2 3 4
  • 16. 16 Copyright 2014. Interface Partitioning ▪ Between microservices/standalone components: depend on APIs rather than version of the app binary − Dependency = change in public interface = should have new API version − App binary version may change many times without the API changing ▪ What about monolithic services that have an enormous and/or not clearly defined interface? v1
  • 17. 17 Copyright 2014. Interface Partitioning ▪ Assigning a single version to the entire interface (equivalently, depending on the app version) makes it hard to localize dependencies and areas of frequent change − Microservice A depends on the next version of monolith X…but which bit? − Microservice B depends on version N, but we’re going to be at N+1 soon. Has the part of the interface B talks to changed? Do we need to check for breaking changes?
  • 18. 18 Copyright 2014. Interface Partitioning ▪ Assigning a single version to the entire interface (equivalently, depending on the app version) makes it hard to localize dependencies and areas of frequent change − Microservice A depends on the next version of monolith X…but which bit? − Microservice B depends on version N, but we’re going to be at N+1 soon. Has the part of the interface B talks to changed? Do we need to check for breaking changes? ▪ Approach: interface partitioning ▪ Split the functionality provided by the monolith into multiple “logical interfaces” & assign version numbers to each ▪ The next release version of the monolith may change some logical interfaces but leave many others unchanged
  • 19. 19 Copyright 2014. Interface Partitioning ▪ Defining logical interfaces also helps determine where to break components out of the monolith ▪ …and helps you determine the scope of stubs more easily − More on that in a bit v3.5 v1.2 v2.4.6
  • 20. 20 Copyright 2014. v3.5 v1.2 v2.4.6 Interface Partitioning ▪ Defining logical interfaces also helps determine where to break components out of the monolith ▪ …and helps you determine the scope of stubs more easily − More on that in a bit One monolith version = multiple logical interface versions
  • 21. 21 Copyright 2014. ServiceVirtualization ▪ Deploying monolithic applications to test environments is complex, time-consuming, expensive and error-prone ▪ The overall application is often not in a deployable state, even if new feature a particular dependent component requires has already been completed
  • 22. 22 Copyright 2014. ServiceVirtualization ▪ Approach: create stubs for the new versions of logical interfaces other components depend on − Stubs can be standalone or “overlaid” on top of an older version of the monolithic application ▪ Challenge: need to understand the contract of the logical interface − Benefit: have a well-defined contract for the logical interface! − If the interface’s intended behavior is not known, commercial Service Virtualization tools can help ▪ Ideally, the monolith team creates and maintains the stub − Additional work, but stubs should be simple and easy to create and update as the logical interface being stubbed should be a small subset of the overall interface of the monolithic app
  • 24. 24 Copyright 2014. v3.5 v2.4.6 v3.6 v2.5.0 ServiceVirtualization Standalone stub Overlay – delegates to an older version of the monolith
  • 25. 25 Copyright 2014. Dependency Mgmt & Enforcement ▪ Want to be able to a) specify, b) enforce and potentially c) fix dependencies at deployment time − Nothing terribly new here (we’ve had this with tools like Yum/RPM/… for ages − Just not something that the newer microservice delivery technology supports well − Also not in a way that supports cross-machine dependencies
  • 26. 26 Copyright 2014. Dependency Mgmt & Enforcement ▪ Want to be able to a) specify, b) enforce and potentially c) fix dependencies at deployment time − Nothing terribly new here (we’ve had this with tools like Yum/RPM/… for ages − Just not something that the newer microservice delivery technology supports well − Also not in a way that supports cross-machine dependencies ▪ Want to be able to specify local dependencies and use automation to compute the transitive closure − For real-world service landscapes, maintaining a central “global” description of the entire system is not feasible − “Know your neighbors”
  • 27. 27 Copyright 2014. Dependency Mgmt & Enforcement Want to be able to declare dependencies locally and ahead of time
  • 28. 28 Copyright 2014. Dependency Mgmt & Enforcement Want dependency violations to be detected (and fixed?) automatically
  • 29. 29 Copyright 2014. Feature Flags ▪ Solving the dependency problem in integration testing environments is one thing, but really we want to solve the problem for production, too − Use new functionality that isn’t dependent on the update to the monolith − Stress test existing functionality in the only environment that’s genuinely realistic ▪ Approach: Feature Flags ▪ Add configurable switches to your microservices/standalone components to enable use of the new monolith feature(s) to be toggled
  • 30. 30 Copyright 2014. Feature Flags ▪ Can “dark launch”/preview the new feature to a selected audience, even if not fully functional ▪ Can use (potentially more advanced) stubs to stress test the new functionality in production ▪ Reduces the complexity of the eventual monolith release since all dependent components have already been deployed ▪ Makes rollback much easier: “just” need to revert to the previous version of the monolith and disable the Feature Flags ▪ Allows for broken new functionality in the monolith to be hidden by disabling appropriate Feature Flags
  • 31. 31 Copyright 2014. Feature Flags UseFeatureA: off UseFeatureB: off UseFeatureA: on UseFeatureB: on BEFORE AFTER v3.6 v2.5.0 v3.5 v2.4.6
  • 32. 32 Copyright 2014. Feature Flags UseFeatureA: off UseFeatureB: off UseFeatureA: on UseFeatureB: on BEFORE AFTER v3.6 v2.5.0 v3.5 v2.4.6 No need to deploy a new version of the microservice
  • 33. 33 Copyright 2014. Resources ▪ Microservices http://martinfowler.com/articles/microservices.html ▪ Exploring the Uncharted Territory of Microservices http://www.infoq.com/news/2015/03/benefits-microservices https://www.youtube.com/watch?v=MRa21icSIQk ▪ Randy Shoup and Andrew Phillips Q&A on Microservices http://www.infoq.com/articles/question-answer-microservices ▪ 8 Questions You Need to Ask About Microservices, Containers & Docker in 2015 http://blog.xebialabs.com/2014/12/31/8-questions-need-ask- microservices-containers-docker-2015/
  • 36. 36 Copyright 2014. Learn more Learn more about XebiaLabs: xebialabs.com/products xebialabs.com/solutions/continuous-delivery Stay informed: blog.xebialabs.com @XebiaLabs youtube.com/xebialabs

Notas del editor

  1. @Heather: please align/update. New icons for blog/Twitter/YouTube. Vimeo instead of YouTube today..?