Community Cloud – What is it? Advantages, Disadvantages and an Example
In this post, we explain what the Salesforce Community / Experience Cloud is. We also provide an example of its use and highlight ...
In this blog post, we will discuss what CI/CD (Continuous Integration and Continuous Deployment) is and how it helps us in our commitment to excellence. Moreover, we will use examples from our development process for apps for the Salesforce AppExchange.
We always strive to provide our customers with the best solutions that their business requires, thereby building trust in our company as a team of high-tech product developers.
And as an extra bonus, you’ll discover how Continuous Integration relates to the panicking feeling when you realize you’ve lost your keys 😱🔓 – and the relief you feel when you remember that you heard that *clink* … still in your friend’s garden.
First, the technical version: CI/CD stands for Continuous Integration (CI) and Continuous Deployment (CD). It is a set of practices aimed at automating and optimizing the software development and delivery process.
While CI and CD are often mentioned together, there are significant differences:
Continuous Integration focuses on integrating code changes and performing automated tests. The primary goal is to detect and resolve integration issues early. Instead of having a few big integrations of large changes (see Big Bang Integration below), CI involves continuously integrating small changes into the software. This makes it much easier to identify and fix problems that inevitably occur during software development.
A Metaphor: CI as Knowing Where You Lost Your Keys: Imagine you’re returning home after a delightful visit with a friend. As you reach your door, you realize your keys are missing. 😱😰 Panic sets in, but then you recall hearing a distinct clinking sound just after you left your friend’s place. Relief washes over you because now, instead of retracing every step from their house to yours, you know exactly where to search – right in front of their home. Similarly, by integrating smaller code changes continuously, CI helps you quickly pinpoint and resolve issues, saving time and reducing frustration.
Another way to understand what CI is about is comparing it to Big Bang Integration.
Big Bang Integration: When you work on the different parts of a complex system, such as software, individually and then try to bring them back together days, weeks, or even months later, this is also known as big bang integration. It usually doesn’t work well and leads to extreme inefficiencies.
Continuous Integration: CI tries to prevent exactly that. A function is implemented, tested, and integrated into a running system as quickly as possible. Development progress is therefore continuously integrated.
A Salesforce-Specific Example: To illustrate, consider a common scenario in Salesforce development: imagine you’ve added a new field to a page layout. During CI, this change is continuously integrated into the shared codebase. However, if you forget to retrieve this field during deployment but still include the layout, CI tools will flag this discrepancy, alerting you to the missing field. This is a simple yet powerful example of how CI ensures that small, incremental changes are correctly integrated, minimizing the risk of errors during later stages.
Despite thorough testing during CI, some errors might still occur. These errors can stem from:
For us, the most common issues stem from API changes made by third parties, though Salesforce updates can occasionally cause problems as well, although this is quite rare.
Leveraging Past Errors: To continuously improve our CI pipeline, we make a concerted effort to integrate errors that weren’t caught during initial automated testing into our future tests. We review and enhance our CI pipeline every six months to ensure it remains robust and effective.
While CI helps catch most issues early, it doesn’t guarantee a flawless product, particularly since it only covers everything up to the pre-deployment testing phase (meaning the software hasn’t yet reached the customer). This is where Continuous Deployment comes into play.
Continuous Deployment focuses on automatically deploying the code to the production environment. The principle is the same as it was for CI: instead of having one big deployment, you try to make the deployment process more continuous. The primary goal is to ensure the code is always ready to go live.
CI/CD pipelines help to understand the differences between CI and CD.
In this post, we explain what the Salesforce Community / Experience Cloud is. We also provide an example of its use and highlight ...
Background information on the software solution Mein Arxonas: How have we built secure and powerful data storage? Click ...
Part 1 - the Arxonas perspective: subscription management, payment processing, accounting: everything automated! Click here ...
We look forward to hearing from you and will usually reply within one business day!