CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can...
Transcript of CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can...
![Page 1: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/1.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/2.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/3.jpg)
CONTAINERS ISOL ATE WORKLOADS
BUT CONTAINERS ARE NOT
Server virtualization
![Page 4: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/4.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/5.jpg)
VMS ARE PETSIndividuals
Scale-up
Long-lived
Monolithic
Nursed back to health
![Page 6: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/6.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/7.jpg)
THE CASE AGAINST SKEUOMORPHS
![Page 8: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/8.jpg)
SO DON'T DO THAT
![Page 9: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/9.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/10.jpg)
ENTER MICROSERVICES
![Page 11: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/11.jpg)
WHAT ARE MICROSERVICES?
TextText
http://martinfowler.com/articles/microservices.html
![Page 12: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/12.jpg)
ISN'T THIS JUST...
Source: TIBCO
![Page 13: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/13.jpg)
![Page 14: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/14.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/15.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/16.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/17.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/18.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/19.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/20.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/21.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/22.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/23.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/24.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/25.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/26.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/27.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/28.jpg)
BRINGING IT ALL TOGETHER
![Page 29: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/29.jpg)
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 · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/30.jpg)
Text
PULLS TOGETHER OPEN SOURCEINNOVATION
![Page 31: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/31.jpg)
INTERLOCKING BROAD CHANGES
![Page 32: CONTAINERS: DON'T SKEU THEM UP · Avoid having to know too much about the surrounding services Can be modified or updated independently Should be robust in the face of changes to](https://reader035.fdocuments.net/reader035/viewer/2022071218/6053dc609158e43a306cffc5/html5/thumbnails/32.jpg)
THANK YOU!