+ All Categories
Home > Documents > The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev...

The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev...

Date post: 04-Oct-2020
Category:
Upload: others
View: 9 times
Download: 0 times
Share this document with a friend
116
Brandon Philips @brandonphilips | [email protected] The Journey to #GIFEE Intro to the Open Source
Transcript
Page 1: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Brandon Philips@brandonphilips | [email protected]

The Journey to #GIFEEIntro to the Open Source

Page 2: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Secure the InternetMISSION

Page 3: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Separate Apps from OSSTRATEGY

Page 4: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Make Servers ConsistentSTRATEGY

Page 5: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Tolerate Machine FailuresSTRATEGY

Page 6: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Make Servers Easy to UpgradeSTRATEGY

Page 7: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Simplify Application UpgradesSTRATEGY

Page 8: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 9: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 10: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 11: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 12: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 13: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 14: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

3Application packaging

Clustering

Linux at scale

Page 15: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

#GIFEE

Borg/OmegaLinux

Chubby

Page 16: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

#GIFEE

Borg/OmegaLinux

Chubby

Page 17: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

#GIFEE

Borg/OmegaLinux

Chubby

Page 18: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Avoid single points of failure

Design for constant updates

Consistent environment

Why build #GIFEE?

Page 19: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Why build #GIFEE?

Design for constant updates

Page 20: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Application Packaging1

Page 21: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Abstract away app from the OS

OS App

Page 22: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 23: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 24: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Base software managed by CoreOS

kernel systemd OpenSSH

Page 25: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Protect apps from each other

Isolated network namespace

Isolated file system namespace

Mixed versions of dependencieseg. python 3.4 & python 2.7

Page 26: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ sudo rkt run coreos.com/etcd:v2.0.0

$ sudo rkt run coreos.com/etcd:v2.0.0 \ --cpu=750m --memory=128M

$ sudo rkt run --net=host coreos.com/etcd:v2.0.0

rkt run

Page 27: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Search container metadata

Identify vulnerabilities

Explain update actions

Clair container security auditing

Page 28: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

After scanning millions of containers we found that over 80% still had Heartbleed

80%

Clair container security auditing

Page 29: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 30: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

In-ProgressUniversal Container Format

Packaged Downloaded Verified

Page 31: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Linux at Scale2

Page 32: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Patches to the OS and kernel are hard

Retest after updatesNo automation

SECURITY

Dependency breakageUptime risk

APPLICATION

Page 33: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 34: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Auto-updating browsers fixed securityWe got HTML5 at the same time

Page 35: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Atomic operating system updates

Page 36: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Atomic operating system updates

Page 37: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Clustering3

Page 38: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Patches to the OS and kernel are hard

Retest after updatesNo automation

SECURITY

Dependency breakageUptime risk

APPLICATION

Page 39: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Patches to the OS and kernel are hard

No automation

SECURITY

Uptime risk

APPLICATION

Page 40: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Operations Paradise

Easy scale out

Painless app upgrades

Tolerant of machine failure

Page 41: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 6,000App Healthy: True

Page 42: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 6,000App Healthy: True

Page 43: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 7,000App Healthy: True

Page 44: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 45: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 7,000App Healthy: True

Page 46: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 6,000App Healthy: True

Page 47: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 48: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 7,000App Healthy: True

Page 49: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 50: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 51: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 52: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

When do you needcluster coordination?

Leader election Cluster-wide Semaphores

Service discoveryDynamic configuration

Page 53: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Hard Computer Science Problem

?

Page 54: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Hard Computer Science Problem

Chubby

Page 55: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

A highly-available key value store for shared configuration and service discovery

Page 56: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 57: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 58: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 59: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 60: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 61: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 62: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 63: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

No existing “cloud native” solutions

Simple HTTP + JSON APIs

Dynamic reconfiguration

Why build etcd?

Page 64: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Simple key/value

“Distributed etc”

Keys are versioned

Changes can be watch

Page 65: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Cluster-wide reboot lock - locksmith

Service discovery - vulcand, skydns

Cluster orchestration - k8s, cloud foundry

Page 66: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Industry Adoption

500+ projects on Github

Page 67: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

When do you needcluster coordination?

Leader election Cluster-wide Semaphores

Service discoveryDynamic configuration

