106
Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen Director of API Architecture

Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

  • Upload
    others

  • View
    5

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

Microservices Migration Roadmap

August 14, 2017

@mamundMike AmundsenDirector of API Architecture

Page 2: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Page 3: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

A Look Ahead● Unlocking Business Value● Basic Principles● Stabilizing Interfaces● Transforming Implementations● Adding Functionality● Rinse and Repeat

Microservice Migration Roadmap

Page 4: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Page 5: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Unlocking Business Value

Page 6: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Where is everything?Unlocking Business Value

Page 7: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Where is everything?Unlocking Business Value

By Pascal from Heidelberg, Germany - The Mess, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=37981790

Page 8: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Where is everything?Unlocking Business Value

http://www.computerweekly.com/feature/APIs-can-be-strategic-tools-to-unlock-business-value

"Data and services are stuck inside isolated applications within the enterprise."

-- Tung and Biltz, Accenture

Page 9: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Why does it cost so much to get at it?Unlocking Business Value

Page 10: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Why does it cost so much to get at it?Unlocking Business Value

By DOJ - US Department of Justice photo, Public Domain, https://commons.wikimedia.org/w/index.php?curid=6419733

Page 11: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Why does it cost so much to get at it?Unlocking Business Value

http://www.zdnet.com/article/eight-obstacles-to-overcome-in-your-digital-transformation-journey/

"It is about renovating at the core, as opposed to getting rid of the core."

-- Hung LeHong, Gartner

Page 12: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

How can I reduce cost/risk?Unlocking Business Value

Page 13: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

How can I reduce cost/risk?Unlocking Business Value

https://www.infoq.com/articles/standish-chaos-2015

Page 14: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

How can I reduce cost/risk?Unlocking Business Value

https://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr/16-Dev_and_Ops/16

"Lower the risk of change through tools and culture."

-- John Allspaw, Etsy

Page 15: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

What do we do then?

Page 16: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Give your system the STAR treatment● Stabilize● Transform● Add● Repeat

Unlocking Business Value

Page 17: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

S

Page 18: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

ST

Page 19: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

ST

A

Page 20: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

RS

TA

Page 21: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

But first...

Page 22: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Page 23: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Basic Principles

Page 24: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The elephant in the room: one bite at a time.Basic Principles

Page 25: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The elephant in the room: one bite at a time.

By Bit Boy - Flickr: The Elephant in the Room, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=20972528

Basic Principles

Page 26: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The elephant in the room: one bite at a time.

https://medium.com/s-c-a-l-e/talking-microservices-with-the-man-who-made-netflix-s-cloud-famous-1032689afed3

"Whenever you do a transition, do the smallest thing that teaches you the most and do that over and over again."

-- Adrian Cockcroft, Netflix

Basic Principles

Page 27: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Employ facades, stranglers, and refactoringBasic Principles

Page 28: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Employ facades, stranglers, and refactoring

https://upload.wikimedia.org/wikipedia/en/5/57/Example_of_Facade_design_pattern_in_UML.png

Basic Principles

Page 29: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Employ facades, stranglers, and refactoring

http://www.blackwasp.co.uk/facade.aspx

"The facade design pattern is used to define a simplified interface to a more complex subsystem."

-- Richard Carr, BlackWasp

Basic Principles

Page 30: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Employ facades, stranglers, and refactoring

https://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/

Basic Principles

Page 31: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Employ facades, stranglers, and refactoring

https://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/

"Strangulation of a legacy solution is a safe way to phase one thing out for something better."

-- Paul Hammant, Thoughtworks

Basic Principles

Page 32: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Employ facades, stranglers, and refactoring

https://martinfowler.com/articles/refactoring-video-store-js/

Basic Principles

Page 33: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Employ facades, stranglers, and refactoring

https://martinfowler.com/books/refactoring.html

"When you refactor you are improving the design of the code after it has been written."

-- Martin Fowler, Thoughtworks

Basic Principles

Page 34: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

APIs are forever, code is not.Basic Principles

Page 35: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

APIs are forever, code is not.

https://upload.wikimedia.org/wikipedia/commons/5/5f/404_not_found.png

Basic Principles

Page 36: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

APIs are forever, code is not.

http://www.allthingsdistributed.com/2016/03/10-lessons-from-10-years-of-aws.html

