SlideShare uma empresa 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!

Mais conteúdo relacionado

Mais procurados

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 RequestedCA Technologies
 
Mainframe Software Management Made Easier
Mainframe Software Management Made EasierMainframe Software Management Made Easier
Mainframe Software Management Made EasierCA Technologies
 
Getting Started with SOA using SwitchYard
Getting Started with SOA using SwitchYardGetting Started with SOA using SwitchYard
Getting Started with SOA using SwitchYardLuan Cestari
 
DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013DevOps / Agile Tools Seminar 2013
DevOps / Agile Tools Seminar 2013Ethan Ram
 
Application Lifecycle Management for Multivalue Customers
Application Lifecycle Management for Multivalue CustomersApplication Lifecycle Management for Multivalue Customers
Application Lifecycle Management for Multivalue CustomersRocket Software
 
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 QualityRocket Software
 
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 ControlRevelation Technologies
 
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 CSSven Bernhardt
 
[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 LiAmbassador Labs
 
Removing Barriers Between Dev and Ops
Removing Barriers Between Dev and OpsRemoving Barriers Between Dev and Ops
Removing Barriers Between Dev and OpsVMware Tanzu
 
Managing the SSL Process
Managing the SSL ProcessManaging the SSL Process
Managing the SSL ProcessRocket Software
 
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...CA Technologies
 
Velocity 2014 Tool Chain Choices
Velocity 2014 Tool Chain ChoicesVelocity 2014 Tool Chain Choices
Velocity 2014 Tool Chain ChoicesMark Sigler
 
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...CA Technologies
 
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 .NETRocket Software
 

Mais procurados (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
 

Semelhante 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 RelationshipVMware 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 RelationshipMatt Stine
 
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)VMware Tanzu
 
Diving Into Docker
Diving Into Docker Diving Into Docker
Diving Into Docker XebiaLabs
 
To Microservices and Beyond
To Microservices and BeyondTo Microservices and Beyond
To Microservices and BeyondSimon Elisha
 
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...C4Media
 
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 ClustersWeaveworks
 
Introduction to CloudHub 2.0
Introduction to CloudHub 2.0Introduction to CloudHub 2.0
Introduction to CloudHub 2.0NeerajKumar1965
 
Virtualising the BSS Stack
Virtualising the BSS StackVirtualising the BSS Stack
Virtualising the BSS StackOpenet
 
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 & MicroservicesXebiaLabs
 
Software application architecture
Software application architectureSoftware application architecture
Software application architectureanwitat
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureKelly Goetsch
 
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 2016Stormy Peters
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
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 OpenFlowCohesive Networks
 
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 3Lari Hotari
 
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...Jitendra Bafna
 

Semelhante 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...
 

Mais de XebiaLabs

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 SuccessXebiaLabs
 
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 OrganizationsXebiaLabs
 
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 ...XebiaLabs
 
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 XebiaLabs
 
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 ManagementXebiaLabs
 
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
 
XebiaLabs: DevOps 2020 with Gene Kim
XebiaLabs: DevOps 2020 with Gene KimXebiaLabs: DevOps 2020 with Gene Kim
XebiaLabs: DevOps 2020 with Gene KimXebiaLabs
 
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 DevOpsXebiaLabs
 
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 PlatformXebiaLabs
 
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 TechnologyXebiaLabs
 
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 PastXebiaLabs
 
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?XebiaLabs
 
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-DeploymentsXebiaLabs
 
All Roads Lead to DevOps
All Roads Lead to DevOpsAll Roads Lead to DevOps
All Roads Lead to DevOpsXebiaLabs
 
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 DeploymentsXebiaLabs
 
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/CDXebiaLabs
 
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...XebiaLabs
 
2019 DevOps Predictions
2019 DevOps Predictions2019 DevOps Predictions
2019 DevOps PredictionsXebiaLabs
 
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 ITSMXebiaLabs
 
DevOps Hits Adolescence – what’s next?
DevOps Hits Adolescence – what’s next?DevOps Hits Adolescence – what’s next?
DevOps Hits Adolescence – what’s next?XebiaLabs
 

Mais 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

Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 

Último (20)

Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 

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 do Editor

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