Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
•
1 like•892 views
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It groups containers that make up an application into logical units for easy management and discovery. Kubernetes can deploy containerized applications as microservices and provide mechanisms to update them without downtime using techniques like rolling updates. It also provides tools for service discovery, load balancing, storage orchestration, auto-scaling, self-healing, and more.
1 of 31
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
More Related Content
Continuous delivery of microservices with kubernetes - Quintor 27-2-2017
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.
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
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
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
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
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