The Technical Journey to Microservices - the New World

143
The Technical Journey to Microservices @russmiles

Transcript of The Technical Journey to Microservices - the New World

Page 1: The Technical Journey to Microservices  - the New World

The Technical Journey to Microservices

@russmiles

Page 2: The Technical Journey to Microservices  - the New World
Page 3: The Technical Journey to Microservices  - the New World

Biker me… TBD

Page 4: The Technical Journey to Microservices  - the New World
Page 5: The Technical Journey to Microservices  - the New World
Page 6: The Technical Journey to Microservices  - the New World
Page 7: The Technical Journey to Microservices  - the New World

Reactive…

Say “Microservices” one more time…

Page 8: The Technical Journey to Microservices  - the New World

TBD

Page 9: The Technical Journey to Microservices  - the New World
Page 10: The Technical Journey to Microservices  - the New World

A Definition…

Page 11: The Technical Journey to Microservices  - the New World

The kingdom of heaven is like a mustard seed, which a man took and planted in his field. Though it is the

smallest of all seeds, yet when it grows, it is the largest of garden plants and becomes a tree, so that the birds come and perch in its branches (Matthew 13:31-32).

- Of Mustard Seeds and Microservices (Micah Blalock) -- https://www.credera.com/blog/technology-

insights/java/mustard-seeds-microservices/

Page 12: The Technical Journey to Microservices  - the New World

“Loosely coupled service oriented architecture with bounded contexts”

Page 13: The Technical Journey to Microservices  - the New World

Loosely Coupled Services that can change

Page 14: The Technical Journey to Microservices  - the New World

A Story

Page 15: The Technical Journey to Microservices  - the New World
Page 16: The Technical Journey to Microservices  - the New World
Page 17: The Technical Journey to Microservices  - the New World

“The Elephant in the Standup”

Page 18: The Technical Journey to Microservices  - the New World

The term is WRONG

Page 19: The Technical Journey to Microservices  - the New World

Size doesn’t matter

Page 20: The Technical Journey to Microservices  - the New World

SLOC doesn’t matter

Page 21: The Technical Journey to Microservices  - the New World

Cognitive Overhead DOES

Page 22: The Technical Journey to Microservices  - the New World

What can your System DO?

Page 23: The Technical Journey to Microservices  - the New World

Single Biggest Limiting Factor on Change?

Page 24: The Technical Journey to Microservices  - the New World

You.

Page 25: The Technical Journey to Microservices  - the New World

Comprehension

Page 26: The Technical Journey to Microservices  - the New World

Not the things…

Page 27: The Technical Journey to Microservices  - the New World

… the things that happen

Page 28: The Technical Journey to Microservices  - the New World

Systemic Properties

Page 29: The Technical Journey to Microservices  - the New World

Not what you have

Page 30: The Technical Journey to Microservices  - the New World

What you can do

with it

Page 31: The Technical Journey to Microservices  - the New World

The Big Challenge

Page 32: The Technical Journey to Microservices  - the New World

Some value Stability

Page 33: The Technical Journey to Microservices  - the New World

Some value Speed

Page 34: The Technical Journey to Microservices  - the New World

Some value Agility

Page 35: The Technical Journey to Microservices  - the New World

Some value Adaptability

Page 36: The Technical Journey to Microservices  - the New World

Some value Volatility

Page 37: The Technical Journey to Microservices  - the New World

Some value Antifragility

Page 38: The Technical Journey to Microservices  - the New World

Microservices (can) =Speed

AdaptabilityAntifragility

Page 39: The Technical Journey to Microservices  - the New World

How?

Page 40: The Technical Journey to Microservices  - the New World

How?

Page 41: The Technical Journey to Microservices  - the New World

Life Preservation

Page 42: The Technical Journey to Microservices  - the New World

Events.

Page 43: The Technical Journey to Microservices  - the New World

How?

Page 44: The Technical Journey to Microservices  - the New World

How?

Page 45: The Technical Journey to Microservices  - the New World
Page 46: The Technical Journey to Microservices  - the New World

VolumeVarietyVelocity

Page 47: The Technical Journey to Microservices  - the New World

VolumeVarietyVelocityVeracity

