If you’re an app product manager or equivalent role, then you’ve definitely heard about continuous integration (CI) and continuous delivery (CD). But what are they and how do they actually work? More importantly, how do they both impact your day to day work?
Why Use CI
The beauty of CI is that it’s automated. In other words, it’s one less thing for your team to manually work on. Your code is continuously integrated with your main branch using checks on each branch. This allows developers to work and experiment with code faster than conventional development workflows.
With CI, you can eliminate the need for manual checks on new code in the code repository by:
- Building and packaging your app automatically every time updated code is pushed
- Implementing automated tests to ensure any built application works as expected
- Deploying your app into other environments before making its way into production
- Running services such as SonarQube and Codacy to automate code quality and coding standards
- Automating security tests to identify vulnerabilities in new code and dependencies using services like SonarQube, Veracode, and Snyk.
In doing the above, your team is able to focus more on effective coding.
Moreover, CI is your first line of defense during quality assurance (QA). On average, we’ve noticed CI cutting down QA time by up to 50% – 60%. That’s a significant amount of time and money when maintaining any sort of application!
Common CI Tools
If you’re now considering implementing a CI pipeline for your dev team, keep in mind some popular tools, such as GitHub Actions, Jenkins, and CircleCI. As an AWS APN Partner, we regularly use the following tools to implement CI solutions for our clients:
- AWS CodePipeline – a service that automates CI pipeline
- AWS CodeBuild – a managed service that compiles source code, runs until tests, and builds software packages
- AWS CodeDeploy – a managed service that automates software deployments for AWS services
- AWS CodeCommit – a managed service for storing source code
- Amazon CodeCatalyst – a service to create, build, and deploy applications
Not every service is designed for your app, so review your options carefully with your dev team or a CI expert like Uplancer. Setting up a CI pipeline is a big investment for your team, but it does pay off as your application grows in functionality and complexity. Not to mention, CI is also a solid pillar to build out a more agile development team.
CD, the Perfect Match for CI
You’ll see CI and CD used interchangeably. Both are automation tools for app development. While CI is important for integrating your new code into your main repository, CD is important for deploying the updated repository to a production environment. In simpler terms, CI moves your code into a code repository, whereas CD makes your code live.
When considering a full implementation, ensure that your CI system is capable of running full checks on the application being deployed. That means removal of most, if not all, manual checks from your dev team. When it’s not possible, automating everything else can still be beneficial for development.
The Bottom Line
When your team is ready to take development to the next level, CI/CD can help! Both are automation techniques that allow your team to integrate new code quickly and deploy the latest code to production. Investing in CI/CD pipelines can save money and reallocate resources to more important parts of development. Not all developer teams are built the same. Choosing a CI/CD solution needs a deeper discussion. Connect with Uplancer today to discuss whether implementing a CI/CD solution is right for you and your team.