28
September 13, 2016 Microservices A Capability Blueprint Matt McLarty Vice President, API Academy CA Technologies @mattmclartybc

A Capability Blueprint for Microservices

Embed Size (px)

Citation preview

Page 1: A Capability Blueprint for Microservices

September 13, 2016

MicroservicesA Capability Blueprint

Matt McLartyVice President, API AcademyCA Technologies@mattmclartybc

Page 2: A Capability Blueprint for Microservices

2

Why are organizations using microservices?

Page 3: A Capability Blueprint for Microservices

3

Business Value Stories

“We can scale our operation independently, maintain unparalleled system availability, and introduce new services quickly without the need for massive reconfiguration.”

•Werner Vogels, Amazon (2006) https://queue.acm.org/detail.cfm?id=1142065

“…the next generation [architecture] that we are building will give Netflix a strong foundation to meet the needs of our massive and growing scale, enabling us to delight our global audience.”

•Netflix (2015) http://techblog.netflix.com/2015/01/netflixs-viewing-data-how-we-know-where.html

“Lessens dependencies between teams - resulting in faster code to production.”

•Adrian Trenaman, Gilt (2015) http://www.infoq.com/news/2015/04/scaling-microservices-gilt

“With the new architecture framework, we were able to reduce our lead time for new features to something that…was much more acceptable for a company trying to play in the highly competitive music industry.”

•Phil Calçado, SoundCloud (2015) http://philcalcado.com/2015/09/08/how_we_ended_up_with_microservices.html

Page 4: A Capability Blueprint for Microservices

4

The goal of microservices

Speed and safety at scale

Page 5: A Capability Blueprint for Microservices

5

Microservice Architecture Maturity Model

Speed Safety

Sca

le &

Co

mp

lexi

ty

Page 6: A Capability Blueprint for Microservices

6

Microservice Architecture Maturity Model

Independent Deployability

Polyglotism

Independent Manageability

Testability

Modularized“Establish the foundation”

Speed Safety

A microservice architecture that is…

Sca

le &

Co

mp

lexi

ty

Page 7: A Capability Blueprint for Microservices

7

Microservice Architecture Maturity Model

Independent Deployability

Polyglotism

Independent Manageability

Testability

Organizational Alignment

Composability

Replaceability

Efficiency

Modularized“Establish the foundation”

Cohesive“Design the services”

Speed Safety

A microservice architecture that is…

Sca

le &

Co

mp

lexi

ty

Page 8: A Capability Blueprint for Microservices

8

Microservice Architecture Maturity Model

Independent Deployability

Polyglotism

Independent Manageability

Testability

Organizational Alignment

Composability

Replaceability

Efficiency

Agility

Comprehensibility

Resiliency/ Availability

Runtime Scalability

Modularized“Establish the foundation”

Cohesive“Design the services”

Systematized“Design the system”

Speed Safety

A microservice architecture that is…

Sca

le &

Co

mp

lexi

ty

Page 9: A Capability Blueprint for Microservices

9

Benefits of Modularization

Independent Deployability

Polyglotism

Independent Manageability

Testability

Page 10: A Capability Blueprint for Microservices

10

Benefits of Modularization

Independent Deployability

Polyglotism

Independent Manageability

Testability

Supporting Capabilities

Containers CI/CDConfiguration Management

Platform Hosting (IaaS, PaaS)

Page 11: A Capability Blueprint for Microservices

11

Benefits of Modularization

Independent Deployability

Polyglotism

Independent Manageability

Testability

Supporting Capabilities

Containers APIs

Containers CI/CDConfiguration Management

Platform Hosting (IaaS, PaaS)

Multi-Language Platform Hosting

Page 12: A Capability Blueprint for Microservices

12

Benefits of Modularization

Independent Deployability

Polyglotism

Independent Manageability

Testability

Supporting Capabilities

Containers Platform Hosting

Containers APIs

Containers CI/CDConfiguration Management

Platform Hosting (IaaS, PaaS)

APIs Logging

Multi-Language Platform Hosting

Page 13: A Capability Blueprint for Microservices

13

Benefits of Modularization

Independent Deployability

Polyglotism

Independent Manageability

Testability

Supporting Capabilities

Containers Platform Hosting

Containers APIsContract

DefinitionService

Virtualization

Containers APIs

Containers CI/CDConfiguration Management

Platform Hosting (IaaS, PaaS)

APIs Logging

Multi-Language Platform Hosting

Page 14: A Capability Blueprint for Microservices

14

Benefits of Cohesion

Organizational Alignment

Composability

Replaceability

Efficiency

Page 15: A Capability Blueprint for Microservices

15

Benefits of Cohesion

Organizational Alignment

Composability

Replaceability

Efficiency

Supporting Capabilities

Domain-oriented APIs

Business Analytics

Business Alignment

Organizational Design

Page 16: A Capability Blueprint for Microservices

16

Benefits of Cohesion

Organizational Alignment

Composability

Replaceability

Efficiency

Supporting Capabilities

Loosely-coupled APIs

ContainersComponent

RegistryTeam

Autonomy

Domain-oriented APIs

Business Analytics

Business Alignment

Organizational Design

Page 17: A Capability Blueprint for Microservices

17

Benefits of Cohesion

Organizational Alignment

Composability

Replaceability

Efficiency

Supporting Capabilities

