# Introduction

## What is Kubernetes

* Kubernetes (k8s) - popular container orchestrator
* Container orchestration - make many servers act like one
* Released by Google in 2015, maintained by large community
* Runs on top of Docker (usually) as a set of APIs in containers
* Provides API / CLI to manage containers across servers
* Many clouds provide it for you
* Many vendors make a "distribution" of it

## Why Kubernetes

* Orchestration: Next logical step in journey to a faster DevOps
* First, understand why you *may* need orchestration, as not every solution needs orchestration
* Number of servers + change rate = benefits of orchestration
* Then, decide which orchestrator
* If Kubernetes, decide which distribution
  * cloud or self-managed (Docker Enterprise, Rancher, OpenShift, Canonical, VMWare PKS)
  * don't usually need pure upstream version of k8s from Github

## Kubernetes or Swarm

* Kubernetes and Swarm are both container orchestrators
* Boths are solid platforms with vendor backing
* Swarm: easier to deploy / manage
* Kubernetes: More features and more flexibility
* Understand both and know your requirements

### Advantages of Swarm

* Comes with Docker, single vendor platform
* Easiest orchestrator to deploy / manage yourself
* Follows 80/20 rules (somewhat), 20% of features compared to k8s cover 80% of use cases
* Run anywhere Docker does
  * local, cloud, datacenter
  * ARM, Windows, 32-bit, etc

### Advantages of Kubernetes

* Clouds will deploy / manage Kubernetes for you
* Infrastructure vendors are making their own distributions
* Widest adoptions and community
* Flexible: covers widest set of use cases
* "Kubernetes first" vendor support
* "No one ever got fired for buying IBM"
  * picking solutions isn't 100% rational
  * trendy, will benefit your career
  * CIO / CTO checkbox
