Microservices and Evolutionary Architecture Rebecca Parsons WHY DO - - PowerPoint PPT Presentation

microservices and evolutionary architecture
SMART_READER_LITE
LIVE PREVIEW

Microservices and Evolutionary Architecture Rebecca Parsons WHY DO - - PowerPoint PPT Presentation

Microservices and Evolutionary Architecture Rebecca Parsons WHY DO I CARE? Organizations expect business agility, time to market, and the ability to adapt quickly from IT 2 WHAT DID WE USED TO DO? Remember component re- use? Remember


slide-1
SLIDE 1

Microservices and Evolutionary Architecture

Rebecca Parsons

slide-2
SLIDE 2

WHY DO I CARE?

2

Organizations expect business agility, time to market, and the ability to adapt quickly from IT

slide-3
SLIDE 3

WHAT DID WE USED TO DO?

3

Remember component re- use?

  • Remember integration by

database?

  • Remember SOA?
slide-4
SLIDE 4

SOA GOT SOME THINGS RIGHT

▫︎ Break monoliths down into independent services

  • ▫︎ Integration over internal coupling
  • ▫︎ Encouraged greater acceptance of eventual consistency
  • ▫︎ At least made us think differently about the old

approach

4

slide-5
SLIDE 5

SOA STILL TENDED TO MESS UP

▫︎ Monster services ▫︎ Producer driven services ▫︎ Orchestration ▫︎ Tooling often got in the way ▫︎ Much harder to change (even though that’s why we did

it)

▫︎ Much harder to test

5

slide-6
SLIDE 6

AND NOW?

6

Micro-services

slide-7
SLIDE 7

WHAT ARE MICRO-SERVICES?

7

… 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.

martinfowler.com/articles/microservices.html

slide-8
SLIDE 8

CHARACTERISTICS OF MICRO-SERVICES

▫︎ Small ▫︎ Built around business capabilities ▫︎ Independently deployable ▫︎ Little centralized management ▫︎ Smart end points and dumb pipes ▫︎ Lack of centralized, shared database

8

slide-9
SLIDE 9

IMPLICATIONS OF USING MICRO-SERVICES

▫︎ Granularity question is crucial ▫︎ Must balance cohesion and coupling ▫︎ Independently scalable ▫︎ Monitoring crucial ▫︎ Explicit design for service failures ▫︎ Infrastructure automation and deployment automation

essential

▫︎ Platform flexibility must be managed ▫︎ Eventual consistency must be managed ▫︎ Interface churn must be managed

9

slide-10
SLIDE 10

HOW DO I DECOMPOSE MY MONOLITH?

▫︎ Think about bounded contexts as defined in Domain

Driven Design

▫︎ Think about business capabilities ▫︎ Think about what consumers need ▫︎ Think about communication patterns ▫︎ Think about data architecture ▫︎ Think about correlated change patterns ▫︎ Be prepared to combine services and split services ▫︎ Tolerant reader

10

slide-11
SLIDE 11

MICRO-SERVICES AND EVOLUTIONARY ARCHITECTURE

▫︎ Micro-services exhibit many of the principles of

evolutionary architecture

▫︎ Focus on evolvability ▫︎ Tolerant reader ▫︎ Exploiting Conway’s Law ▫︎ Appropriate coupling ▫︎ Contracts ▫︎ Testability

11

slide-12
SLIDE 12

ROLE OF CONTINUOUS DELIVERY

▫︎ Micro-services increase the burden on operations ▫︎ More things to deploy ▫︎ Monitoring must be more sophisticated ▫︎ More permutations of failure ▫︎ Inadvisable without a strong DevOps culture ▫︎ Inadvisable without rigor of continuous delivery ▫︎ Infrastructure automation ▫︎ Deployment automation ▫︎ Test automation

12

slide-13
SLIDE 13

How do I get started?

13

slide-14
SLIDE 14

Is this a silver bullet? Sorry, but no. Still, used effectively in many, varied organizations.

14

slide-15
SLIDE 15

To Learn More

Sam Newman

Building Microservices

DESIGNING FINE-GRAINED SYSTEMS

slide-16
SLIDE 16

Thank you!

@rebeccaparsons http://rebeccaparsons.com

16

slide-17
SLIDE 17

Questions?

Please remember to evaluate via the GOTO Guide App