containers: don't skeu them up. use microservices instead

32
CONTAINERS: DON'T SKEU THEM UP USE MICROSERVICES INSTEAD Gordon Haff, Technology Evangelist, @ghaff, [email protected] William Henry, DevOps Strategy Lead, @ipbabble, [email protected] 14 July 2016

Upload: gordon-haff

Post on 17-Feb-2017

327 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Containers: Don't Skeu Them Up. Use Microservices Instead

CONTAINERS:DON'T SKEU THEM UPUSE MICROSERVICES INSTEAD

Gordon Haff, Technology Evangelist, @ghaff, [email protected]

William Henry, DevOps Strategy Lead, @ipbabble, [email protected]

14 July 2016

Page 2: Containers: Don't Skeu Them Up. Use Microservices Instead

CONTAINERS ARE

Software packaging concept thattypically includes an application/serviceand all of its runtime dependencies

Simplified management (plus packagingand orchestration) of a set of tools thathave existed within Linux for a long time

Portability across diverse environments

Isolated through a variety of Linuxfeatures

Page 3: Containers: Don't Skeu Them Up. Use Microservices Instead

CONTAINERS ISOL ATE WORKLOADS

BUT CONTAINERS ARE NOT

Server virtualization

Page 4: Containers: Don't Skeu Them Up. Use Microservices Instead

WHY SERVER VIRTUALIZATION HAPPENED

Mainstream hardware availability

Server consolidation

Cost reduction (remember dot-bomb?)

Minimal change to operational model

Page 5: Containers: Don't Skeu Them Up. Use Microservices Instead

VMS ARE PETSIndividuals

Scale-up

Long-lived

Monolithic

Nursed back to health

Page 6: Containers: Don't Skeu Them Up. Use Microservices Instead

A skeuomorph /ˈskjuːəmɔrf/ is a derivative objectthat retains ornamental design cues from structuresthat were necessary in the original. Examplesinclude pottery embellished with imitation rivetsreminiscent of similar pots made of metal and asoftware calendar that imitates the appearance ofbinding on a paper desk calendar.

Wikipedia

Page 7: Containers: Don't Skeu Them Up. Use Microservices Instead

THE CASE AGAINST SKEUOMORPHS

Page 8: Containers: Don't Skeu Them Up. Use Microservices Instead

SO DON'T DO THAT

Page 9: Containers: Don't Skeu Them Up. Use Microservices Instead

CONTAINERS AREFOR ANTSScale-out

Short-lived

Single-function

Component of a larger whole

Replacable

Less stateful

WARNING!

OVERSIMPLIFICATION ALERT!

Source: https://www.flickr.com/photos/pondapple/6502194585

Page 10: Containers: Don't Skeu Them Up. Use Microservices Instead

ENTER MICROSERVICES

Page 11: Containers: Don't Skeu Them Up. Use Microservices Instead

WHAT ARE MICROSERVICES?

TextText

http://martinfowler.com/articles/microservices.html

Page 12: Containers: Don't Skeu Them Up. Use Microservices Instead

ISN'T THIS JUST...

Source: TIBCO

Page 13: Containers: Don't Skeu Them Up. Use Microservices Instead
Page 14: Containers: Don't Skeu Them Up. Use Microservices Instead

IMPORTANT DIFFERENCES

Source: PWC

Lighter-weight communicationsprotocols

Improved understanding offunctional separation

More open source and vendor-neutral philosophies

Scale-out infrastructurestandardization and automation

Alignment with evolving practicessuch as DevOps

Page 15: Containers: Don't Skeu Them Up. Use Microservices Instead

AUTONOMOUS

Data and functionality exposed only throughservice calls over the network

Designed to be externalizable

No back-doors

Page 16: Containers: Don't Skeu Them Up. Use Microservices Instead

BOUNDED CONTEXT

Avoid having to know too much about thesurrounding services

Can be modified or updated independently

Should be robust in the face of changes toother services

Page 17: Containers: Don't Skeu Them Up. Use Microservices Instead

SMALL

Well-defined function

"Fits in your head"

Owned by a single cross-functional team