Page 48: The Technical Journey to Microservices  - the New World

Aggregates

Page 49: The Technical Journey to Microservices  - the New World

Views

Page 50: The Technical Journey to Microservices  - the New World
Page 51: The Technical Journey to Microservices  - the New World
Page 52: The Technical Journey to Microservices  - the New World
Page 53: The Technical Journey to Microservices  - the New World
Page 54: The Technical Journey to Microservices  - the New World

Downside?

Page 55: The Technical Journey to Microservices  - the New World

One more story…

Page 56: The Technical Journey to Microservices  - the New World

Build an app…

Page 57: The Technical Journey to Microservices  - the New World

The Todo list, for a Todo App

Page 58: The Technical Journey to Microservices  - the New World

“Create a beautiful looking app & web ui for interacting with

todo lists”

Page 59: The Technical Journey to Microservices  - the New World

“Write a back-end service that stores todo lists so that they can be made available across devices and the web.”

Page 60: The Technical Journey to Microservices  - the New World

“Write your todo-list tests to ensure things

function as you expect"

Page 61: The Technical Journey to Microservices  - the New World
Page 62: The Technical Journey to Microservices  - the New World

But…

Page 63: The Technical Journey to Microservices  - the New World

According to slide-theorists…

Page 64: The Technical Journey to Microservices  - the New World

But that’s waaaay too easy…

Page 65: The Technical Journey to Microservices  - the New World

40 slides in 2 minutes…

Page 66: The Technical Journey to Microservices  - the New World

Ready…?

Page 67: The Technical Journey to Microservices  - the New World

Set up source code control and an issue

tracker

Page 68: The Technical Journey to Microservices  - the New World

Manage user accounts, sign-up, sign-in, and

password management

Page 69: The Technical Journey to Microservices  - the New World

Collect analytics from your app and web ui about how people use

your app

Page 70: The Technical Journey to Microservices  - the New World

Build and test your app across multiple devices

and OS versions

Page 71: The Technical Journey to Microservices  - the New World

Gather information on app crashes and bugs and feed this back into

an issue backlog

Page 72: The Technical Journey to Microservices  - the New World

Test your web ui across multiple browsers and

versions

Page 73: The Technical Journey to Microservices  - the New World

Document the API that the native apps and web

app depend on

Page 74: The Technical Journey to Microservices  - the New World

Push client-side assets to CDNs and keep them up

to date

Page 75: The Technical Journey to Microservices  - the New World

Version your API so that you can evolve client apps and the backing service independently

Page 76: The Technical Journey to Microservices  - the New World

Implement rate limiting for requests

Page 77: The Technical Journey to Microservices  - the New World

Set up a CI service that monitors your repository for changes builds and

tests your software

Page 78: The Technical Journey to Microservices  - the New World

Set up a CD service that deploys new version of your software to your chosen deployment

platform

Page 79: The Technical Journey to Microservices  - the New World

Set up networking rules so that the components of your backend can see

each other and are protected from other

traffic

Page 80: The Technical Journey to Microservices  - the New World

Enable the components of your backend service

(e.g. the API implementation and

database) to find each other

Page 81: The Technical Journey to Microservices  - the New World

Ensure the service can survive failure of an AZ

Page 82: The Technical Journey to Microservices  - the New World

Monitor request latency

Page 83: The Technical Journey to Microservices  - the New World

Create new instances if existing ones fail, and

transparently reconnect service components

Page 84: The Technical Journey to Microservices  - the New World

Provide mechanisms to scale up and down

service capacity

Page 85: The Technical Journey to Microservices  - the New World

Trace requests all the way through the system

Page 86: The Technical Journey to Microservices  - the New World

Provide audit logs of all changes made to

production systems

Page 87: The Technical Journey to Microservices  - the New World

Set up an alerting mechanism for problems

in production

Page 88: The Technical Journey to Microservices  - the New World

Put in place a DR solution and test it

Page 89: The Technical Journey to Microservices  - the New World

Back up and recovery processes for data

Page 90: The Technical Journey to Microservices  - the New World

Create operational play books and test your plays

Page 91: The Technical Journey to Microservices  - the New World

