29
KUBERNETES BEI CHEFKOCH BONN AGILE MEETUP

Kubernetes bei Chefkoch (Bonn Agile Meetup, 05/2016)

Embed Size (px)

Citation preview

KUBERNETES BEI CHEFKOCHBONN AGILE MEETUP

KUBERNETES BEI CHEFKOCH

WHO'S THAT GUY?

▸ Pascal Cremer

▸ Senior Developer bei Chefkoch (September 2015)

▸ DevOps by Heart

▸ Docker seit 2013, Kubernetes seit 2015

▸ @b00igzm

KUBERNETES BEI CHEFKOCH

MICROSERVICES BEI CHEFKOCH

▸ Chefkoch: Europas größte Internet-Plattform und Community rund ums Thema kochen

▸ Von 8 Kollegen in der IT Ende 2014 zu ca. 50 Kollegen im Mai 2016

▸ 6 agile, autonome Entwickler-Teams (Web, Mobile, BI)

▸ Anfang 2015: Modernisierung der alten, monolithischen Architektur hin zu einer modernen Microservice-orientierten Architektur

▸ Herbst 2015: Realisierung neuer Features ausschließlich als Microservices mit Docker und Kubernetes

▸ Heute: 15+ Microservices in Produktion auf sieben CoreOS Nodes

KUBERNETES!

KUBERNETES BEI CHEFKOCH

WAS IST KUBERNETES?

▸ Open Source Container Cluster Manager

▸ Entwickelt (und "dog fooded") von Google

▸ "Platform for automating deployment, scaling, and operations of application containers across clusters of hosts"

▸ (Quasi) Bleeding Edge (Version 1.0 im Juli 2015)

▸ kubelet ("Process Watcher"), API-Server + etcd & kubectl (CLI API-Client)

▸ Container agnostic: Docker, rkt, AppC

Pod

Pod

Pod

my-service

Service

?

my-service

Service

project: my-app

component: web

release: v1

project: my-app

component: web

my-service

my-service

my-app-rc

Replication Controller

KUBERNETES BEI CHEFKOCH

KUBERNETES, THE BASICS

▸ Pods, Services, Labels, Replication Controllers (...)

▸ Pods beinhalten einen oder mehr Container

▸ Container in einem Pod teilen sich eine IP-Adresse, können gemeinsame Volumens haben und sich über localhost finden

▸ Services bilden das "Frontend" zu einem oder mehr Pods, welche über Labels selektiert werden

▸ Services können innerhalb von Containern z.B. über skydns gefunden werden

▸ Replication Controller kümmern sich um die Replikation / Skalierung von Pods

KUBERNETES BEI CHEFKOCH

KUBERNETES, THE GOOD PARTS

▸ All Power to DevOps!

▸ Neue Umgebungen (Staging, End2End, usw.) können schnell "hochgezogen" werden

▸ Saubere Isolierung der Microservices durch Verwendung von Kubernetes Namespaces

▸ Lifecycle Hooks, Readiness/Liveness Probes, Image Pull Policies...

▸ Zero-Downtime Deployments durch Rolling Updates

▸ Einfache Canary Deployments durch die Verwendung von Labels für Application Pods

my-service

my-app-rc

my-service

my-app-v1-rc my-app-v2-rc

project: my-app

component: web

release: v2

project: my-app

component: web

release: v1

project: my-app

component: web

DEMO TIME!

RAINBOW POOPIN' UNICORN?

KUBERNETES BEI CHEFKOCH

KUBERNETES, THE BAD PARTS

▸ Steile Lernkurve

▸ Overhead für Entwickler (und Gegenwind vom Product-Management)

▸ Bleeding Edge: Bugs, Breaking Changes, spärliche Dokumentation und fehlende Features (kubectl wait, volumes-from, Templates)

▸ Nur bedingt als lokale Dev-Umgebung geeignet, da sehr "teuer" in Sachen Ressourcen (CPU, Memory)

▸ Cluster Updates sind aktuell noch eine größere Herausforderung

▸ "Selbst gestrickte" Lösungen notwendig für z.B. Logging, Monitoring, verteiltes Dateisystem usw.

FRAGEN?

VIELEN DANK!

DEMO REPO https://github.com/b00giZm/k8-rolling-demo