Organized around business capabilities(Conway's Law)

Source: Kathy CC/Flickr https://flic.kr/p/b9fFV

Page 18: Containers: Don't Skeu Them Up. Use Microservices Instead

SIGNS YOU MIGHTNEED MICROSERVICES

Having trouble coordinating function teams likeDBAs and UI engineers

Brittle apps. Minor changes cause majorbreakage

Your CICD process is bogged down by bigdeployments

Different teams keep reinventing the wheel (ingratuitously different ways)

Hard to experiment

Source: Daniel Pratts CC/flickr https://flic.kr/p/7RE6yc

Page 19: Containers: Don't Skeu Them Up. Use Microservices Instead

ADVANTAGES

Easier for teams to pick the right tool for the job

Easier for teams to pick an appropriate release cycle

Easier to build resiliency and scale-out

Easier to do updates and CICD

Potentially more scalable

Easier to do DevOps!

Source: KegRiver CC/flickr https://flic.kr/p/at2Jt2

Page 20: Containers: Don't Skeu Them Up. Use Microservices Instead

ON THE OTHER HAND

Source: CC/flickr https://www.flickr.com/photos/firstdown/2456119103

Architectural effort

Service boundaries

Communication overhead

Do you need it?

Page 21: Containers: Don't Skeu Them Up. Use Microservices Instead

NOT EVERYTHING IS AMICROSERVICECost of migrating existing apps

May not need the scale

Monoliths may be the first step even for cloudnative

Containerization has benefits even withoutmicroservices

Broader idea of twelve-factor apps

Evolutionary approaches often most practical

Source: Eric Fischer CC/flickr https://www.flickr.com/photos/walkingsf/4622376356E

Page 22: Containers: Don't Skeu Them Up. Use Microservices Instead

COMMON THREAD:

NEED TO RUN AS AN ORCHESTRATED(API-CENTRIC) SYSTEM

Source: CC/flickr https://www.flickr.com/photos/42931449 www.planetofsuccess.com/blog/

Page 23: Containers: Don't Skeu Them Up. Use Microservices Instead

EVERYONE IS SCALING

Not just unicorns and mammoths

Three main use cases:

Large scale workloads

Diverse workloads

Complex resource management

Source: Google

Page 24: Containers: Don't Skeu Them Up. Use Microservices Instead

WE HAVE "BIG" WORKLOADS

What scale?

A big cluster or many small ones?

Throughput?

Scheduling frequency?

How much availability required?

Source: Darth Vader

Page 25: Containers: Don't Skeu Them Up. Use Microservices Instead

WE HAVE DIVERSEWORKLOADS

Conventional or cloud native?

What type of workloads?

CI/CD (e.g. Jenkins)

Data analytics (e.g. Spark, Storm)

Batch (e.g. Chronos, Mesos)

Workflows

Containers (e.g. Kubernetes)

Single cluster sharing the workloads?

Page 26: Containers: Don't Skeu Them Up. Use Microservices Instead

WE NEED RESOURCEMANAGEMENTWhat policies are needed?

Compliance

Multi-tenancy

Dependency management

Avoiding repeated failures

Persistent volume services

Dynamic reservations

Page 27: Containers: Don't Skeu Them Up. Use Microservices Instead

HARD PARTS

Hardest is political/people

How do you test, deploy and manage?

Untangling existing apps and definingservice boundaries for new ones

Clusters and memory at scale

New availability mechanisms

Emergent behaviors

Source: Keith Allison CC/flickr https://flic.kr/p/abGcs9

Page 28: Containers: Don't Skeu Them Up. Use Microservices Instead

BRINGING IT ALL TOGETHER

Page 29: Containers: Don't Skeu Them Up. Use Microservices Instead

DEVELOPERS GET

Self-service

Multiple interaction models

Polyglot, multi-language support

xPaaS services

Immutable, container-based platform

Automation for application builds, deployments, scaling, andhealth management

Persistent storage option

Page 30: Containers: Don't Skeu Them Up. Use Microservices Instead

Text

PULLS TOGETHER OPEN SOURCEINNOVATION

Page 31: Containers: Don't Skeu Them Up. Use Microservices Instead

INTERLOCKING BROAD CHANGES

Page 32: Containers: Don't Skeu Them Up. Use Microservices Instead

THANK YOU!