The Business Case for Agile Deployments & a CI/CD Pipeline
by Tom Helvick
At Intertech, we’re big advocates for agile methodology and systems that help software teams become more collaborative, creative, and productive. Modern software development relies on rapidly and flexibly iterating on projects, improving them gradually over time. This approach reduces risk, speeds up time to market, and often lowers costs. However, without a system to deploy these incremental improvements, you lose many of the benefits of agile development. That’s where continuous integration and continuous deployment (CI/CD) come into play. CI/CD is a critical part of agile development.
In this article, we’ll explore the essentials of agile deployments with CI/CD and look at the business advantages that such a system provides. Ultimately, we hope to convince you of the need for CI/CD on all agile projects and give you some best practices.
What is CI/CD?
CI/CD is a type of pipeline from a developer writing new code to that code becoming live on the production system.
In the old days, deploying code meant uploading files to a server where they were immediately live to the world. If something went wrong with the upload or your code broke, you had to keep backups of your old site versions that you could revert to.
In recent years, however, deploying code to production has become much more standardized, automated, and abstracted. An automated path to deployment is another word for a CI/CD pipeline. In essence, the pipeline automates all the testing, merging, building, and serving of code on its way from a developer’s computer to live on your production servers.
There are levels to this automation. At major tech companies, all parts of the pipeline are automated so that as soon as code is committed and passes all tests, it gets deployed. For other companies, some steps, like merging and actually deploying code are manual. However, all CI/CD pipelines involve replacing manual, error-prone tasks with predictable systems for testing and deploying code.
Business Benefits of CI/CD
CI/CD comes with a host of benefits for companies that implement good practices. Overall, we’ve found in our consulting practice that companies where we’ve set up CI/CD never look back. It’s a game-changing infrastructure investment that makes development so much easier long term.
Here are the top reasons companies like CI/CD:
1. Agility = Less Risk
CI/CD makes it easy to deploy code. As a result, you’re likely to deploy code more frequently. Therefore, the amount of code you deploy each time is usually fairly small.
When you only deploy a small amount of code, it becomes easier to test that code, identify issues, and figure out where the problems might be occurring. Smaller changes produce less risk than big deploys.
Additionally, most CI/CD pipelines involve automating the processes of backups and rollbacks. When you have a properly versioned CI/CD pipeline, rolling back buggy code is straightforward and fast.
2. Features Reach Customers Faster
Customers love to see incremental changes in your application. When you have a solid CI/CD pipeline you can trust, there’s no problem rolling out new features in the middle of the workday. A customer using your application can, therefore, receive incremental upgrades regularly. That sense of constant improvement builds customer excitement and loyalty for your product.
3. It’s Cheaper
When you deploy early and often, you find issues sooner. The faster feedback cycle means that developers can get ahead of issues and there are rarely major project-blocking setbacks. CI/CD is an important practice if you want to maintain your timelines, and therefore your budgets.
4. Happier Developers
This should not be underestimated. A happy dev team is a more productive dev team. And if there’s one thing developers hate doing, it’s manually deploying code. Dealing with servers and environments can be a nasty challenge, and the more you can automate with a CI/CD pipeline, the happier your developers will be. Furthermore, a happy dev team also leads to longer employee tenure, meaning institutional knowledge stays in-house longer, and you reduce the HR and recruiting costs of churn.
5. Forms the Foundation for Other DevOps Best Practices
All the rest of DevOps assumes that you have some form of CI/CD in place. Once you do, you can expand your pipeline to include security, integration, and monitoring checks. However, if you don’t have a standardized deployment pipeline, all that other stuff becomes much more difficult.
Automate Your Deployments with a CI/CD Pipeline
Luckily, a CI/CD pipeline doesn’t have to be fancy at first. Most companies already use AWS, Google Cloud, or Azure for their production servers. All of those providers support third-party CI/CD integrations.
The popular choices include CircleCI, Jenkins, TravisCI. At the most basic, you can hook these tools up to a GitHub repository in order to run your test suite on committed code. When tests pass on a new merge into the master branch, you can set up these tools to also automatically deploy your latest code to your server.
Later you can add more features like code building; containerizing your app; creating multiple environments for test, staging, and production; and including QA in your testing. The important thing is to just get started!
About Intertech
Founded in 1991, Intertech delivers software development consulting and IT training to Fortune 500, Government and Leading Technology institutions. Learn more about us. Whether you are a developer interested in working for a company that invests in its employees or a company looking to partner with a team of technology leaders who provide solutions, mentor staff and add true business value, we’d like to meet you.
Originally published at https://www.intertech.com on November 12, 2019.