Microservices at scale with docker and kubernetes - AMS JUG 2017
-
Upload
arjen-wassink -
Category
Technology
-
view
98 -
download
2
Transcript of Microservices at scale with docker and kubernetes - AMS JUG 2017
Bedankt voor jullie aandacht
“Once you stop learning, you start dying”- Albert Einstein
ARJEN WASSINKPrincipal Consultant
@ArjenWassink
The Menu1. Intro Microservices2. Intro Docker3. Kubernetes4. Rolling updates5. Persisted volumes6. Stateful services
4 Raspberry Pi 2BQuadcore 900MHz, 1GB RAM, 16GB SD-card
Pi Stack case
D-Link network switch
Anker USB power adapter
Nice white cables
Total Cost: +/- EUR 300
Martin Fowler on Microservices:
In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.
Microservices: advantages● The services themselves are very simple, focussing on doing
one thing well;● Each service can be built using the best and most appropriate
tool for the job;● Systems built in this way are inherently loosely coupled;● Multiple developers and teams can deliver relatively
independently of each other under this model;● They are a great enabler for continuous delivery, allowing
frequent releases whilst keeping the rest of the system available and stable.
Microservices: drawbacks
● Complex distributed systems● Diverse technology stack ● More software projects to manage● Reliability and performance● Exponentially more service instances to manage
http://www.zdnet.com/article/what-is-docker-and-why-is-it-so-darn-popular/
Virtual Machines vs. Containers
web browsers
BorgMaster
link shard
UI shardBorgMaster
link shard
UI shardBorgMaster
link shard
UI shardBorgMaster
link shard
UI shard
Scheduler
borgcfg web browsers
scheduler
Borglet Borglet Borglet Borglet
Config file
BorgMaster
link shard
UI shard
persistent store (Paxos)
Binary
Developer View
What justhappened?
Enter Kubernetes
Greek for “Helmsman”; also the root of the word “Governor”
• Container orchestrator
• Runs containers
• Supports multiple cloud and bare-metal environments
• Inspired and informed by Google’s experiences and internal systems
• Open source, written in Go
Manage applications, not machines
web browsers
Scheduler
kubectl web browsers
scheduler
Kubelet Kubelet Kubelet Kubelet
Config file
Kubernetes Master
Container Image
Developer View
What justhappened?
Pods, Replication sets & (auto)scaling
Pod
con-tainer
con-tainer
Deployment
Replication Set
Pod
con-tainer
con-tainer
Pod
con-tainer
con-tainer
Services
Pod
con-tainer
con-tainer
Service
Cluster IP:port <10.0.0.20:80>Node IP:port <10.150.42.191:88>
Pod
con-tainer
con-tainer
Pod
con-tainer
con-tainer
Loadbalancer
Kube Proxy
(IP Tables)
API server
Watches
Worker Node
Persistent Storage Node
Persistent VolumesPod
con-tainer
con-tainer
Persisted Volume
Persisted Volume ClaimPersisted Volume Mount