Let’s start with defining these terms first.
Continuous Integration (CI): The practice of frequently merging all developer working copies to a shared mainline.
Continuous Delivery (CD): Aims at building, testing, and releasing software faster and more frequently by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for Continuous Delivery.
…and if these definitions aren’t confusing enough, let me add the third term: Continuous Deployment. Continuous Deployment means that every change is automatically deployed to production.
So, why should you care, and my favorite answer is “Release Velocity“. Let me explain.
Remember, when you wrote your first big code (the one after “hello world” J), you compiled it and voila, you saw the results. But then your colleague said: “Did you test it?” So, you thought of various use case scenarios and created tests and ran it. But then your user said: “I want to test it myself.” By the time you got your user feedback, you already wrote 3 new features. Repeat this for 2-3 more cycles and suddenly you realize there’s a mess and it’s increasing exponentially. So you decided to have a separate development/test environment (sandboxes) and a production environment.
Now, let’s say there are 20 more developers like you in your team; you end up with 20 parallel sandboxes. So, you introduce a Version Control system and decided to have a Release Manager to manage these releases into one product release. This ‘mess’ is more common and more exasperating, since I am, of course, oversimplifying…but hopefully you get my drift.
The point is that a significant chunk of development cycle is spent on managing this code(s) vs. writing that code, and CI/CD helps you ease that pain.
Let’s look at key functionalities required to achieve this:
- Version Control: prevent overwriting of each other’s code
- Sandbox Management: synchronize multiple environments
- Deployment Automation: remove manual deployment steps with ability to rollback
- Test Automation: Run functional, Integration, Regression, UAT and other tests automatically.
Once you implement CI/CD as a practice, two things happen:
1) all issues with code integration across multiple sandboxes reduce dramatically and
2) developers spend more time writing code vs. managing bugs.
The end result is a faster release cycle or a higher release velocity.
Courtesy – http://www.autorabit.com/continuous-integration-vs-continuous-delivery-for-salesforce-and-why-you-should-care/
“Explore – Techila Global Services, A Salesforce development company”