an introduction to microservices

23
An Introduction to Microservices URI GOLDSTEIN, MARCH 2017

Upload: uri-goldstein

Post on 06-Apr-2017

110 views

Category:

Software


0 download

TRANSCRIPT

Page 1: An Introduction to Microservices

An Introduction to MicroservicesURI GOLDSTEIN, MARCH 2017

Page 2: An Introduction to Microservices

2/23

Uri Goldstein

@urig http://urig.io/[email protected]

Page 3: An Introduction to Microservices

3/23

Agenda

History and DefinitionsMajor CharacteristicsStrengths and ChallengesFurther Investigation

Page 4: An Introduction to Microservices

4/23

A Bit of History

Term coined in 2011 Popular and gaining

popularity Evangelized by Netflix, AWS All the cool kids are doing it*

* Not really, no.

Page 5: An Introduction to Microservices

5/23

Definition

There Is No Band Official Definition

Page 6: An Introduction to Microservices

Definitions

Netflix:“Fine grained SOA”

The web:“SOA Done Right”

@urig:“SOA in the Cloud”

James Lewis & Martin Fowler, 2014:

“An Architectural Style”

Must-read article 9 Common Characteristics

Page 7: An Introduction to Microservices

7/23

Ex: Monolith vs Microservices

Page 8: An Introduction to Microservices

Microservices are services

Single Responsibility

Easily upgraded

Easily replaced

1 Service = 1 Process

Exclusive Ownership of Data

Polyglot Technology

Page 9: An Introduction to Microservices

9/23

Microservices are micro

“Small enough to fit in one’s head”

Typically Tens to Tens of Thousands LOC

Owned by single person / team

Page 10: An Introduction to Microservices

10/23

Products not Projects

“You build it, You run it”

DevOps Skills and Mentality

Evolutionary Design

Page 11: An Introduction to Microservices

11/23

Business drives architecture

Cross-functional teams

Organized around Business Capability

1 Service ≈ 1 Business Feature

Page 12: An Introduction to Microservices

12/23

Smart endpoints and dumb pipes

Microservices are the Anti-ESB

Page 13: An Introduction to Microservices

13/23

Smart endpoints and dumb pipes

More like WWW:

Logic resides in endpointsComm. layer is simpleTypically REST

Page 14: An Introduction to Microservices

14/23

Distributed Means Distributed

Designed for FailureStatelessAsynchronous

Page 15: An Introduction to Microservices

15/23

Benefits

Highly ScalableCost Effective*Fast and FuriousCloud Native

Page 16: An Introduction to Microservices

16/23

Challenges

Page 17: An Introduction to Microservices

17/23

Page 18: An Introduction to Microservices

18/23

No Compiler Safety Net

TestingVersioningBackward Compatibility

Page 19: An Introduction to Microservices

19/23

Easy Deployment Isn’t Easy

DevOpsAutomationContinuous Delivery / Deployment

Page 20: An Introduction to Microservices

20/23

Network Latency and Reliability

Design for FailureRedundancyMonitoringAutomation

Page 21: An Introduction to Microservices

21/23

Take-Aways

One size does not fit allChallenges are significantDo you have the skills to mitigate them?Are the benefits relevant for you?

The Good News:

It’s not all or Nothing

Page 22: An Introduction to Microservices

22/23

Further reading

Microservices Resource Guidehttps://www.martinfowler.com/microservices/

Microservices Article: Lewis, James & Fowler, Martinhttps://martinfowler.com/articles/microservices.html

Adrian Cockroft: Migrating to Microservices (video)https://www.infoq.com/presentations/migration-cloud-native

Loads more…

Page 23: An Introduction to Microservices

23/23

Thanks for listening – Question Time

[email protected]

GDG Rishon JetBrains give away!http://tinyurl.com/GDGRL-March