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
-
Code Coverage
-
Code Metrics
- Automated Code Reviews with StyleCop, TsLint & JsLint
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