“This is the way software should be developed”
The conversation started because the team had run into another issue with version configuration. Damon Zirkler, a solutions architect at Steelcase pulled the team together. The engineers were having a hard time controlling multiple versions and configurations of their software across all the developer’s machines. This led to bugs when trying to review code, pushing to staging, and production. Even if the engineers all had the same version of say, MySQL, the default configuration between Windows, OS X, and Linux varied enough to cause issues.
For any organization who has adopted Docker, this is a common story. Once Steelcase started providing standard images for MySQL, they also found they could containerize everything and completely eliminate variance between all the developer machines.
THE BIG CHANGE THEY DIDN’T EXPECT
Damon and his DevOps Lead set out to solve version and configuration variance, but once they adopted Docker they found there were all kinds of other benefits. They set up a process using TeamCity to containerize their Dev and Beta databases and make them available for developers to use. This meant developers never had to deal with dummy data, they could build with real, up-to-date data which led to better code.
With all these benefits they didn’t expect their old testing pipeline to suffer; it couldn’t keep up with their new speed. This is when they found Codefresh and really unlocked the full value of containers. “If we moved our build and test pipeline into Codefresh, not only could we manage what we needed in a single place but we also unlocked the ability for QA to get feature previews before going to staging,” said Damon. “We toyed around with trying to have QA run containers themselves but it was hard for them and their machines weren’t fast enough to run the stack.”
Damon and the DevOps team decided to lock themselves in a conference room to see if they could find a better way. A few hours later, they had migrated the entire build and test pipeline into Codefresh.
“Now when our engineers commit code, Codefresh runs all the testing we need and spins up an environment just for the feature they worked on. Our QA and design teams can access this unique environment and do a level of testing that just wasn’t possible before. Our test cycle went from three days to three hours.”Damon ZirklerSolutions Architect, Steelcase
FINALLY MOVING BEYOND THE STAGING BOTTLENECK
Engineers had eliminated all software variances; the build and automated testing pipeline was a lot easier to manage, and QA was able to test features much faster and more in-depth than before. An unexpected side benefit was that the entire team became more productive because they didn’t have to rely on the staging environment to preview code. That means that code merges no longer slow down dev and testing anymore and QA can happen at the feature level rather than working through several changes at once.
“Before, if we found a problem at staging we had to hold everything back. Any issues we found in code would basically poison our master branch. Now, we fully test each change in its own branch before merging. The change is huge.”
“This is the way software should be developed and I can’t imagine doing testing any other way.”Damon ZirklerSolutions Architect, Steelcase
We’ve seen many companies change the way they do Devops with Codefresh, and you can, too! Create your free account today, and see how much faster and efficiently you could be building, testing, and deploying today!