For every developer coding up the next world-changing app, there's a publicist or a marketer or a salesperson working alongside them to make sure that world-changing app makes it out into the world. Ask a non-technical professional what the most challenging part of their job is and you'll often hear, "Understanding what the heck our developers are talking about."
To help you understand what the heck your developers are talking about, we're launching this series of short articles to explain common development concepts in simple language. Today we're tackling continuous integration/continuous delivery (deployment), better known as CI/CD.
CI/CD is how developers pack and ship application code
When developers talk about CI/CD, they're talking about a method for developing and implementing new application code. Similar to how you would send a package through the mail, CI/CD packs up code and ships it to its destination.
CI/CD starts with any change in your application, whether it's a new feature or just a bugfix. Once the change is made, the continuous integration process automatically triggers. The CI process is the "boxing up the package" part of CI/CD. The CI system builds the code that will be used to make the application change and then prepares it for delivery. In addition, the CI process runs tests to make sure the new code won't break anything in the application.
Once the code passes the tests, the continuous delivery process kicks in. (This process is referred to as "continuous deployment" when it is fully automated.) The CD process is the "shipping your package to the destination" part of CI/CD. The CD process installs the new code in a staging environment to be reviewed. Once the code has been approved, the CD process deploys it as an application update.
Why is CI/CD important?
The high level of automation from CI/CD provides important benefits:
- Automation makes application changes predictable and reliable.
- Automation reduces human error; repetitive tasks are put into the hands of computers who won't get bored and don't lose focus.
- Automated testing and deployments are easier to audit and validate compared to manual work.
- Automation speeds up the feedback cycle between making application changes and seeing the stakeholders' response to the changes, helping developers get the application to where it needs to be as quickly as possible.
CI/CD and Platform.sh
The CI/CD process requires implementing certain tools. Platform.sh helps automate the implementation of these tools so that developers spend less time managing the tools and learning how to use them. An example of Platform.sh automation is instant cloning. This feature provides you with a separated environment and an URL to look at the latest changes and to offer feedback. We even provide a clone of your existing production site with all the data.
The automation provided by CI/CD and supported by Platform.sh gives developers more time to focus on their most important mission: creating great experiences for users.