22
Containers in Cloud

Containers in the Cloud

Embed Size (px)

Citation preview

Page 1: Containers in the Cloud

Containers in Cloud

Page 2: Containers in the Cloud

2

Agenda

• Why Containers?• What are Containers?• History of Containers• Docker• Orchestration• Docker Swarm• Demo (If you are still awake)

Page 3: Containers in the Cloud

3

Why Containers?

Page 4: Containers in the Cloud

4

Why Containers?

Page 5: Containers in the Cloud

5

Complex Systems with many payloads

Page 6: Containers in the Cloud

6

Multiple targets

QA

Build server

Stage Prod

Cloud(s)

Page 7: Containers in the Cloud

7

Problem

Page 8: Containers in the Cloud

8

Similar problem

Page 9: Containers in the Cloud

9

Solution

Page 10: Containers in the Cloud

10

What are Containers?

Page 11: Containers in the Cloud

11

What are containers?

Containers offer an isolated environment – as close as possible to a VM – without the overhead of running a separate kernel and simulating all the hardware

Page 12: Containers in the Cloud

12

Virtualization vs Containerization

Page 13: Containers in the Cloud

13

History of Containers

• Chroot – 1979• FreeBSD Jails – 2000• Linux Vserver – 2001• Solaris Containers – 2004• OpenVZ – 2005• Process Containers – 2006• Control Groups (cgroups) – 2007• LXC – 2008• Warden – 2011• LMCTFY – 2013• Docker – 2013• Rocket (rkt) – 2014

Page 14: Containers in the Cloud

14

LXC

Page 15: Containers in the Cloud

15

Docker

• Open Source• Builds on top of LXC• Provides portable format and

runtime environment to deploy application inside containers

• Containers optimized by layers• Manages dependencies

Page 16: Containers in the Cloud

16

Docker Architecture

Page 17: Containers in the Cloud

17

How it works?

Page 18: Containers in the Cloud

18

Containers before Docker

Page 19: Containers in the Cloud

19

Containers after Docker

Page 20: Containers in the Cloud

20

Container Orchestration

• Manage/Provision multi-container applications

• Application blueprint from a schema (JSON or YAML)

• Monitoring• Upgrades (rolling) and Rollback• Policy management• Service discovery• Ease of use• Integration with existing systems

Page 21: Containers in the Cloud

21

Docker Swarm

$ docker swarm init

$ docker swarm join

• Cluster management within the Docker engine• No additional software to manage a Swarm• Easy to setup• Scaling• Built-In

• Multi-host networking• Service discovery• Load balancing (L4)• Security• Rolling updates

• But… Not a real orchestration tool (not yet!)

Page 22: Containers in the Cloud

22

Demo