The buzz around Microservices has blazed through the software development industry. Questions about whether its just SOA renamed and how micro is “micro” have blocked out the valuable principles of the Microservices architecture approach. This talk will focus on how Microservices architecture principles have extended beyond SOA and enable DevOps and Agile software development.
2. Bio - Chris Sterling
2
Author of “Managing Software Debt: Building for Inevitable
Change”
Supported change efforts to adopt Lean, Agile & Continuous
Delivery behaviors for organizations of 10 up to 800+ people
Product Owner at CenturyLink Cloud
Entrepreneur & Lean Startup Practitioner
Blog: managingsoftwaredebt.com
6. Definition: SOA
6
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm
A paradigm for organizing and utilizing
distributed capabilities that may be under the
control of different ownership domains. It
provides a uniform means to offer, discover,
interact with and use capabilities to produce
desired effects consistent with measurable
preconditions and expectations.
http://www.opengroup.org/subjectareas/soa
Service-Oriented Architecture (SOA) is an architectural style that
supports service-orientation. Service-orientation is a way of
thinking in terms of services and service-based development and
the outcomes of services.
A service:
• Is a logical representation of a repeatable business activity that
has a specified outcome (e.g., check customer credit, provide
weather data, consolidate drilling reports)
• Is self-contained
• May be composed of other services
• Is a “black box” to consumers of the service
9. Definition: Microservice
8
…the microservice
architectural style is an
approach to developing
a single application as a
suite of small services,
each running in its own
process and
communicating with
lightweight mechanisms,
often an HTTP resource
API.
http://martinfowler.com/articles/microservices.html
10. Definition: Microservice
8
…the microservice
architectural style is an
approach to developing
a single application as a
suite of small services,
each running in its own
process and
communicating with
lightweight mechanisms,
often an HTTP resource
API.
http://martinfowler.com/articles/microservices.html
Loosely coupled service
oriented architecture
with bounded context.
http://www.slideshare.net/adriancockcroft/dockercon-state-of-the-art-in-microservices
11. Microservices
9
Pluggable UI
API Routing
Service 1 Service 2 Service 3 Service 4
Identity Management
Authorization Authorization Authorization Authorization
Data Data Data Data
Messaging Platform
12. Conway’s Law
“organizations which design
systems ... are constrained to
produce designs which are
copies of the communication
structures of these
organizations”
— Melvin Conway
10
http://www.melconway.com/Home/Committees_Paper.html
15. Feature Team
“Feature Team” structure
Uses common Product Backlog
Integration is done in parallel
Requires high levels of communication
across teams to resolve integration issues
Forces Product Owners to
be more coordinated
Sprints should be synchronized
Cross team fertilization is a
requirement to successfully
deliver in parallel
13
18. Eight Fallacies
of Distributed
Computing
The network is reliable.
Latency is zero.
Bandwidth is infinite.
The network is secure.
Topology doesn't change.
There is one administrator.
Transport cost is zero.
The network is homogeneous.
16
https://blogs.oracle.com/jag/resource/Fallacies.html
25. Suggestion
Start with one codebase to
experiment on solutions.
Once target solution is found
orient towards a Platform that
supports Microservices
architectural style.
21