APIs ContainersTeam

AutonomyChange

Tolerance

Loosely-coupled APIs

ContainersComponent

RegistryTeam

Autonomy

Domain-oriented APIs

Business Analytics

Business Alignment

Organizational Design

Page 18: A Capability Blueprint for Microservices

18

Benefits of Cohesion

Organizational Alignment

Composability

Replaceability

Efficiency

Supporting Capabilities

APIs ContainersTeam

AutonomyChange

Tolerance

ContainersPlatform Hosting

Component Registry

Business Alignment

Loosely-coupled APIs

ContainersComponent

RegistryTeam

Autonomy

Domain-oriented APIs

Business Analytics

Business Alignment

Organizational Design

Page 19: A Capability Blueprint for Microservices

19

Benefits of Systematization

Agility

Comprehensibility

Resiliency/ Availability

Runtime Scalability

Page 20: A Capability Blueprint for Microservices

20

Benefits of Systematization

Agility

Comprehensibility

Resiliency/ Availability

Runtime Scalability

Supporting Capabilities

Component Registry

AutomationAgile Software Development

Iterative Approach

Page 21: A Capability Blueprint for Microservices

21

Benefits of Systematization

Agility

Comprehensibility

Resiliency/ Availability

Runtime Scalability

Supporting Capabilities

Domain-oriented APIs

Contract Definition

Small TeamsCross-Org Visibility

Component Registry

AutomationAgile Software Development

Iterative Approach

Page 22: A Capability Blueprint for Microservices

22

Benefits of Systematization

Agility

Comprehensibility

Resiliency/ Availability

Runtime Scalability

Supporting Capabilities

Monitoring AutomationCross-Org Visibility

Change Tolerance

Domain-oriented APIs

Contract Definition

Small TeamsCross-Org Visibility

Component Registry

AutomationAgile Software Development

Iterative Approach

Page 23: A Capability Blueprint for Microservices

23

Benefits of Systematization

Agility

Comprehensibility

Resiliency/ Availability

Runtime Scalability

Supporting Capabilities

Monitoring AutomationCross-Org Visibility

Change Tolerance

Operational Analytics

Component Registry

Cross-org Visibility

Team Autonomy

Domain-oriented APIs

Contract Definition

Small TeamsCross-Org Visibility

Component Registry

AutomationAgile Software Development

Iterative Approach

Page 24: A Capability Blueprint for Microservices

24

Microservices Technological Capabilities

Monitoring Capabilities

Container Repository & Management

App Performance Monitoring

End User Experience Monitoring

System Monitoring &

Recovery

Business & IT Analytics Capabilities

Business Analytics

Event Monitoring &

Execution

Operational Analytics

Continuous Business Planning

Mobile Apps Web Apps Other Microservices

Consumers

Logging

Design & Development Capabilities

Container & Image Creation

μS & API Design

μS Development Framework

μS Test Management &

Automation

Component Registry/Discovery

Contract DefinitionUser Analytics

Mediation Capabilities Policy Enforcement (Security, SLA, Audit, Regulatory)

PlatformCapabilities

Infrastructure-as-a-Service

Platform-as-a-Service

Functions-as-a-Service

Microservices

Configuration & Deployment Capabilities Container Management

Continuous Delivery / Release Management

Configuration Management

Routing/ Aggregation

Messaging/Content

Security Capabilities Authentication & Authorization

Identity Management

Service Discovery / Registration

Client App Capabilities(Mobile, web, IoT apps)

Service Virtualization

μS Client Development

IoT Devices

Mobile Monitoring

Container Hosting

Page 25: A Capability Blueprint for Microservices

25

Microservices Non-Technological Capabilities

Methodological Capabilities

Agile software development

Continuous integration/continuous delivery (build & deployment automation)

Test automation

Operational automation

Organizational Capabilities

Small team size

Business alignment

Cross-organizational supporting teams

“Guilds”

Organizational design

Cultural Capabilities

Stated principles

Team autonomy and empowerment

Two way communication

Change tolerance

Experimental and iterative approach

Toolmaking and enablement (vs. “governance”)

Page 26: A Capability Blueprint for Microservices

26

In summary…

Early microservice adopters seek speed and safety at scale

Three levels of microservice architectures:

• Modularized

• Cohesive

• Systematized

Each level brings different benefits

Microservice capabilities enable the benefits

Page 27: A Capability Blueprint for Microservices

27

For more information…

Microservice Architecture, from O’Reilly Media

• http://transform.ca.com/API-microservice-architecture-oreilly-book.html

Videos from #API360 Microservices Summit (NYC, 6/16/16)

• http://transform.ca.com/API-Microservices-Best-Practices-API360-Summit-Videos.html

Infoworld Series on Microservices

• http://www.infoworld.com/article/3075880/application-development/microservice-architecture-is-agile-software-architecture.html

• http://www.infoworld.com/article/3080611/application-development/learning-from-soa-5-lessons-for-the-microservices-era.html

O’Reilly Blog Series

• https://www.oreilly.com/ideas/optimize-for-desirable-results

• https://www.oreilly.com/ideas/microservices-need-architects

• https://www.oreilly.com/ideas/microservices-shift-complexity-to-where-it-belongs

• https://www.oreilly.com/ideas/three-pillars-of-microservice-culture

Page 28: A Capability Blueprint for Microservices

28

Thank you!