Slide 1

Slide 1 text

Manage the App on Kubernetes Brandon Philips CTO, CoreOS Inc. @brandonphilips

Slide 2

Slide 2 text

Goal: make apps easier to… Build Deploy Operate Upgrade Decommission

Slide 3

Slide 3 text

Goal: make apps easier to… Build Deploy Operate Upgrade Decommission with minimum toil

Slide 4

Slide 4 text

“ It is a confusion of ideas to suppose that the economical use of fuel is equivalent to diminished consumption. The very contrary is the truth. - William Stanley Jevons

Slide 5

Slide 5 text

When something is readily available: Growth

Slide 6

Slide 6 text

Managing lots of apps you need to know... What apps types exist? Versions? What app instances are deployed? How many? Where? What is the app instance health? How much does it cost? Who are the app owners? Who gets paged? What CI pipelines associate with each app?

Slide 7

Slide 7 text

Pre-Kubernetes State Scripts App Binaries Production CI/CD CI/CD CI/CD

Slide 8

Slide 8 text

Pre-Kubernetes State Scripts App Binaries Production CI/CD CI/CD CI/CD ?? ? ?

Slide 9

Slide 9 text

Manifests Containers Production Current State CI/CD CI/CD CI/CD

Slide 10

Slide 10 text

Manifests Containers Production Current State CI/CD CI/CD CI/CD ?? ? ?

Slide 11

Slide 11 text

Current State Owners Dashboards Docs Internal Wiki Spreadsheet Tribal Knowledge Metrics & SLAs --------- 19% --------- --------- 106% --------- --------- 94.8% 36.6 ---------------------

Slide 12

Slide 12 text

Manifests Containers Future State App Version CI/CD CI/CD v1.0.0

Slide 13

Slide 13 text

App Version v1.0.0 App Catalog v1.0.0 v0.9.0 v0.8.0 Future State CI/CD CI/CD

Slide 14

Slide 14 text

App Version v1.0.0 App Catalog v1.0.0 v0.9.0 v0.8.0 Future State Instances Dev v1.0.0 Prod v0.8.0 CI/CD

Slide 15

Slide 15 text

App Version v1.0.0 App Catalog v1.0.0 v0.9.0 v0.8.0 Future State Dev v1.0.0 Prod v1.0.0 Pentest v0.8.0 Debug v0.9.0

Slide 16

Slide 16 text

Future State Kubernetes Resources Owners Dashboards Docs Metrics & SLAs --------- 19% --------- --------- 106% --------- --------- 94.8% 36.6 ---------------------

Slide 17

Slide 17 text

Demo

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Create a shared toolkit App Catalog App Types App Versions App Instance kind: CatalogEntry metadata: name: vault-operator.0.1.3 spec: displayName: Vault install: strategy: deployment version: 0.1.3 maintainers: - email: [email protected] name: CoreOS, Inc ...

Slide 20

Slide 20 text

Create a shared toolkit App Catalog App Types App Versions App Instance kind: InstallPlan metadata: name: vault-operator.0.1.3-qkmz0 namespace: default spec: approval: Automatic clusterServiceVersionNames: - vault-operator.0.1.3 status: phase: Complete

Slide 21

Slide 21 text

Wait, what about... Kubernetes YAML Kubernetes Deployments Helm Charts Helm Deployments Operators Ksonnet packages Ksonnet registries Kubecfg Koki Metaparticle Solving Good Problems!

Slide 22

Slide 22 text

Can we answer these questions consistently? What apps types exist? Versions? What app instances are deployed? How many? Where? What is the app instance health? How much does it cost? Who are the app owners? Who gets paged? What CI pipelines associate with each app?

Slide 23

Slide 23 text

First Step: App Labels Define a set of well-known labels for grouping Kubernetes resources related to an application. See App-Def Working Group Think and Discuss This is a big problem space. Try out the tools that exist today, reflect on your own workflows, discuss. Join SIG Apps

Slide 24

Slide 24 text

Come Chat @ CoreOS Booth Open Cloud Service Catalog: Prometheus, etcd, Vault Chargeback and Application Accounting Application Lifecycle Management Try out CoreOS Tectonic: coreos.com/tectonic