Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevOps for Test Engineers

Will Daly
February 11, 2014

DevOps for Test Engineers

Will Daly

February 11, 2014
Tweet

Other Decks in Technology

Transcript

  1. Test (CI) Prod • Mac OS X, Ubuntu 12.04, Ubuntu

    13.10 • SQLite3 • Redis / RabbitMQ • Mongo (multiple versions) • In-memory cache • Ubuntu 12.04 • SQLite3 • RabbitMQ • Mongo (outdated version) • In-memory cache • Ubuntu 12.04 • MySQL (RDS) • RabbitMQ • Mongo (current version) • Memcached Local Dev
  2. Test (CI) Prod • Mac OS X, Ubuntu 12.04, Ubuntu

    13.10 • SQLite3 • Redis / RabbitMQ • Mongo (multiple versions) • In-memory cache • Ubuntu 12.04 • SQLite3 • RabbitMQ • Mongo (outdated version) • In-memory cache • Ubuntu 12.04 • MySQL (RDS) • RabbitMQ • Mongo (current version) • Memcached Local Dev
  3. • Developer added a new system requirement (Lynx) • Unit

    tests started failing for some developers. • Deployed to stage environment: 500 Error!
  4. Demo Deploy a Python Flask web app to ◦ Vagrant

    ◦ Amazon EC2 … using Ansible!
  5. Pitfall #1: Slow Provisioning • Many requirements ⇒ slow provisioning

    • Solution: Bootstrap the base box (or AMI) ◦ One set of scripts provisions from a bare image (such as Ubuntu 12.04) ◦ vagrant package ◦ Run the same scripts on the new base box.
  6. Pitfall #1: Slow Provisioning At EdX, this allowed us to

    reduce setup time (on really fast computers): • From > 40 minutes • To about 10 minutes!
  7. Pitfall #2: Versions • New version released ⇒ inconsistent environments.

    • Specify the exact version number in the configuration scripts.
  8. Pitfall #3: Dev and Ops Dev and ops people see

    the world differently. • Ops lives in the terminal, Dev (sometimes) lives in an IDE. • Dev wants a simple setup that can be easily changed. Ops wants a reliable setup that runs continuously.
  9. Pitfall #3: Dev and Ops Solutions: • Folder sharing •

    Start from prod settings, but make compromises: ◦ Server that reloads code. ◦ Serve static assets in-place (no collection step) ◦ Enable DEBUG mode ◦ Run server in the foreground
  10. Benefits of DevOps Ways to use these tools: • Aligning

    dev/test/prod environments • Setting up sandbox test environments • Assessing operational risk