A pattern language for microservices (#SFMicroservices)

34
@crichardson A pattern language for microservices Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action @crichardson [email protected] http://microservices.io http://eventuate.io http://plainoldobjects.com

Transcript of A pattern language for microservices (#SFMicroservices)

@crichardson

A pattern language for microservices

Chris Richardson

Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action

@crichardson [email protected] http://microservices.io http://eventuate.io http://plainoldobjects.com

@crichardson

Presentation goal

Why patterns and pattern languages?

A pattern language for microservices

@crichardson

About Chris

@crichardson

About Chris

Consultant and trainer focusing on modern

application architectures including microservices

(http://www.chrisrichardson.net/)

@crichardson

About Chris

Founder of a startup that is creating a platform that makes it easier for developers to write transactional

microservices (http://eventuate.io)

@crichardson

For more information

http://learnmicroservices.io

@crichardson

@crichardson

Agenda

Why a pattern language for microservices?

An overview of the microservices pattern language

@crichardson

In 1986…

http://en.wikipedia.org/wiki/Fred_Brooks

@crichardson

Yet almost 30 years later developers are still

passionately arguing over “silver bullets”

@crichardson

Today’s silver bullets

@crichardson

Human beings are emotional

Decide using

emotions

Rationalize with our intellect

http://en.wikipedia.org/wiki/Mahout

@crichardson

Gartner Hype Cycle

http://upload.wikimedia.org/wikipedia/commons/b/bf/Hype-Cycle-General.png

It’s awesome

It’s not awesome

Trade-offs understood

@crichardson

We need a better way to discuss and think about technology

@crichardson

What’s a pattern?

Reusable solution to a problem

occurring in a particular context

@crichardson

The structure of a pattern

=

Great framework for discussing and thinking about technology

@crichardson

The structure of a pattern

Resulting context

aka the situation

Name

Context

Problem

Related patterns

(conflicting) issues etc to address Forces

Solution

@crichardson

Resulting context

Benefits

Drawbacks

Issues to resolve

@crichardson

Related patterns

Alternative solutions

Solutions to problems introduced by this pattern

Pattern languageA collection of related patterns that solve problems in a particular domain

Relationships

Pattern A results in a context that has a problem solved by Pattern B

Patterns A and B solve the same problem

Pattern A is a specialization of pattern B

http://en.wikipedia.org/wiki/A_Pattern_Language

Access to Water

Promenade

Local townhall

Intimacy gradient

Light on two sides

@crichardson

Meta-pattern: Use the pattern format to describe technology

Problem: How to talk/reason about technology?

Solution: Use the pattern format

Benefit: More objective

Drawback: Less exciting

Context: Emotional software development culture

Related patterns: It’s awesome!

@crichardson

Agenda

Why a pattern language for microservices?

An overview of the microservices pattern language

@crichardson

Microservices pattern language

http://microservices.io/

@crichardson

How to architect your application?

@crichardson

How to deploy your application?

@crichardson

How do services communicate?

@crichardson

How does a service know another’s network location

@crichardson

How do an application’s clients communicate with the services?

@crichardson

How to simplify the development of services?

@crichardson

What is the database architecture?

@crichardson

How to maintain data consistency across services?

@crichardson

Summary: Patterns and pattern languages are a great way to …

Think about technology

Discuss technology

Apply technology

@crichardson

Summary: The Microservices pattern language is a great way to …

Think about microservices

Discuss microservices

Apply microservices (or not)

@crichardson

@crichardson [email protected]

http://learnmicroservices.io

Questions?