docker at ebay

13
Docker at eBay Ted Dziuba Senior Member of Technical Staff eBay Now [email protected] Wednesday, July 31, 13

Upload: lalatendurath5716

Post on 20-Sep-2015

8 views

Category:

Documents


2 download

DESCRIPTION

docker

TRANSCRIPT

  • Docker at eBay

    Ted DziubaSenior Member of Technical StaffeBay Now

    [email protected]

    Wednesday, July 31, 13

  • Docker at eBay

    Virtualenvs Broken Promises: Encapsulation

    2

    ted@workstation:~$ pip install lxml

    This will fail spectactularly on a clean Ubuntu machine.

    Wednesday, July 31, 13

  • Docker at eBay

    Virtualenvs Broken Promises: Encapsulation

    3

    Get your OS-level dependencies first, of course.

    ted@workstation:~$ sudo apt-get install python-dev libxml2-dev libxslt1-dev

    Works on My Machine Works on Our Machines Works in Production

    Wednesday, July 31, 13

  • Docker at eBay

    Getting There with Vagrant

    4

    Works on My Machine Works on Our Machines Works in Production

    install_cmd = apt-get update; apt-get install -y python-dev \ libxml2-dev libxslt1-dev; pip install -r requirements.txt;

    config.vm.provision :shell, :inline => install_cmd

    Wednesday, July 31, 13

  • Docker at eBay

    You Cant Ship a Vagrantfile

    5

    Vagrant VM Production

    Application

    Database Redis

    Memcache RabbitMQ

    Load Balancer

    Database

    Load Balancer

    Database

    Database

    Redis

    Load Balancer

    Redis

    Application

    Load Balancer

    Application

    RabbitMQ

    Load Balancer

    RabbitMQ

    RabbitMQ

    Memcache

    Memcache

    Memcache

    Memcache

    Memcache

    Memcache

    Memcache

    Wednesday, July 31, 13

  • Docker at eBay

    Production never gets less containerized.

    6

    Wednesday, July 31, 13

  • Docker at eBay

    Containerizing Development in eBay Now

    7

    FROM teddziuba/python2.7

    ADD requirements.txt /tmp/requirements.txtRUN pip install -r /tmp/requirements.txt

    Application Dockerfile

    Containerized DBted@workstation:~$ docker run -d teddziuba/postgresql-development-9.2

    Django manage.py wrapper

    ted@workstation:~$ docker run -t -i -p 8000:8000 -e DATABASE_URL=... -v /path/to/src:/app-dev ebaynow python /app-dev/manage.py runserver 0.0.0.0:8000

    Wednesday, July 31, 13

  • Docker at eBay

    Containerize service dependencies and address them as environment variables.

    8

    Wednesday, July 31, 13

  • Docker at eBay

    Development Containers Go Straight to CI

    9

    Thing Under Test

    Database Container

    Integration Test Case Container

    Application Container

    Jenkins Test Runner

    Wednesday, July 31, 13

  • Docker at eBay

    Run database driven tests in parallel.

    10

    Wednesday, July 31, 13

  • Docker at eBay

    Docker in Production at eBay (Coming Soon)

    11

    Thing Under Test

    Database Container

    Integration Test Case Container

    Thing Serving HTTP Traffic

    Production Database

    Load Balancer

    Application Container

    Database Container

    Emacs

    My Workstation Jenkins Production

    Wednesday, July 31, 13

  • Docker at eBay 12

    Works on My Machine Works on Our Machines Works in Production

    Wednesday, July 31, 13

  • Docker at eBay

    Questions?

    13

    Wednesday, July 31, 13