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

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

Sep 08, 2014

Download

Technology

Flux7

Talk given by Flux7 CEO, Aater Suleman at DevOpsdays Austin on Using Docker to Improve Web Developer Productivity.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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/