May 16, 2016
#AgileInTheCloud
Extreme Architecture
The Agile Roots of Microservices
Matt McLarty
Vice President, API Academy
CA 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 CTO
https://queue.acm.org/detail.cfm?id=1142065
“Microservices is SOA with emphasis on small
ephemeral components.”
- Adrian Cockroft, Battery Ventures, ex-Netflix
https://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 2013
http://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…
Scale&Complexity
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
APIs Containers?
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!

The Agile Roots of Microservices

Editor's Notes

  • #2 Thanks everyone for joining this webinar. My name is Matt McLarty, and I’m the Vice President of the API Academy at CA Technologies. The purpose of this presentation is to present you with tips on how to get started on building a sustainable and successful program for taking advantage of APIs. The theme is “API360”, something we’ve been talking about in the API Academy over the last several months. The reason for the “360” is that we’ve found a holistic approach is necessary when contemplating APIs for large enterprises. All facets of strategy, business, organization, architecture and technology need to be considered, and our approach factors in all of those dimensions. I plan on delivering the whole presentation, then taking questions, but please post your questions in the chat box as we go and I will address them at the end.
  • #23 Explain the attachment to graph paper as a creative tool The blend of
  • #24 Explain the attachment to graph paper as a creative tool The blend of
  • #25 Explain the attachment to graph paper as a creative tool The blend of