"We knew that designing APIs was a very important task as we'd only have one chance to get it right."

-- Werner Vogels, Amazon

Basic Principles

Page 37: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Continuous change and instant reversibility Basic Principles

Page 38: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Continuous change and instant reversibility

https://martinfowler.com/bliki/BlueGreenDeployment.html

Basic Principles

Page 39: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Continuous change and instant reversibility

https://martinfowler.com/bliki/BlueGreenDeployment.html

"Blue-green deployment gives you a rapid way to rollback - if anything goes wrong."

-- Martin Fowler, Thoughtworks

Basic Principles

Page 40: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Basic Principles● Take one bite at a time.● Employ facades, stranglers, and refactoring● APIs are forever, code is not● Continuous change and instant reversibility

Page 41: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

So, what's the roadmap?

Page 42: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Page 43: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Step 1: Stabilize the Interface

Page 44: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

All API consumers talk to a proxyStep 1: Stabilize the Interface

Page 45: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

All API consumers talk to a proxyStep 1: Stabilize the Interface

Page 46: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

All API consumers talk to a proxyStep 1: Stabilize the Interface

Page 47: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The proxy MUST be pass-through onlyStep 1: Stabilize the Interface

Page 48: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The proxy MUST be pass-through onlyStep 1: Stabilize the Interface

ABCD

ABC

Page 49: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The proxy MUST be pass-through onlyStep 1: Stabilize the Interface

ABCD

ABC

Page 50: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The proxy MUST be pass-through onlyStep 1: Stabilize the Interface

ABCD

ABCD

Page 51: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The proxy MUST be pass-through onlyStep 1: Stabilize the Interface

ABCD

ABCD

Page 52: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The proxy MUST be pass-through onlyStep 1: Stabilize the Interface

ABCD

ABCD

Page 53: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

ESBs, external services stay behind the ProxyStep 1: Stabilize the Interface

Page 54: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

ESBs stay behind the ProxyStep 1: Stabilize the Interface

Page 55: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

External services stay behind the ProxyStep 1: Stabilize the Interface

Page 56: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

"Proxy Marching"Step 1: Stabilize the Interface

Page 57: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

"Proxy Marching"Step 1: Stabilize the Interface

Page 58: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

"Proxy Marching"Step 1: Stabilize the Interface

Page 59: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

"Proxy Marching"Step 1: Stabilize the Interface

Page 60: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

"Proxy Marching"Step 1: Stabilize the Interface

Page 61: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Stabilize the InterfaceStep 1: Stabilize the Interface

● All API consumers talk to a proxy● The proxy MUST be pass-through only● Keep ESBs & external services behind the proxy● Employ a "Proxy March"

Page 62: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Page 63: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Step 2: Transform the Implementation

Page 64: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Refactor existing componentsStep 2: Transform the Implementation

Page 65: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Refactor existing componentsStep 2: Transform the Implementation

API ConsumersABCD

ABCD

Page 66: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Refactor existing componentsStep 2: Transform the Implementation

API ConsumersABCD

ABCD

Page 67: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Refactor existing componentsStep 2: Transform the Implementation

API Consumers

ABCD

ABCD

Page 68: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Refactor existing componentsStep 2: Transform the Implementation

API Consumers

ABCD

ABCD

Page 69: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Strangle the monolithStep 2: Transform the Implementation

Page 70: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Strangle the monolithStep 2: Transform the Implementation

API Consumers

ABCD

ABCD

VWXY

MNOP

MNOP

VWXY

QRST

QRST

Page 71: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Strangle the monolithStep 2: Transform the Implementation

API Consumers

ABCD

ABCD

VWXY

MNOP

MNOP

VWXY

QRST

QRST

Page 72: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Strangle the monolithStep 2: Transform the Implementation

API Consumers

ABCD

ABCD

VWXY

MNOP

MNOP

VWXY

QRST

QRST

Page 73: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Strangle the monolithStep 2: Transform the Implementation

API Consumers

ABCD

ABCD

VWXY

MNOP

MNOP

VWXYQR

ST

QRST

Page 74: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Strangle the monolithStep 2: Transform the Implementation

API Consumers

ABCD

ABCD

VWXY

MNOP

MNOP

VWXYQR

ST

QRST

Page 75: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Replace tangled ESBs with facadesStep 2: Transform the Implementation

