Skip to content

20180502_talk_1

20180502_talk_1

Adidas journey to k8s

1 - Context

1.1 - Origin

Adidas:
* A the time, IT mainly controlled by managers

Timeline
* Late 2013
* Asked to estimate cost
* Costed a lot
+ Because a LOT of MANUAL steps

1.2 - Docker

Docker cames
* Lets use it !
* Dev: Ubuntu: OK
* Prod: RHEL: KO

Current State:
* everything running through Puppet (Orchestrated)
* Worked but … weird usage

1.3 - K8s

July 2015: k8s v1.0
* Seems cool
* Need it for IT productivity
* How to embarq the company ?

Then Organization change (New CTO)
* New era
* Was time to go fast

2 - GiantSwarm collaboration

2.1 - Introduction

First, re-explain containers vs Docker marketing
* Containers are small VMs ! (no)
* You can run it anywhere (Hum … not magically)
* Want HA and everything

How we started (Adidas):
* A new strategy for new project (Based on OpenSouce, collaboration)
-> Change comes with culture first

GianSwarm
* K8s distribution

Adidas + GiantSwarm
* Sandbox cluster

2.2 - Enterprise grade

More than sandbox ?
* Security
* Backups
* Automation
* …

Adidas managed to create a group of users:
* who wanted changes
* who also understand this is a new platform, expect things to not run withou any issues

3 - The road to production

3.1 - 1st steps

Step:
* Took a store with little traffic (Finn)
* Deployed om k8s
* Shift some users
* + LoadTesting
-> FAILED

Invstigation
* Kube-proxy
* AWS network interface configuration was saturated
* LoadTesting team did too huge loadtest (Know your tools)

Fixed everythin, go prod

3.2 - 2nd steps

Go production:
* Flash sales
-> FAILED

Investigation
-> Not enought resources allocated to handle peak traffic

4 - Cluster strategy

Namespaces, Tenant, …

4.1 - Feedbacks

You have different teams, different speads, different workload
-> You can not put all together on the same cluster …

k8s Updates
* Hard to be inplace
* Impacts users
-> Give a cluster to each team
-> Give new cluster with upgrade

5 - Questions

Storage

It all depands your usage
-> Rook seems good for block storage
-> S3 API is good from app pov

Monitoring

Prometheus
* How many containers (Spinning rate)
* Diff between pods specs
* …