Put in place automated failure testing (e.g. simians)

Page 92: The Technical Journey to Microservices  - the New World

Ensure service has no security weaknesses

(e.g. XSS)

Page 93: The Technical Journey to Microservices  - the New World

Monitor CVE reports for all components in your stack and replace as

soon as a vulnerability is found

Page 94: The Technical Journey to Microservices  - the New World

Devise deployment schemes for e.g. blue/

green, phased rollout, and rollback

Page 95: The Technical Journey to Microservices  - the New World

Collect logs from all components for analysis

Page 96: The Technical Journey to Microservices  - the New World

Enable marketing to run A/B and feature tests

Page 97: The Technical Journey to Microservices  - the New World

Monitor and visualise all of the above and ensure that things continue to

flow smoothly through the pipeline

Page 98: The Technical Journey to Microservices  - the New World

Package all of your application components in a form suitable for

deployment

Page 99: The Technical Journey to Microservices  - the New World

Manage stand up and tear down of dev and test

environments

Page 100: The Technical Journey to Microservices  - the New World

Page 101: The Technical Journey to Microservices  - the New World

…breathe…

Page 102: The Technical Journey to Microservices  - the New World

Page 103: The Technical Journey to Microservices  - the New World

And that’s before we get to…

Page 104: The Technical Journey to Microservices  - the New World

Service Configuration

Page 105: The Technical Journey to Microservices  - the New World

Service Discovery

Page 106: The Technical Journey to Microservices  - the New World

Bulkheads

Page 107: The Technical Journey to Microservices  - the New World

Circuit Breakers

Page 108: The Technical Journey to Microservices  - the New World

Event Stores

Page 109: The Technical Journey to Microservices  - the New World

Messaging

Page 110: The Technical Journey to Microservices  - the New World

CQRS

Page 111: The Technical Journey to Microservices  - the New World

Language Selection

Page 112: The Technical Journey to Microservices  - the New World

APIs

Page 113: The Technical Journey to Microservices  - the New World

API Gateways

Page 114: The Technical Journey to Microservices  - the New World

Lakes

Page 115: The Technical Journey to Microservices  - the New World

Routing

Page 116: The Technical Journey to Microservices  - the New World

Security

Page 117: The Technical Journey to Microservices  - the New World

Page 118: The Technical Journey to Microservices  - the New World

BREATHE!!!

Page 119: The Technical Journey to Microservices  - the New World

Page 120: The Technical Journey to Microservices  - the New World

And this is JUST the Technical Journey!

Page 121: The Technical Journey to Microservices  - the New World

WT*?!

Page 122: The Technical Journey to Microservices  - the New World
Page 123: The Technical Journey to Microservices  - the New World
Page 124: The Technical Journey to Microservices  - the New World

The real problem?

Page 125: The Technical Journey to Microservices  - the New World

The general problem…

Page 126: The Technical Journey to Microservices  - the New World
Page 127: The Technical Journey to Microservices  - the New World

d

Page 128: The Technical Journey to Microservices  - the New World

do

Page 129: The Technical Journey to Microservices  - the New World

bdo

Page 130: The Technical Journey to Microservices  - the New World

S

Page 131: The Technical Journey to Microservices  - the New World

Complexity of

Microservices

Page 132: The Technical Journey to Microservices  - the New World
Page 133: The Technical Journey to Microservices  - the New World

We can do better

Page 134: The Technical Journey to Microservices  - the New World

We can do much better

Page 135: The Technical Journey to Microservices  - the New World

We have done this before…

Page 136: The Technical Journey to Microservices  - the New World
Page 137: The Technical Journey to Microservices  - the New World
Page 138: The Technical Journey to Microservices  - the New World

Simplify Enterprise Java

Page 139: The Technical Journey to Microservices  - the New World

Simplify Microservices

Page 140: The Technical Journey to Microservices  - the New World

What can you do?

Page 141: The Technical Journey to Microservices  - the New World

www.leanpub.com/antifragilesoftware

Page 142: The Technical Journey to Microservices  - the New World

Get Involved!

Page 143: The Technical Journey to Microservices  - the New World

Thanks for your time!

@russmiles

russmiles.com