müssen es denn immer gleich docker und kubernetes sein?!
Post on 21-Jan-2018
83 Views
Preview:
TRANSCRIPT
Müssen es denn immer gleich Docker und Kubernetes sein?!
Michael Bruns
inovex GmbH
› 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
3Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
Use the right tool for the job...
...and use it wisely!
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
5Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
What did we build?
AuthRegistration PlayoutEPG Recording
Users Streaming
......
ThirdParty
...
› 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?
› 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?
› 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?
› ~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?
› Declarative definition of infrastructure
› Reproducible
› Local vs remote states
› Easily understable
10Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
Terraform
11Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
Terraform - Examples
12Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
Terraform - Examples
› 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
14Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
GitLab CI - Examples
15Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
GitLab CI - Examples
16Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
GitLab CI - Examples
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
18Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
So why didn’t we useDocker and Kubernetes?
› 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!
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
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
› 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
› 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
24Müssen es denn immer gleich Docker und Kubernetes sein?! - Michael Bruns
So everything is greatwithout Docker and Kubernetes?
› 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?
› 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?
› 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?
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!
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!
>><
<
Vielen Dank
Michael Bruns
inovex GmbH
Ludwig-Erhard-Allee 6
76131 Karlsruhe
michael.bruns@inovex.deTwitter: @der_miggel Feedback:
http://sayat.me/mbruns
top related