DevOps for Salesforce: CI/CD Challenges

CI creates an ongoing risk of software failure, since teams working on one part of the system may make changes to common components that can cause other teams’ code to fail. Automated testing provides a layer of protection by allowing jobs to be checked and rechecked thousands of times with minimal human intervention. Creating automated tests requires more effort than doing a manual test, but the cost of rerunning each test becomes minimal. So, Automated testing is an ideal solution for high-speed teams that need fast, continuous methods to ensure they don’t fall back as they build new capabilities.

Continuous delivery (CD) is a distinct practice that is often mentioned at the same time as CI. Continuous Delivery was featured in the 2010 book of the same name by Jes Humble and Dave Farley. The CD practice extends the idea of ​​CI by targeting the deployment of code for production in small batches on a regular basis; Ideally at least daily. While CI addresses development risks in parallel, CD addresses risks of delayed feedback from end users.

The program is designed to solve specific problems. But every attempt at a solution by developers is a hypothesis that must be tested and confirmed. Only people who actually experience This issue can tell the developers if these solutions are sufficient. So Developers should get quick feedback from end users to trust what they have built. Teams that ignore this practice operate on assumptions and optimism; The longer the delivery delay, the greater the risk of those assumptions. Poor adoption and user experience are to be expected when teams do not practice continuous delivery.

increasing pressure

CI creates additional pressure for testing quickly, and CD increases this pressure significantly. Introducing small batches of changes reduces the risk of each change and makes undoing them faster and easier. But By definition, we You are changing production systems that thousands or millions of people might use every day. Failure caused by CI may waste a few hours of developer time and delay change delivery. But a failure caused by a CD can prevent thousands of people from doing their jobs, corrupt production data, expose security vulnerabilities and worse.

When developers integrate their work into CI, the goal is to run a quick set of tests that confirm that nothing major is broken. But work that is brought into production needs to pass a comprehensive set of tests to ensure that it meets all functional and structural requirements. On a waterfall-style project, pre-release testing might involve dozens of testers working for months. In continuous delivery, teams must be able to perform tests at every level of the system and have strong confidence that no failures will occur.

Comprehensive testing requires UI testing, testing of processes spanning across multiple systems, data loading and confirmation with APIs, security testing and more. Continuous delivery has pushed the need for automated testing to new levels and led to entirely new methods such as canary deployments. Canary deployments are a form of validation shift testing where a feature is initially delivered to a small subset of end users to check for issues before they are introduced For everyone.

Leave a Comment