Müssen es denn immer gleich Docker und Kubernetes sein?!

30
Müssen es denn immer gleich Docker und Kubernetes sein?! Michael Bruns inovex GmbH

Transcript of Müssen es denn immer gleich Docker und Kubernetes sein?!

Page 1: Müssen es denn immer gleich Docker und Kubernetes sein?!

Müssen es denn immer gleich Docker und Kubernetes sein?!

Michael Bruns

inovex GmbH

Page 2: Müssen es denn immer gleich Docker und Kubernetes sein?!

› I’m perfectly fine with using Docker or Kubernetes

› Really!

› The same goes for Docker Swarm, Rocket, Rancher, …

› No kidding!

› I just like to use the right tool for the job in a proper way

2Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

Disclaimer

Page 3: Müssen es denn immer gleich Docker und Kubernetes sein?!

3Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

Use the right tool for the job...

...and use it wisely!

Page 4: Müssen es denn immer gleich Docker und Kubernetes sein?!

4Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

Please allow me to introduce myself:

› Software developer, architect, ...

› AWS fanboy

› Built quite a bit of waipu.tv

› http://sayat.me/mbruns

Michael Bruns

inovex GmbH

Page 5: Müssen es denn immer gleich Docker und Kubernetes sein?!

5Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

What did we build?

AuthRegistration PlayoutEPG Recording

Users Streaming

......

ThirdParty

...

Page 6: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Don’t build a platform, use one - in our case: AWS

› Use what’s already there: EC2, RDS, S3, Elasticsearch, Kinesis, Route53, Lambda ...

› Add shared stuff (e.g. JVM, nginx) to base image (AMI)

› Leave the rest to the services

6Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

How did we build it?

Page 7: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Foster DevOps, i.e. tear down all political and technological barriers

› Choose the right tool for the job:Terraform, GitLab CI, Prometheus, …

› Make infrastructure reproducible

7Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

How did we build it?

Page 8: Müssen es denn immer gleich Docker und Kubernetes sein?!

› 50+ EC2 instances, 25+ Auto-Scaling Groups,25+ ELBs, 75+ Security Groups

› ~30m objects / 3+ TB in S3 Buckets

› ~60m documents stored in Elasticsearch

› 50+ Git Repositories with GitLab CI

8Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

What did we use?

Page 9: Müssen es denn immer gleich Docker und Kubernetes sein?!

› ~10 Lambdas (growing a lot)

› 5 PostgreSQL databases, 6 Redis Caches

› 75+ DNS entries

› Java, JS, Clojure (and some Ruby, Lua, Go, …)

› ~15 people working in 5+ locations

9Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

What did we use?

Page 10: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Declarative definition of infrastructure

› Reproducible

› Local vs remote states

› Easily understable

10Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

Terraform

Page 11: Müssen es denn immer gleich Docker und Kubernetes sein?!

11Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

Terraform - Examples

Page 12: Müssen es denn immer gleich Docker und Kubernetes sein?!

12Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

Terraform - Examples

Page 13: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Continuous Integration & Deployment

› Pipelines

› Stages, Environments, Variables, Tags, …

› Easy integration of runners

13Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

GitLab CI

Page 14: Müssen es denn immer gleich Docker und Kubernetes sein?!

14Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

GitLab CI - Examples

Page 15: Müssen es denn immer gleich Docker und Kubernetes sein?!

15Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

GitLab CI - Examples

Page 16: Müssen es denn immer gleich Docker und Kubernetes sein?!

16Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

GitLab CI - Examples

Page 17: Müssen es denn immer gleich Docker und Kubernetes sein?!

17Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

The whole pipeline

Local GitRepo

GitLabRepo

GitLab CI Build(Gradle,

Leiningen, …)

GitLab CIDeployment

(Terraform)

Dev

GitLab CIDeployment(Terraform)

GitLab CIDeployment(Terraform)

Preview Prod

auto auto

manually manually

GitLab CITests

auto

GitLab CITests

auto

Page 18: Müssen es denn immer gleich Docker und Kubernetes sein?!

18Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

So why didn’t we useDocker and Kubernetes?

Page 19: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Which problem are you actually trying to solve?

› Will Docker and/or Kubernetes really stop you from making the same old mistakes?

› Don’t you want to avoid complexity and get going?

› Is it really the platform you want to start with?

19Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

Don’t put the cart before the horse!

Page 20: Müssen es denn immer gleich Docker und Kubernetes sein?!

20Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

The Turducken - Creation

http://www.seriouseats.com/2012/11/the-food-lab-the-ulimate-turducken.html

Page 21: Müssen es denn immer gleich Docker und Kubernetes sein?!

21Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

The Turducken - Result

http://www.seriouseats.com/2012/11/the-food-lab-the-ulimate-turducken.html

Page 22: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Kubernetes & Docker is a cloud in the cloud

› It adds several layers of abstraction

› It takes an experienced person to handle it

› You should prepare the interior first, and add the outer layers when you know how the interior works

22Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

The Turducken - Analogy

Page 23: Müssen es denn immer gleich Docker und Kubernetes sein?!

› We know how the interior works

› We have loosely coupled services

› We know which load to expect, how many customers to expect, we have a working deployment pipeline, ...

› Maybe we should start using Kubernetes now after all?!

23Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

The Turducken - Conclusion

Page 24: Müssen es denn immer gleich Docker und Kubernetes sein?!

24Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

So everything is greatwithout Docker and Kubernetes?

Page 25: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Real-life conversation from another project:

› Manager: “We need Microservices!”

› Me: “Ok. Why?”

› Manager: “Err…”

› Me: “Did you at least talk to Dev and Ops?”

› Manager: “Err…”

25Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

When to consider a platform right away?

Page 26: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Real-life conversation from another project:

› Me: “Can we operate the VMs with our team?”

› Manager: “No, the Ops team does that.”

› Me: “Can we shift people from the Ops team to our team?”

› Manager: “No.”

› Me: “Ok… Then I need to talk to the Ops team.”

› Manager: “You can’t, they’re too busy with their roadmap.”

26Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

When to consider a platform right away?

Page 27: Müssen es denn immer gleich Docker und Kubernetes sein?!

› Real-life conversation from another project:

› Me: “We need two small VMs, one per data center.”

› Ops: “We don’t do it that way. You’ll get three perdata-center, 64 GB RAM and 6 CPUs each.”

› Me: “What?! Well, alright... Is it possible to get themby this afternoon?”

› Ops: “Nah, average delivery time is eight weeks.”

27Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

When to consider a platform right away?

Page 28: Müssen es denn immer gleich Docker und Kubernetes sein?!

28Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

Tools will not fix your people issues!

Thanks to @IanDCrosby for the inspiration!

Page 29: Müssen es denn immer gleich Docker und Kubernetes sein?!

29Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns

One final note...

Both lines have the same length ?

Don’t believe anything just because it’s written on a slide!

Thanks to @danielbryantuk for the inspiration!

>><

<

Page 30: Müssen es denn immer gleich Docker und Kubernetes sein?!

Vielen Dank

Michael Bruns

inovex GmbH

Ludwig-Erhard-Allee 6

76131 Karlsruhe

[email protected]: @der_miggel Feedback:

http://sayat.me/mbruns