46
Introduction to Docker on AWS Brandon Chavis Solutions Architect

AWS January 2016 Webinar Series - Introduction to Docker on AWS

Embed Size (px)

Citation preview

Page 1: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Introduction to

Docker on AWSBrandon Chavis

Solutions Architect

Page 2: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Agenda

Why Containers?

Cluster Management

Benefits

Running Services

Demo

Page 3: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Why Containers?

Page 4: AWS January 2016 Webinar Series - Introduction to Docker on AWS

What are Containers?

OS virtualization

Process isolation

Images

Automation Server

Guest OS

Bins/Libs Bins/Libs

App2App1

Page 5: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Container advantages

Portable

Flexible

Fast

EfficientServer

Guest OS

Bins/Libs Bins/Libs

App2App1

Page 6: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Services evolve to microservices

Monolithic Application

Order UI User UI Shipping UI

OrderService

UserService

ShippingService

DataAccess

Host 1

Service A

Service B

Host 2

Service B

Service D

Host 3

Service A

Service C

Host 4

Service B

Service C

Page 7: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Containers are natural for microservices

Simple to model

Any app, any language

Image is the version

Test & deploy same artifact

Stateless servers decrease change risk

Page 8: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Scheduling

Page 9: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Server

Guest OS

Bins/Libs Bins/Libs

App2App1

Scheduling one resource is straightforward

Page 10: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Scheduling a cluster is hard

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Server

Guest OS

Page 11: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Cluster Management

Page 12: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Cluster Management: Resource Management

DockerTask

EC2 Instance

Container

DockerTask

EC2 Instance

Container

TaskContainer

Docker

EC2 Instance

TaskContainer

AZ 1 AZ 2

Page 13: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Cluster Management: Scheduling

DockerTask

EC2 Instance

Container

DockerTask

EC2 Instance

Container

TaskContainer

Docker

EC2 Instance

TaskContainer

AZ 1 AZ 2

Page 14: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: Resource Management

DockerTask

Container Instance

Container

TaskContainer

DockerTask

Container Instance

Container

TaskContainer

DockerTask

Container Instance

Container

TaskContainer

AZ 1 AZ 2

Cluster Management Engine

Page 15: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: Agent Communication

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

AZ 1 AZ 2

Cluster Management Engine

Agent Communication Service

Page 16: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: Key/Value Store

DockerTask

Container Instance

Container

ECS Agent

ELB

Internet

ELB

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

AZ 1 AZ 2

Key/Value Store

Cluster Management Engine

Agent Communication Service

Page 17: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS under the Hood

IDN-1 IDN IDN+1 IDN+2 IDN+3 IDN+4 IDN+5

IDN+6

IDN+5

WRITE

READ

Page 18: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS under the Hood

IDN-1 IDN IDN+1 IDN+2 IDN+3 IDN+4 IDN+5

IDN+6IDN+3

IDN+5IDN+2

WRITE WRITE

READREAD

Page 19: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: APIs

DockerTask

Container Instance

Container

ECS Agent

ELB

Internet

ELB

User / Scheduler

API

Cluster Management Engine

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

AZ 1 AZ 2

Key/Value Store

Agent Communication Service

Page 20: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: Scheduling

DockerTask

Container Instance

Container

ECS Agent

ELB

Internet

ELB

User / Scheduler

API

Cluster Management Engine

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

AZ 1 AZ 2

Key/Value Store

Agent Communication Service

Page 21: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: Scheduling

Page 22: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: Scheduling

Page 23: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: Scheduling

Page 24: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS: Scheduling

Page 25: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Benefits

Page 26: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Easily Manage Clusters for Any Scale

Nothing to run

Complete state

Control and monitoring

Scale

Page 27: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Scalable

Page 28: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Flexible Container Placement

Applications

Batch jobs

Multiple schedulers

Page 29: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Designed for use with other AWS services

Elastic Load Balancing

Amazon Elastic Block Store

Amazon Virtual Private Cloud

Amazon CloudWatch

AWS Identity and Access Management

AWS CloudTrail

Page 30: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Extensible

Comprehensive APIs

Custom schedulers

Open source agent and CLI

Page 31: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Amazon ECS

DockerTask

Container Instance

Amazon ECS

Container

ECS Agent

ELB

Internet

ELB

User / Scheduler

API

Cluster Management Engine

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

DockerTask

Container Instance

Container

ECS Agent

TaskContainer

AZ 1 AZ 2

Key/Value Store

Agent Communication Service

Page 32: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Running Services

Page 33: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Task Definitions

Volume Definitions

Container Definitions

Page 34: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Key Components: Task Definitions

Page 35: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Key Components: Task Definitions

Page 36: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Tasks

Shared Data Volume

Containers

scheduleContainer Instance

Volume Definitions

Container Definitions

Page 37: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Unit of work

Grouping of related Containers

Run on Container Instances

Tasks

Page 38: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Create a Service

Good for long-running applications and services

Page 39: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Create Service

Load Balance traffic across containers

Automatically recover unhealthy containers

Discover services

Elastic Load Balancing

Shared Data Volume

Containers

Shared Data Volume

Containers

Shared Data Volume

Containers

Page 40: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Scale Service

Scale up

Scale down

Elastic Load Balancing

Shared Data Volume

Containers

Shared Data Volume

Containers

Shared Data Volume

Containers

Shared Data Volume

Containers

Page 41: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Update Service

Deploy new version

Drain connections

Shared Data Volume

Containers

Shared Data Volume

Containers

Shared Data Volume

Containers

new new new

Elastic Load Balancing

Shared Data Volume

Containers

Shared Data Volume

Containers

Shared Data Volume

Containers

old old old

Page 42: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Deploy new version

Drain connections

Shared Data Volume

Containers

Shared Data Volume

Containers

Shared Data Volume

Containers

new new new

Elastic Load Balancing

Shared Data Volume

Containers

Shared Data Volume

Containers

Shared Data Volume

Containers

old old old

Update Service (cont.)

Page 43: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Deploy new version

Drain connections

Elastic Load Balancing

Shared Data Volume

Containers

Shared Data Volume

Containers

Shared Data Volume

Containers

new new new

Update Service (cont.)

Page 44: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Demo

Page 45: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Thank you!

Page 46: AWS January 2016 Webinar Series - Introduction to Docker on AWS

Appendix