using docker to improve web developer productivity devopsdays austin - may 5

21
Using Docker to Improve Web Developer Productivity Presented by Aater Suleman, PhD

Upload: flux7

Post on 08-Sep-2014

4.367 views

Category:

Technology


0 download

DESCRIPTION

Talk given by Flux7 CEO, Aater Suleman at DevOpsdays Austin on Using Docker to Improve Web Developer Productivity.

TRANSCRIPT

Page 1: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Using Docker to Improve Web Developer Productivity

Presented by Aater Suleman, PhD

Page 2: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Who am I?Aater Suleman

Geek, Architect, Developer, Ops ⇒ DevOps Co-founder & CEO Flux7 Labs Part-time UT Austin Professor

Flux7: Cloud and DevOps Solutions

Cloud and Devops for Web teamsEnterprise DevOps management

Clients:

Page 3: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Why Developer Workflow?

Page 4: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Web Developer Workflow

Developer Local Test QA Production

Least expensive but most executed

Most expensive but least executed

Page 5: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Development Environment

Developer Local Test QA Production

Least expensive but most executed

Most expensive but least executed

95-99% of developer time is spent in

the development environment

Page 6: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Developer environment must be ...

Quick Production-like Repeatable

Page 7: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Production-like

Each tier runs same OS & software versions

Tiers are isolated from each other as in production

Tiers are isolated from the developers device

[A client] never realized they needed to run gem install bundle on a tier until we put the two services on different servers.

Page 8: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Production-like

Our URL: http://xxxx.xxxxxx.xxx is not loading in IE and Safari but is in

Chrome/Firefox. This is only in AWS QA and not in AWS DEV or PROD. We are

wondering if there is something in the infra that is causing this behavior.

-Thx

Page 9: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Quick

Waiting Frustration Distraction

“When I fire a local QA run in a mature project, it takes 8 mins. I check cricinfo.com and facebook while it runs”

Developer at a Fortune 100 company

Page 10: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Repeatable

Here is a Bash script to run on

your device

Follow these docs and ask away if any questions

Here is a Vagrant file

Install software PHP and MySQL on your device

Prone to human errors Prone to 3rd party changes

Page 11: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Repeatable

Here is a Bash script to run on

your device

Follow these docs and ask away if any questions

Here is a Vagrant file

Install software PHP and MySQL on your device

Prone to human errors Prone to 3rd party changes

[A client] supported MySQL Percona v5.53x. Vendors updated the version to 5.54 and broke our software.

Page 12: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Our Solution

Developer Local Test QA Production

Page 13: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

One Docker container for each application tier

Run a VM with folder sync and port forwarding

Installs Docker Downloads containers (if not available)

Used to bootstrap Docker containers in dev and AWS instances in prod

Page 14: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

AppWeb

DB

LogStashMem

$

HTTP

SSH

Virtualbox VM

App Code and Logs

Laptop

devenv.sh for interacting with

the setup

Docker Containers

Redis

Page 15: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Result: We no longer hear ...

“works on my machine but not on yours”

“I have been helping the [new hire]

setup her environment all day”

“IT guys must do something differently in staging”

“I can’t try it because IT has not

updated the dev environment”

Page 16: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Who sees the benefit?

Bankend Developers

● Homogenous environment● Quick feedback● Agile: break it fearlessly

Front-end HTML Devs

● Quick visual feedback with populated data

● Avoid installations

Ops

Only one standardized dev environment to support

Management

● Less conflict● Faster time to market● Happier engineers● Easier hiring

Page 17: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Why we used Docker?

Minimal Performance

Overhead

Fast Boot and Shutdown

Smaller files sizes and ability to diff

containers

Container will run in the

Cloud

Page 18: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Variation: Today

Developer Local Test QA Production

Page 19: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Variation

Developer Local Test QA Production

Use Docker alone with boot2docker and Dockerfiles

Requires docker in entire workflow including prod

Docker will release version 1.0 soon

Page 20: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Demo

How to start the environment?

How to stop the environment?

How to edit code and refresh in the

browser?

Page 21: Using Docker to Improve Web Developer Productivity DevOpsdays Austin - May 5

Thank You.Twitter: @Flux7Labs

Website: www.flux7.com

Flux7 Docker Resources: http://flux7.com/docker/