Page 68: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Hard Computer Science Problem

?

Page 69: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Hard Computer Science Problem

Chubby

Page 70: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

A highly-available key value store for shared configuration and service discovery

Page 71: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Kubernetes is our choice fororchestration platform

Page 72: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 73: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 74: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 75: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

App Req/sec: 8,000App Healthy: True

Page 76: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Guides & Tools

coreos.com/kubernetes

kube-aws

Cloud-configs

Page 77: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Scheduler gets work to the servers

Page 78: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ scp app host:/opt$ ssh host systemd-run /opt/app

Page 79: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ scp app host:/opt$ ssh host systemd-run /opt/app

Page 80: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ fab deploy:app

Page 81: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ fab deploy:app

Page 82: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ fab deploy:app

Page 83: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ fab deploy:gpu-app

Page 84: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ fab deploy:gpu-app

Page 85: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

$ fab deploy:gpu-app

Page 86: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Replication controllers drive the cluster to a desired state

Page 87: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podenv=prodapp=web

podenv=prodapp=web

podenv=prodapp=web

rc web-prodselect(env=prod,app=web)count=1

Page 88: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podenv=prodapp=web

podenv=prodapp=web

podenv=prodapp=web

rc web-prodselect(env=prod,app=web)count=1

Page 89: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podenv=prodapp=web

rc web-prodselect(env=prod,app=web)count=1

Page 90: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podenv=prodapp=web

rc web-prodselect(env=prod,app=web)count=5

Page 91: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podenv=prodapp=web

podenv=prodapp=web

podenv=prodapp=web

podenv=prodapp=web

podenv=prodapp=web

rc web-prodselect(env=prod,app=web)count=5

Page 92: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Services find scheduled apps (pods) and load balance them

Page 93: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podenv=devapp=web

podenv=testapp=web

podenv=prodapp=web

Page 94: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podenv=devapp=web

podenv=testapp=web

podenv=prodapp=web

service test.example.comselect(env=dev,app=web)

service beta.example.comselect(env=test,app=web)

ORselect(env=prod,app=web)

service example.comselect(env=prod,app=web)

Page 95: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podenv=testapp=web

podenv=prodapp=web

podenv=prodapp=web

podenv=devapp=web

podenv=testapp=web

podenv=prodapp=web

service test.example.comselect(env=dev,app=web)

service beta.example.comselect(env=test,app=web)

ORselect(env=prod,app=web)

service example.comselect(env=prod,app=web)

Page 96: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podapp=foo,version=1

service foo.cluster.localselect(app=foo)

Page 97: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podapp=foo,version=1

podapp=foo,version=2

service foo.cluster.localselect(app=foo)

Page 98: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

podapp=foo,version=1

podapp=foo,version=2

service foo.cluster.localselect(app=foo)

Page 99: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Upstream

rktnetes

Auth/OIDC

Node self-signed TLS

Page 100: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Scaling

15x scheduler performance

30k pods on 1k nodes

SIG-scale

Page 101: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

3Application packaging

Clustering

Linux at scale

Page 102: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Sounds good, but...

Is anyone successful with all this in prod?

Page 103: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Publically traded options exchange

Page 104: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Containers on CoreOS are powering ISE's high-throughput, low-latency financial exchange

Running in production

Bare metal & AWS

Billions of transactions a day

150 million req/sec

Page 105: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 106: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Secure the InternetMISSION

Page 107: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Separate Apps from OSSTRATEGY

Page 108: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Make Servers ConsistentSTRATEGY

Page 109: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Tolerate Machine FailuresSTRATEGY

Page 110: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Make Servers Easy to UpgradeSTRATEGY

Page 111: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Simplify Application UpgradesSTRATEGY

Page 112: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 113: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

coreos.com/fest - @coreosfestMay 9 & 10, 2016 - Berlin, Germany

Page 114: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev
Page 115: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Build, Store and Distribute your Containers

quay.io

Page 116: The Journey to #GIFEEpod env=test app=web pod env=prod app=web pod env=prod app=web pod env=dev app=web pod env=test app=web pod env=prod app=web service test.example.com select(env=dev

Thank you!

Brandon Philips@brandonphilips | [email protected] | coreos.com

We’re hiring in all departments! Email: [email protected] Positions: coreos.com/ careers


Recommended