ContainerDays 2015

34
THE CONTAINER PLATFORM Continuous Delivery & Management of your Multi-container Apps with DockerHub and Tutum by Borja Burgos

Transcript of ContainerDays 2015

Page 1: ContainerDays 2015

THE CONTAINER PLATFORM

Continuous Delivery & Management of your Multi-container Apps with

DockerHub and Tutum by

Borja Burgos

Page 2: ContainerDays 2015

• @borja_burgos • CEO @ Tutum • Computers, gadgets, hardware… • Telecom, cloud, security… • Started using docker v0.4 • CaaS in Fall 2013 w/ docker v0.6 • Container Platform in Fall 2014

ABOUT ME – BORJA BURGOS

@tutumcloud

Page 3: ContainerDays 2015

What is Tutum?

@tutumcloud

Page 4: ContainerDays 2015

Develop Deploy ManageBuild

@tutumcloud

Page 5: ContainerDays 2015

Develop Deploy ManageBuild

CI CD

Code repo

Image repo

Monitoring

Logging

Scaling

Networking

Storage

Service Discovery

Composability

Security

Many Hosts Public Cloud Private CloudAcross: Environments

@tutumcloud

Page 6: ContainerDays 2015

Develop Deploy ManageBuild

CI CD

Code repo

Image repo

Monitoring

Logging

Scaling

Networking

Storage

Service Discovery

Composability

Security

Many Hosts Public Cloud Private CloudAcross: Environments

Page 7: ContainerDays 2015

Develop Deploy ManageBuild

CI CD

Code repo

Image repo

Monitoring

Logging

Scaling

Networking

Storage

Service Discovery

Composability

Security

Many Hosts Public Cloud Private CloudAcross: Environments

TUTUM CONTAINER PLATFORM

Page 8: ContainerDays 2015

@tutumcloud

TUTUM CONTAINER PLATFORM

App InfrastructureManagedSimple Flexible

Hybrid + Agnostic

Operating System Container

Page 9: ContainerDays 2015

• Public beta • 320,000+ containers deployed on 22,000+ nodes (VMs/hosts) around the World

TUTUM TODAY

@tutumcloud

Page 10: ContainerDays 2015

How does it work?

I need 1 small node for staging

Infrastructure Provider

Page 11: ContainerDays 2015

How does it work?

Staging

Infrastructure Provider

Page 12: ContainerDays 2015

How does it work?

Deploy my app to Staging

Staging

Infrastructure Provider

Page 13: ContainerDays 2015

How does it work?

I need 3 large nodes for production

Staging

Production

Infrastructure Provider

Page 14: ContainerDays 2015

How does it work?

Deploy my app to staging with a load balancer

and make it highly available

Staging

Production

Infrastructure Provider

Page 15: ContainerDays 2015

1-click Docker Upgrades

Overlay Network

Aggregate-loggingScaling

Monitoring

Image Cleanup

Service Discovery

Log rotation

Continuous Delivery

Free Private Image Registry

Data Volumes0-downtime deployments

Stacks + Docker Compose

docker build

docker exec

*

Page 16: ContainerDays 2015

Continuous Delivery

Git push Build Deploy

@tutumcloud

WORKSHOP

Page 17: ContainerDays 2015

WORKSHOP

Page 18: ContainerDays 2015

WORKSHOP

@tutumcloud

1. Up & runningGithub

DockerHub Tutum

Infrastructure

Page 19: ContainerDays 2015

WORKSHOP

@tutumcloud

CACHE

APP

CACHE

APP

LOGICAL REPRESENTATION PHYSICAL REPRESENTATION

@tutumcloud

Page 20: ContainerDays 2015

WORKSHOP

@tutumcloud

2. Continuous Buildusing Github and DockerHub Automated Build

Git push Build

Page 21: ContainerDays 2015

WORKSHOP

@tutumcloud

3. Continuous Deploymentusing DockerHub and Tutum’s Redeploy Trigger

Build Deploy

Page 22: ContainerDays 2015

Continuous Delivery

Git push Build Deploy

@tutumcloud

WORKSHOP

Page 23: ContainerDays 2015

APP APP

APP CACHE

APP

APP

APP

LB

CACHE

APP

LB

LOGICAL REPRESENTATION PHYSICAL REPRESENTATION

@tutumcloud

WORKSHOP

Page 24: ContainerDays 2015

APP APP

APP CACHE

APP

APP

APP

LB

CACHE

APP

LB

LOGICAL REPRESENTATION PHYSICAL REPRESENTATION

@tutumcloud

WORKSHOP

LB

Page 25: ContainerDays 2015

WORKSHOP

@tutumcloud

4. Blue/Green Deployment

Page 26: ContainerDays 2015

@tutumcloud

lb: image: 'tutum/haproxy:latest' autorestart: always links: - web-blue ports: - '80:80' roles: - global deployment_strategy: high_availability

redis: image: 'tutum/redis:latest' autorestart: always environment: - REDIS_PASS=password

web-blue: image: 'borja/containerdays:v1' autorestart: always links: - redis target_num_containers: 3 deployment_strategy: high_availability

web-green: image: 'borja/containerdays:v1' autorestart: always links: - redis target_num_containers: 1 deployment_strategy: high_availability

Page 27: ContainerDays 2015

CACHE

APPv1

LB

@tutumcloud

WORKSHOP

APPv1

Starting point

Page 28: ContainerDays 2015

CACHE

APPv1

LB

Update Blue to v2

@tutumcloud

WORKSHOP

APPv2

Page 29: ContainerDays 2015

CACHE

APPv1

LB

Point LB to Blue

@tutumcloud

WORKSHOP

APPv2

Page 30: ContainerDays 2015

CACHE

APPv1

LB

@tutumcloud

WORKSHOP

APPv2

Rollback to v1 by pointing LB to Green

Page 31: ContainerDays 2015

CACHE

APPv1

LB

@tutumcloud

WORKSHOP

APPv2

Point to Blue v2 again

Page 32: ContainerDays 2015

CACHE

APPv3

LB

@tutumcloud

WORKSHOP

APPv2

Update Green to v3

Page 33: ContainerDays 2015

CACHE

APPv3

LB

@tutumcloud

WORKSHOP

APPv2

Point LB to Green v3

Page 34: ContainerDays 2015

@tutumcloud tutum.co [email protected]

thank you