microservices: aren't microservices just soa?

26
Microservices Aren’t Microservices Just SOA? with Chris Sterling

Upload: chris-sterling

Post on 11-Aug-2015

288 views

Category:

Technology


5 download

TRANSCRIPT

MicroservicesAren’t Microservices Just SOA?

with Chris Sterling

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

Presence

3

@csterwa #swdebt

@appfog https://www.centurylinkcloud.com/appfog

Agenda

Define SOA Define Microservices Feature Teams Architecture Principles Monoliths?

4

Are Microservices SOA?

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

What are Microservices?

Definition: Microservice

8

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

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

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

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

Feature Teams

Principle: Rather than creating teams to work on projects, let’s find ways to give work to cross-functional teams.

12

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

Microservices Architecture

Considerations

15

Malleable architectures and design enable nimble business capabilities.

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.

16https://blogs.oracle.com/jag/resource/Fallacies.html

Application Programming

17

API

Deploy to a Platform

18

Deploy to a Platform

18

Deploy to a Platform

18

Should Teams Start with Monoliths?

20

Define: Monolith

Suggestion

Start with one codebase to experiment on solutions. Once target solution is found orient towards a Platform that supports Microservices architectural style.

21

Q&A