# Step into Orchestration: <!-- .element style="font-size: 100px" -->

---
# Agenda
- Demo
- Containers
- Container orchestration
- Kubernetes
- Kubernetes building blocks
- Kubernetes components
---
# Containers
--

--
## Why containers?
- Resources
- Self-contained apps
- Portability
- Security (?)
---
## Container orchestration
--
### Application anatomy
- Web server
- Application server
- Login service
- Profile service
- Comment service
- Database
--
### Pets vs cattle
 <!-- .element style="width: 140%;" -->
--
### Microservices
- Independent components
- Scale
- Upgrade
- Iterations
- Polyglot application stack
--
### Containers on scale
```bash
$ssh host1
host1# docker run container
$ssh host2
host2# docker run container
$ssh host3
host3# docker run container
```
Running containers on scale is a challenge.
--
### Container orchestration
- Container lifecycle management
- Load balancing
- Health checks
- Observability (logs, metrics, traces)
---
## Kubernetes
--
### Borg
- Kuberneted predecessor
- Developped at Google
https://kubernetes.io/blog/2015/04/borg-predecessor-to-kubernetes/
--
### What is Kubernetes?
Container orchestration **platform**
---
## Kubernetes building blocks
--
### Pods
- Group of containers
- Shared network space
- Smallest scalable unit
https://kubernetes.io/docs/concepts/workloads/pods/
--
### Deployments
- Rolling upgrades
- Desired state: how many replicas should be running of a given pod?
--
### Services
An abstract way to expose an application running on a set of Pods as a network service
https://kubernetes.io/docs/concepts/services-networking/service/
--
### Ingress
Set of rules to direct inbound traffic to services.
https://kubernetes.io/docs/concepts/services-networking/ingress/
---
## Kubernetes components
