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

DevOps for Test Engineers

Avatar for Will Daly Will Daly
February 11, 2014

DevOps for Test Engineers

Avatar for Will Daly

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