CTOs FOR GOOD 2013

tinyurl.com/ctosdev2013

DevOps

  • About Us
  • Snapshot: A Year Ago
  • The Way: Flow & Systems
  • The Way: Feedback
  • The Way: Resilience & Experimentation

About Us

  • DoSomething.org: Largest network for young
    people & social change
  • Members: 2.3 million (aged 13-25)
  • Platform: Drupal & co. (RoR, Flask, et al.)
  • A mostly LAMP-y stack

Do Something: A year ago

  • Big old slow-ass Drupal site
  • Frustration
  • Technical debt
  • Loose (missing?) process

Problem: Outsourced development

  • Black-box products thrown “over the wall”
  • Weak internal project management
  • Less institutional knowledge → more technical debt

Problem: Loose dev & deploy workflow

Problem: Unhappy developers

  • “90% of my time wrestling with the platform”
  • Technical debt → Unhappiness
  • No way to attract talent!
  • No way to retain talent!

Problem: No automated tests

Problems we don't have

  • High traffic
  • Financial transactions
  • COPPA or PCI compliance
  • Massive infrastructure
  • Complex deployments

DevOps?

(Easy: no ops!)

The 1st Way: Flow

The Goals: Bandwidth, understanding, control

The Enemy: Unplanned work

Flow: Process

  • Get It In Writing (or Drawing)
  • Trello
  • Sprint Planning

Flow: Process

  • Get It In Writing (or Drawing)
  • Trello
  • Sprint Planning

Missing from Trello

  • Dashboard visualizations
  • Time tracking
  • Workflow rules/enforcement
  • Ticket numbers

Flow: Process

  • Get It In Writing (or Drawing)
  • Trello
  • Sprint Planning

Flow: Deploying to prod

Step 1: Talk to @george

Step 2: Jenkins in production

Step 3: Jenkins runs tests

Step 4: Fabric

The 2nd Way: Feedback

The Goals: Process improvement,
short feedback loops

The Enemy: Silos of knowledge/information

Feedback: Culture

Continuous improvement

Working on work vs. doing more work

Feedback: Tools

  • All the Shiny Tools
  • GitHub
  • HipChat
  • Hubot
  • Jenkins
  • Wercker

Feedback: Tools

  • All the Shiny Tools
  • GitHub
  • HipChat
  • Hubot
  • Jenkins
  • Wercker

GitHub: Wishlist

Feature branch-based QA instances on RackSpace Private Cloud / OpenStack

Feedback: Tools

  • All the Shiny Tools
  • GitHub
  • HipChat
  • Hubot
  • Jenkins
  • Wercker

Feedback: Tools

  • All the Shiny Tools
  • GitHub
  • HipChat
  • Hubot
  • Jenkins
  • Wercker

Feedback: Tools

  • All the Shiny Tools
  • GitHub
  • HipChat
  • Hubot
  • Jenkins
  • Wercker

Feedback: Tools

  • All the Shiny Tools
  • GitHub
  • HipChat
  • Hubot
  • Jenkins
  • Wercker

Feedback: Testing

  • LAMP: Behat
  • Drupal: SimpleTest
  • RoR: rspec, Cucumber

Feedback: Testing

  • LAMP: Behat
  • Drupal: SimpleTest
  • RoR: rspec, Cucumber

Feedback: Testing

  • LAMP: Behat
  • Drupal: SimpleTest
  • RoR: rspec, Cucumber

The 3rd Way: Resilience & Experimentation

...Ask me next year

The Phoenix Project

itrevolution.com/books/phoenix-project-devops-book/

Thanks!