4.
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
Do you have basic infrastructure? (2015-11-18)
http://www.robustperception.io/do-you-have-basic-infrastructure/
5.
public network
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN LB API servers DB servers
1.1 -
1.2 -
6.
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN LB API servers DB servers
public network
.1 -
.2 -
7.
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN LB API servers DB servers
public network
detection
recovery
diagnosis
8.
public network
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN LB API servers DB servers
1.1 -
1.2 -
9.
hardware
bare metal
OS
runtime
app
VM
hardware
OS
runtime
app
hypervisor
11.
VM
hardware
OS
runtime
app
hypervisor
Docker
hardware
OS
runtime
app
hypervisor
container
12.
Docker
hardware
OS
runtime
app
hypervisor
container
We know:
• Container is faster than VM
• Container is lightweight
• Dockerized app anywhere…
What if…
• An OS runs only containers?
13.
Docker
hardware
OS
runtime
app
hypervisor
container
CoreOS
RancherOS
Red Hat Atomic
VMware Photon
Snappy Ubuntu Core
Windows Nano Server
14.
Docker
hardware
OS
runtime
app
hypervisor
container
Container per VM
hardware
OS
runtime
app
hypervisor
container
15.
Container per VM
hardware
OS
runtime
app
hypervisor
container
Intel Clear Linux
http://www.ithome.com.tw/news/96119
Hyper
https://hyper.sh/
16.
Container per VM
hardware
OS
runtime
app
hypervisor
container
Unikernel
hardware
library OS
app
hypervisor
unikernel
app stack
17.
Unikernel
hardware
library OS
app
hypervisor
unikernel
app stack
Unikernels are constructed by
using “library operating
systems,” from which the
developer selects only the
minimal set of services
required for an application to
run.
20.
public network
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN ELB API servers DB servers
1.1 -
1.2 -
21.
service consolidation
resourceisolation
native app
VM
container per VM
unikernel
Docker
22.
public network
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN LB API servers DB servers
1.1 -
1.2 -
23.
public network
private network
API servers
JDK
app server (Tomcat, …)
app (jar, war, …)
Node.js runtime
npm
app source
Python runtime
pip
uWSGI/Gunicorn
app source
24.
public network
private network
DB servers
JDK
Elasticsearch
JDK
CassandraMongoDBMySQL
dependenciesdependencies
25.
public network
private network
LB
HAProxynginx
AWS ELB dependenciesdependencies
29.
public network
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN ELB API servers DB servers
1.1 -
1.2 -
30.
uniform
Docker
Config management will only be used to install
Docker, an orchestration system, configure
PAM/SSH auth, and tune OS sysctl values.
traditional
DevOps
toolchain
tedious
… Basically anything not having to do with app deployment.
https://blog.containership.io/containers-vs-config-management-e64cbb744a94
31.
public network
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN LB API servers DB servers
1.1 -
1.2 -
32.
public network
private network
API servers
As the number of machines grows…
how to ensure better allocation?
44.
public network
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN ELB API servers DB servers
1.1 -
1.2 -
45.
Docker Swarm
Mesos
Kubernetes
Config management will only be used to install
Docker, an orchestration system…
traditional
DevOps
toolchain
… Don’t assume too much about underlying infrastructure.
cattlepets
48.
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
.1 -
.2 -
private network
CDN LB API servers DB servers
public network
49.
private network
LB API servers DB servers
• Rolling upgrade
• Blue/green deployment
• Canary deployment
Traditional app
• in-place update
• immutable infra
50.
public network
private network
API servers
immutable imagescontainer
cattle
independent of
underlying
machines
54.
Universal Control Plane
https://www.docker.com/universal-control-plane
55.
public network
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
private network
CDN ELB API servers DB servers
.1 -
.2 -
57.
private network
CDN LB API servers DB servers
Key Takeaways
58.
1. How to recreate your system
2. How to safely change your system
3. When something has gone wrong
Do you have basic infrastructure? (2015-11-18)
http://www.robustperception.io/do-you-have-basic-infrastructure/
59.
service consolidation
resourceisolation
native app
VM
container per VM
unikernel
Docker
Immutable infrastructure
60.
uniform
Docker
Config management will only be used to install
Docker, an orchestration system… anything
other than app deployment.
traditional
DevOps
toolchain
tedious
61.
Docker Swarm
Mesos
Kubernetes
traditional
DevOps
toolchain
… Don’t assume too much about underlying infrastructure.
cattlepets