Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo

1

Continuous Delivery of Micro services
with Kubernetes
27-2-2017 – Quintor

2

Bedankt voor jullie aandacht
“Once you stop learning, you start dying”
- Albert Einstein
ARJEN WASSINK
Principal Consultant
a.wassink@quintor.nl
@ArjenWassink

3

The Menu
1. Intro Microservices
2. Intro Docker
3. Kubernetes
4. Rolling updates
5. Persisted volumes
6. Stateful services

4

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.

5

Microservices: Scaling is important
https://www.nginx.com/blog/introduction-to-microservices/

6

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.

7

Microservices: drawbacks
● Diverse technology stack
● Complex distributed systems
● More software projects to manage
● Reliability and performance
● Exponentially more service instances to manage

8

Build Ship Run

9

http://www.zdnet.com/article/what-is-docker-and-why-is-it-so-darn-popular/
Virtual Machines vs. Containers

10

Docker - Layering
https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/

11

https://docs.docker.com/engine/introduction/understanding-docker/
Docker - Architecture

12

Microservices: drawbacks
● Diverse technology stack
○ Containerization freedom of technology choice
○ Uniform way of distributing and running apps
● Complex distributed systems
● More software projects to manage
● Reliability and performance
● Exponentially more service instances to manage

13

Docker at scale with Kubernetes

14

Everything at Google
runs in containers
Launch over 2 billion
containers per week.

15

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

16

web browsers
Scheduler
kubectl web browsers
scheduler
Kubelet Kubelet Kubelet Kubelet
Config
file
Kubernetes Master
Container
Image
Developer View
What just
happened?

17

Pods, Replication sets & scaling
Pod
con-
tainer
con-
tainer
Deployment
Replication Set
Pod
con-
tainer
con-
tainer
Pod
con-
tainer
con-
tainer

18

Kubernetes - Architecture
https://en.wikipedia.org/wiki/Kubernetes

19

Worker Node
192.168.178.200
10.1.2.0/24
Worker Node
192.168.178.100
10.1.1.0/24
Cluster networking
Pod
10.1.1.21
Pod
10.1.1.22
Pod
10.1.1.20
Pod
10.1.2.31
Pod
10.1.2.32
Pod
10.1.2.30

20

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

21

Worker Node
Persistent Storage Node
Persistent Volumes
Pod
con-
tainer
con-
tainer
Persisted Volume
Persisted Volume Claim
Persisted Volume Mount

22

Continuous delivery of microservices with kubernetes - Quintor 27-2-2017

23

Microservices: drawbacks
● Diverse technology stack
● Complex distributed systems
○ Service discovery helps
● More software projects to manage
● Reliability and performance
○ Manages availability actively
● Exponentially more service instances to manage
○ Manage instances from code

24

Stateful Set
Pod-1
con-
tainer
con-
tainer
Statefull Set Pod-0
con-
tainer
con-
tainer
Pod-2
con-
tainer
con-
tainer
Service

25

Quintor
Deploying without downtime
• Rolling updates
• Rollback
• Readiness Probes

26

Worker Node
Namespaces
PodDeployment Pod
Service
PodDeployment Pod
Service
Worker Node

27

Kubernetes - Centralized Logging

28

Kubernetes - Centralized Monitoring

29

Continuous delivery of microservices with kubernetes - Quintor 27-2-2017

30

Microservices: drawbacks
● Diverse technology stack
● Complex distributed systems
● More software projects to manage
○ Namespaces enables multiple projects
● Reliability and performance
○ Stateful Sets enables persistence clusters
○ Active health monitoring and resource limiting
● Exponentially more service instances to manage
○ Centralized monitoring and logging

31

Quintor
Resources
• Docker - Build, Ship, and Run Any App, Anywhere – www.docker.com
• Kubernetes - Accelerate Your Delivery – kubernetes.io
• Creating a Raspberry Pi cluster running Kubernetes –
tinyurl.com/rpi-k8s-cluster
@ArjenWassink

More Related Content

Continuous delivery of microservices with kubernetes - Quintor 27-2-2017