DevOps

at DriveTime


A brief look into the past, present and future of 

DevOps at DriveTime



Framing up

What is DevOps and what are we trying to accomplish?

  • Better quality software

  • Shortened release cycles

  • Easier to use release processes

  • Less manual work

  • Improved capability and agility


What have we been doing so far?

Improving our tooling!

  • NuGet, NPM & Bower package repositories

  • Developed an entire new technology stack

  • Developed DriveTime branded visual studio
    extensions & project templates

  • Improved documentation & collaboration with
    the DriveTime developer wiki

What else have we been doing?

Improving development infrastructure!

  • Pushed TFS as far as it would go
    • Azure Deployments
    • C# and TypeScript unit testing
  • Introduce Jenkins to drastically improve capabilities
    • Improved insight into project health and developer contributions
    • Improved the quality and speed of production deployments
    • Overall, we're much more agile
  • Don't forget Azure: Web Apps and VPN connections

Anything Else?

Improving our communication and training!

  • Established and improved training regimens

  • Instituted code dailies

  • Stamping builds and code repository

What are we planning on doing?

Iterate on everything we've done so far

  • Feature Branches

  • Deploy anything, anywhere with a few clicks

  • Pull significantly more metrics out of Jenkins & integrate QA with Jenkins

  • Create DriveTime Bower and NPM packages 

  • On premises prod staging

Feature Branches?

Isolating development until completion

  • Jenkins / Gulp / Node based functionality

  • Automated steps:
    • Create TFS branch
    • Create hosting environment
    • Create Jenkins build & deploy to hosting
    • Email team about feature branch
    • Removal of all of the above, upon completion

  • Overall gain: agility & ease of use

Deploy anything anywhere?

"I wonder what would happen in prod if we did {x} ?"

  • Making the deployment process automated and generic

  • Select the product, the build and the destination and go

  • Nothing new, just streamlined and automated

What's this about metrics?

Remember Jenkins?  It's great with generating metrics

Bower? NPM? VS Gallery?

With our new technology stack, comes new ways to share code

  • Current process involves copying and pasting code

  • Creating a DriveTime.UI bower project

  • Creating a DriveTime.Build npm project

  • Shipping updates to DriveTime Template Pack via Visual Studio

  • Key benefits: Ability to iterate like never before

On PREMISES Staging

1 click builds for all!

  • Enabling smoke tests in production without risk

  • Prod staging deployments are addictive

  • Bringing deployment techniques out of azure and into the office

  • Enabled by Jenkins

Going Forward?

Numerous directions that we can take this

  • Continue as-is

  • Devote developer time to DevOps initiatives as-needed

  • Hire DevOps staff and go the route we're going with QA

DevOps at DriveTime

By Allen Rice

DevOps at DriveTime

A brief overview of what we've been doing in DevOps, what we're trying to accomplish, and what we're going to do in the short term to accomplish this

  • 1,117