managing a microservices development team (and advanced microservice concerns)

45
THIRDCHANNEL Managing a Microservices Development Team Steve Pember CTO, ThirdChannel @svpember

Upload: steve-pember

Post on 02-Jul-2015

580 views

Category:

Software


0 download

DESCRIPTION

So you’re decided to make the transition to a Microservice Architecture. You’ve spent time doing the research. You’ve designed out the responsibilities of each service with your team. You’ve read and memorized the entire article Martin Fowler wrote on the subject. Now, you’re running a team that’s tasked with building some Microservices. You’re built or extracted your first services. You’ve been successfully transmitting data between these services. What next? What should you be aware of? What should keep you up at night? In this talk we’ll begin with a brief introduction to the architecture pattern before covering some of the more advanced topics when developing Microservices, focusing primarily on team management and service design philosophy. We’ll discuss the CAP theorem and why it should be your obsession. We’ll look at how Conway’s Law should be taken seriously and how it can serve as a warning to facilitate better communication between teams. Finally we’ll examine some common pitfalls of Microservices architectures and how they can be mitigated.

TRANSCRIPT

Page 1: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Managing a Microservices

Development Team

Steve Pember

CTO, ThirdChannel

@svpember

Page 2: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Page 3: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Agenda

1. Service Design Philosophy (The Tech)

2. Team Organization (Less Tech)

3. What does it mean to be the CTO / Lead Tech person with

Microservices?

Page 4: Managing a Microservices Development Team (And advanced Microservice concerns)

Microservices

Page 5: Managing a Microservices Development Team (And advanced Microservice concerns)
Page 6: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Page 7: Managing a Microservices Development Team (And advanced Microservice concerns)
Page 8: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Microservices To The Rescue

• Distributed Application

Page 9: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Page 10: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Page 11: Managing a Microservices Development Team (And advanced Microservice concerns)
Page 12: Managing a Microservices Development Team (And advanced Microservice concerns)

Service Design

Page 13: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Service Design

• A Service is a Bounded Context

Page 14: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Service Design

• A Service is a Bounded Context

• CAP Theorem

Page 15: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

CAP Theorem (Brewer’s

Conjecture)In a Distributed System, can have two of:

• High (C)onsistency

• High (A)vailability

• High (P)artition Tolerance

Page 16: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Page 17: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Page 18: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

CAP Theorem (Brewer’s

Conjecture)• High (C)onsistency, (A)vailability, or (P)artition Tolerance

• More of a Sliding Scale, Really

Page 19: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

CAP Theorem (Brewer’s

Conjecture)• High (C)onsistency, (A)vailability, or (P)artition Tolerance

• More of a Sliding Scale, Really

• Focus on Speed

Page 20: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

CAP Theorem (Brewer’s

Conjecture)• High (C)onsistency, (A)vailability, or (P)artition Tolerance

• More of a Sliding Scale, Really

• Focus on Speed

• Embrace Eventual Consistency

Page 21: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Service Design

• A Service is a Bounded Context

• CAP Theorem

• Data Locality

Page 22: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Data Locality

• Spatial: how far away is the data?

Page 23: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Data Locality

• Spatial: how far away is the data?

• Temporal: how often is it accessed?

Page 24: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Page 25: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Page 26: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Data Locality

• Spatial: how far away is the data?

• Temporal: how often is it accessed?

• Microservices Goal: Have highly Spatial Data and efficiently

handle Temporal Data.

Page 27: Managing a Microservices Development Team (And advanced Microservice concerns)

Team Organization

Page 28: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Team Organization

• Multidisciplinary Teams

Page 29: Managing a Microservices Development Team (And advanced Microservice concerns)
Page 30: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

DBAs

Engineers

UX / Design

QA

Front End Service

Internal Tools Services

Order Management Service

Page 31: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Team Organization

• Multidisciplinary Teams

• Conway’s Law

Page 32: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Conway’s Law

“organizations which design systems ... are constrained to

produce designs which are copies of the communication

structures of these organizations”

-Melvin Conway, 1968

http://en.wikipedia.org/wiki/Conway's_law

Page 33: Managing a Microservices Development Team (And advanced Microservice concerns)
Page 34: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Team Organization

• Multidisciplinary Teams

• Conway’s Law

• Autonomous Teams

Page 35: Managing a Microservices Development Team (And advanced Microservice concerns)
Page 36: Managing a Microservices Development Team (And advanced Microservice concerns)

Leadership Responsibilities

Page 37: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Leadership Responsbilities

• Keep Teams Aligned with business goals

Page 38: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Leadership Responsbilities

• Keep Teams Aligned with business goals

• Drive Microservice Vision

Page 39: Managing a Microservices Development Team (And advanced Microservice concerns)
Page 40: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Leadership Responsbilities

• Keep Teams Aligned with business goals

• Drive Microservice Vision

• Defend Microservice Vision

Page 41: Managing a Microservices Development Team (And advanced Microservice concerns)

THIRDCHANNEL

Leadership Responsbilities

• Keep Teams Aligned with business goals

• Drive Microservice Vision

• Defend Microservice Vision

• Mentor & Educate

Page 42: Managing a Microservices Development Team (And advanced Microservice concerns)

In Summary:

Page 43: Managing a Microservices Development Team (And advanced Microservice concerns)

Data Locality is Scary

Page 44: Managing a Microservices Development Team (And advanced Microservice concerns)

Empower Your Service Teams

Page 45: Managing a Microservices Development Team (And advanced Microservice concerns)

Thank you!