Page 76: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Replace tangled ESBs with facadesStep 2: Transform the Implementation

API Consumers

ABCD

MNOP

VWXY

MN

VW

AB

XY

OP

CD

Page 77: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Replace tangled ESBs with facadesStep 2: Transform the Implementation

API Consumers

ABCD

MNOP

VWXY

MN

VW

AB

XY

OP

CD

Page 78: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Transform the ImplementationStep 2: Transform the Implementation

● Refactor existing components● Strangle the monolith● Replace tangled ESBs

Page 79: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Page 80: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Step 3: Add Functionality

Page 81: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Update functionality via side-by-side componentsStep 3: Add Functionality

Page 82: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Update functionality via side-by-side componentsStep 3: Add Functionality

API Consumers

ABCD

ABCD

Page 83: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Update functionality via side-by-side componentsStep 3: Add Functionality

API Consumers

ABCD

ABCD

ABCDEF

ABCDEF

Page 84: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Introduce new functionality via new componentsStep 3: Add Functionality

Page 85: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Introduce new functionality via new componentsStep 3: Add Functionality

API Consumers

ABCD

ABCD

Page 86: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Introduce new functionality via new componentsStep 3: Add Functionality

API Consumers

ABCD

ABCD

ZZXX

ZZXX

Page 87: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Acquire new functionality via 3rd party facadesStep 3: Add Functionality

Page 88: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Acquire new functionality via 3rd party facadesStep 3: Add Functionality

API Consumers

ABCD

MNOP

VWXY

MNOP

VWXY

ABCD

Page 89: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Acquire new functionality via 3rd party facadesStep 3: Add Functionality

API Consumers

ABCD

MNOP

VWXY

MNOP

VWXY

ABCD

Page 90: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Acquire new functionality via 3rd party facadesStep 3: Add Functionality

API Consumers

ABCD

MNOP

VWXY

MNOP

VWXY

ABCD

F

Page 91: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Add FunctionalityStep 3: Add Functionality

● Side-by-side updates● New components● External services facades

Page 92: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Page 93: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Step 4: Rinse and Repeat

Page 94: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

All changes are incrementalStep 4: Rinse and Repeat

Page 95: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

All changes are incremental

https://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change-4608108

Step 4: Rinse and Repeat

Page 96: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

All changes are incremental

https://www.wired.com/insights/2013/11/the-power-of-incremental-innovation/

"Incremental change may just be the next big thing this decade."

-- Sandeep Kishore, HCL Technologies

Step 4: Rinse and Repeat

Page 97: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Aim for loose interop, not tight integrationStep 4: Rinse and Repeat

Page 98: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Aim for loose interop, not tight integration

By Wkinterop - Powerpoint -> PNG, CC BY-SA 3.0, https://en.wikipedia.org/w/index.php?curid=35139609

Step 4: Rinse and Repeat

Page 99: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Aim for loose interop, not tight integration

https://blogs.technet.microsoft.com/michael_platt/2005/08/30/integration-and-interoperability/

"Interoperation is peer to peer. Integration is where a system is subsumed within another."

-- Michael Platt, Microsoft

Step 4: Rinse and Repeat

Page 100: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Support continuous improvementStep 4: Rinse and Repeat

Page 101: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Support continuous improvement

By Johannes Vietze - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=26722308

Step 4: Rinse and Repeat

Page 102: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Support continuous improvement

https://deming.org/management-system/pdsacycle

"Management's job is to improve the system."

-- W. Edwards Deming

Step 4: Rinse and Repeat

Page 103: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

Rinse and RepeatStep 4: Rinse and Repeat

● Make only incremental changes● Aim for peer-to-peer interoperability● Support continuous improvement

Page 104: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

So...

Page 105: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

© 2017 CA. Confidential. All rights reserved.

The Quick SummaryMicroservice Migration Roadmap

● Focus on Unlocking Value● Change One Thing● Stabilize the Interface● Transform the Implementation● Add Functionality● Rinse and Repeat

Page 106: Microservices Migration Roadmapmamund.com/talks/2017-08-vs-boulder/2017-08-vs-boulder.pdf · 2018. 1. 3. · Microservices Migration Roadmap August 14, 2017 @mamund Mike Amundsen

Director of API [email protected]

Mike Amundsen

@mamundamundsen.com/talks/linkedin.com/in/mamund