Continuous Integration and Continuous Deployment is a practice I believe every organization should take steps towards implementing. Even the smallest steps can lead to a smoother process in the future.
I recently discussed the CI/CD process with a client to figure out small steps they can take towards implementing this development practice. Below are great notes that I have found on the process as a whole and that can help a company understand the benefits further. This process bridges the gaps between development and operation activities and teams by enforcing automation in building, testing, and deployment of applications. Modern day DevOps practices involve continuous development, continuous testing, continuous integration, continuous deployment, and continuous monitoring of software applications throughout its development life cycle. This pipeline is considered the backbone of modern-day DevOps operations.
Continuous Integration
Continuous Integration is the practice of testing each change done to your codebase automatically and as early as possible.
In Practice
Through testing, you can be sure that the most important steps your customers will be taking through the system are working, regardless of the changes you make. This gives you the confidence to experiment, implement new features, and update quickly.
Business Benefits
- Reducing risk
- Reducing overheads across the development & deployment process
- Enhancing the reputation of the company by providing Quality Assurance
- View into what work is being done and enhances data knowledge
- Data confidence
“Having a good CI system is akin to having a fire alarm in your house. It won’t fix your error for you but you will rest assured that it will flag up the error as soon as it’s integrated and that the build containing the error will not make it into your staging or production environments.”
- https://css-tricks.com/continuous-integration-continuous-deployment/
NOTE: To get Continuous Deployment to work effectively, first should make Continuous Integration rock solid.
Continuous Deployment
Continuous Deployment follows the testing that happens during Continuous Integration and pushes changes to a staging or production system. This makes sure a version of your code is always accessible.
In Practice
Whenever the main development branch in your repository passes all the tests, you should push your code at least into a staging environment or in the best case into production. Your development or QA team can then review the latest version of your application and give feedback. In addition, tests can be ran against that staging system to make sure it works in a production-like environment ensuring proper roll out to users.
Business Benefits
- Zero-downtime deploys removes interruption to users’ analytics and removes release freeze periods. Allows for updating even during heavy usage periods.
- Fewer Disruptions: A rock solid build means no more disruptions by broken builds, which gives more time to focus on important work.
“If you're relying on your pipelines daily, you will notice (and resolve!) its deficiencies much quicker than if they flow once every few weeks or months.”
- https://www.atlassian.com/continuous-delivery/principles/business-value
Stay tuned for our next post which will entail some small beginning steps that can be taken to kick off a CI/CD process when just beginning. It can be a daunting task, but the first step will help establish the mindset!