enabling devops with kubernetes

19
Enabling DevOps with Kubernetes

Upload: container-solutions

Post on 23-Jan-2018

208 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Enabling DevOps with Kubernetes

Enabling DevOps with Kubernetes

Page 2: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

About me

Java/JS/PHP/C++ developer for ±15 yearsTurned to the DarkOps side

Interest in technologies allowing developer-friendly operationsCommunity & ConferencesDOOM Enthusiast

Ádám Sándor (@adamsand0r)Engineer & Consultant at Container Solutions Amsterdam

Page 3: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

Enabling DevOps?!?

Page 4: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

Origins of DevOps

Ops team has different skill set and vocabulary than Dev teams

Has to manage increasingly complex software

Dev wants change - Ops wants stability

Business wants both...

Page 5: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

Origins of DevOps

Benjamin Treynor Sloss rethinks operations at Google -> SRE

Ops becomes development team for operations software

Use automation to scale with increasing application complexity

Popular tools emerge: Puppet, Chef, Ansible, ...

Page 6: Enabling DevOps with Kubernetes

WAR

RPM

GEM

EXE

OS

Libraries

JVM

Application Server

WAR

+ Monitoring+ Scaling+ Redundancy+ Resource mgnt

Operations stand in the way of releases

Page 7: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

Microservices!!!

Main Page

(NodeJs)

SSO (Java)

User Data

(Java)

Reservations

(Ruby)

Log Aggergati

on

Reservation Page

(NodeJs)

Session (Redis)

Page 8: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

Microservices!!!

Aimed at increasing team velocity and compartmentalising change

Daily releases to production

Exploding number of components

Tying together application components pushed to Ops

Old tooling can’t keep up with exploding complexity

Page 9: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

Microservice Platform

Add another layer of abstraction

Encode best practicesImmutable artifacts - rely on your build pipelineDynamic runtime - scale with usage, restart if dies

Add servicesMonitoring, Log aggregation, Isolation, Service Discovery, Load Balancing,Zero Downtime Deployments

Page 10: Enabling DevOps with Kubernetes

manifestmanifest

Reservations

Redis

Microservice Platform

Platform

Main page

Uniform deliverables Runtime application platform

manifest

Page 11: Enabling DevOps with Kubernetes

manifestmanifest

Reservations

Redis

Dev Ops

Platform

Main page

manifest

Deliver production-ready softwareOwn all environmentsDeploy without involving Ops team

Keep the platform up and running

Page 12: Enabling DevOps with Kubernetes

A new Buzzword!

Cloud Native Computing

Page 13: Enabling DevOps with Kubernetes

Why Docker?

Local development made easy

Golden image principle to build on others’ work

Lighter at build, lighter at runtime

Reservations

Redis

Main page

Page 14: Enabling DevOps with Kubernetes

Why Kubernetes?

Most advanced & mature orchestrator

Manages different types of workloads with built-in primitives

Create environments in seconds - namespace isolation

Runs on any cloud & bare metal

Open-source with the CNCF behind it

Excluding merges, 159 authors have pushed 577 commits to master and 662 commits to all branches. On master, 1,504 files have changed and there have been104,684 additions and 26,727 deletions.

Page 15: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

Kubernetes - physical view

Master

Node Node Node

api-servercontroller-managerscheduleretcd

Nodekubeletkube-proxy

RedisMain page

Main page

Main page

RedisReservations Redis

kubeletkube-proxy

kubeletkube-proxy

kubeletkube-proxy

Page 16: Enabling DevOps with Kubernetes

www.container-solutions.com | [email protected]

Kubernetes - logical view

Deployment[front-end]

ReplicaSet3x [front-end]

Pod[front-end]

Servicehttp://front-end

Autoscaler (HPA)[3 - 20] instances

Pod[front-end]

Pod[front-end]

StatefulSet DaemonSet

BatchJob

Page 17: Enabling DevOps with Kubernetes

Demo Time!

Fontend Backend DB

Page 18: Enabling DevOps with Kubernetes

MiniKube

Demo Time!

Fontend

Backend

DB

Page 19: Enabling DevOps with Kubernetes

Ádám Sándor@adamsand0r