the agile roots of microservices

Post on 15-Feb-2017

513 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

May 16, 2016

#AgileInTheCloud

Extreme ArchitectureThe Agile Roots of Microservices

Matt McLartyVice President, API AcademyCA Technologies@mattmclartybc

2 #AgileInTheCloud

Topics in this talk…

Background on CA and the API Academy

What are microservices and where did they come from?

Why do microservices matter?

How and when can an organization get started with microservices?

Who has implemented microservices effectively?

Where are the trouble spots?

3 #AgileInTheCloud

Some background…

4 #AgileInTheCloud

Who am I?

5 #AgileInTheCloud

CA Technologies in Vancouver

2002-2013 2013-Now

6 #AgileInTheCloud

The API Academy

http://apiacademy.co

7 #AgileInTheCloud

What are “microservices” and where did they come from?

8 #AgileInTheCloud

Microservices

“Microservices are a thing these days”

- Phil Calçado

9 #AgileInTheCloud

The first thing everyone reads about microservices…

http://martinfowler.com/articles/microservices.html

10 #AgileInTheCloud

Microservices = Service-Oriented Architecture?

“For us service orientation means encapsulating the data with the business logic that operates on the data, with the only access through a published service interface.”- Werner Vogels, AWS CTOhttps://queue.acm.org/detail.cfm?id=1142065

“Microservices is SOA with emphasis on small ephemeral components.”- Adrian Cockroft, Battery Ventures, ex-Netflixhttps://twitter.com/adrianco/status/542850261782237184

11 #AgileInTheCloud

Microservice principles

Decompose into discrete services to enable continuous delivery

Reduce dependencies to facilitate frequent change

Remove bottlenecks to speed up development

Developed and supported by small, empowered, business-aligned teams

Break the system down into understandable and manageable parts

Reduce the amount of unchanged code that gets deployed

12 #AgileInTheCloud

These are Agile principles!

Decompose into discrete services to enable continuous delivery

Reduce dependencies to facilitate frequent change

Remove bottlenecks to speed up development

Developed and supported by small, empowered, business-aligned teams

Break the system down into understandable and manageable parts

Reduce the amount of unchanged code that gets deployed

13 #AgileInTheCloud

The Agile Progression

Agile Software Development

Continuous Delivery

DevOps

Microservice Architecture

14 #AgileInTheCloud

Microservices and Agile

Microservice architecture is Agile software architecture

15 #AgileInTheCloud

Agile Software Architecture

“If we look at the characteristics of an agile software architecture, we tend to think of something that is built using a collection of small, loosely coupled components/services that collaborate together to satisfy an end-goal. This style of architecture provides agility in a number of ways. Small, loosely coupled components/services can be built, modified and tested in isolation, or even ripped out and replaced depending on how requirements change. This style of architecture also lends itself well to a very flexible and adaptable deployment model, since new components/services can be added and scaled if needed.”

- Simon Brown, September 2013http://www.codingthearchitecture.com/2013/09/03/what_is_agile_software_architecture.html

16 #AgileInTheCloud

Microservice Definitions

A microservice is an independently deployable component of bounded scope that supports interoperability through message-based communication. Microservice architecture is a style of engineering highly-automated, evolvable software systems made up of capability-aligned microservices.

17 #AgileInTheCloud

Why are organizations using microservices?

18 #AgileInTheCloud

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

19 #AgileInTheCloud

The goal of microservices

Speed and safety at scale

20 #AgileInTheCloud

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 SafetyA microservice architecture that is…

Scal

e &

Com

plex

ity

21 #AgileInTheCloud

Getting started with a design-based approach to microservices

22 #AgileInTheCloud

23 #AgileInTheCloud

24 #AgileInTheCloud

25 #AgileInTheCloud

Outcomes

26 #AgileInTheCloud

Outcomes

Services

27 #AgileInTheCloud

Outcomes

Services

Foundation

28 #AgileInTheCloud

Outcomes

Services

System

Foundation

29 #AgileInTheCloud

Outcomes

Services

System

Organization

Foundation

30 #AgileInTheCloud

Future

Outcomes

Services

System

Organization

Foundation

31 #AgileInTheCloud

Microservices in practice

32 #AgileInTheCloud

Microservices at Hootsuite

Outcomes

Increase development velocity and scale

Allow more

operational flexibility

Services

Distributed Domain Driven

Design and contracts

Tiered services:

Data, Functional,

Façade

Foundation

Skyline platform

for cross-

service communication

System

Dynamic service

discovery at

runtime and

design time

Organization

Product-aligned teams of 5-7

people, cross-functional

“guilds”, central platform team

Governance by “eventual consistency”

Future

Technology

Architecture

Group for cross-

cutting concerns

33 #AgileInTheCloud

What to look out for

34 #AgileInTheCloud

Microservices Dependencies

Cloud infrastructure

Continuous delivery

DevOps culture

System management

Adapted from http://martinfowler.com/bliki/MicroservicePrerequisites.html

35 #AgileInTheCloud

Potential Pitfalls

Overemphasizing the technology

Underemphasizing the system

Going for the “Big Bang”

Designing for “Done”

36 #AgileInTheCloud

Blind Spots

System Monitoring and Management

Service Design and

Orchestration

Security and Policy

Enforcement

Integrated Testing

37 #AgileInTheCloud

Summary

38 #AgileInTheCloud

In summary…

Microservice architecture is Agile software architecture

Microservices can bring speed and safety at scale

Take a design-based approach to microservices

Early microservice adopters take a holistic approach

Be aware of pre-requisites, pitfalls and blind spots

39 #AgileInTheCloud

Questions?

40 #AgileInTheCloud

Thank you!

top related