Enabling DevOps with Kubernetes

Post on 23-Jan-2018

212 views 1 download

Transcript of Enabling DevOps with Kubernetes

Enabling DevOps with Kubernetes

www.container-solutions.com | info@container-solutions.com

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

www.container-solutions.com | info@container-solutions.com

Enabling DevOps?!?

www.container-solutions.com | info@container-solutions.com

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...

www.container-solutions.com | info@container-solutions.com

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, ...

WAR

RPM

GEM

EXE

OS

Libraries

JVM

Application Server

WAR

+ Monitoring+ Scaling+ Redundancy+ Resource mgnt

Operations stand in the way of releases

www.container-solutions.com | info@container-solutions.com

Microservices!!!

Main Page

(NodeJs)

SSO (Java)

User Data

(Java)

Reservations

(Ruby)

Log Aggergati

on

Reservation Page

(NodeJs)

Session (Redis)

www.container-solutions.com | info@container-solutions.com

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

www.container-solutions.com | info@container-solutions.com

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

manifestmanifest

Reservations

Redis

Microservice Platform

Platform

Main page

Uniform deliverables Runtime application platform

manifest

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

A new Buzzword!

Cloud Native Computing

Why Docker?

Local development made easy

Golden image principle to build on others’ work

Lighter at build, lighter at runtime

Reservations

Redis

Main page

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.

www.container-solutions.com | info@container-solutions.com

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

www.container-solutions.com | info@container-solutions.com

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

Demo Time!

Fontend Backend DB

MiniKube

Demo Time!

Fontend

Backend

DB

Ádám Sándor@adamsand0r