CumulusCI was recently added to the List of Salesforce-first devops solutions. Here is a quick overview of why solution architects should explore CumulusCI when formulating a practical devops strategy.
CumulusCI is a Salesforce.org Project
Salesforce.org’s mission is to support the non-profit community’s use of Salesforce as a donation and management platform. Salesforce.org has a long history of publishing freely available toolkits and other useful items on GitHub and the Salesforce AppExchange that are useful to the entire Salesforce community, not just the non-profit sector.
CumulusCI has excellent documentation and a Trailhead module:
- CumulusCI Documentation
- Salesforce Trailhead Trail: Building Applications with CumulusCI
According to Salesforce officials, the upcoming release of Salesforce DevOps Center should not impact existing CumulusCI users. DevOps Center may add additional release management capabilities to CumulusCI users. CumulusCI is a FOSS project and is not part of the Salesforce master agreement.
CumulusCI Is a Scripting CLI
One way to understand CumulusCI’s command line interface, called CCI-CLI, is that it is a command line interface that runs best on a Linux host and it doesn’t have server component, like some other devops tools. It is used in addition to SFDX-CLI as a scripting tool.
To drill into the CumulusCI solution architecture, take a look at the Command Server in this representation of an ideal way to build a Salesforce devops solution.
And let us go further into the Command Server and examine its components. The command server is, in this case, a compute cluster that launches Docker containers to run scripts.
Here is how CumulusCI works in this type of environment. Scripts use the CCI-CLI command line interface to perform source-based operations on a Salesforce org. The Script Dispatcher receives parameterized commands from an enterprise developer or other automated process and then retrieves the script for execution.
The script dispatcher then sends a job to execute a script in a runner container. The runner container is a Docker container that installs all the operating system tools, components and CLIs needed by the scripts. The runner also pulls in the repository that has all of the Salesforce metadata required for a deployment. Next the container executes the script with the CCI-CLI commands.
Look back at the Salesforce Devops System Integration diagram. The runner executes the script with CCI-CLI commands, and then Salesforce API network calls and other commands through the enterprise network to Salesforce for execution. It is in this way that Command Servers are an essential part in performing Salesforce devops.
CumulusCI Is An Essential Tool
Cumulus CI is blessed with community, documentation, ease of use. CumulusCI is highly recommend to be evaluated by Salesforce solution architects as part of their devops solution.
Many More Products To Go
Thank you to everybody who has been reading the blog and reacting to the content. It is exciting to me to have so much interesting topics to discuss. If you have any ideas be sure to email them to email@example.com.
Vern’s Salesforce Devops Posts
- Salesforce SDLC Nomenclature: Adopting the Ways of The Devops
- Salesforce Devops in Early 2021
- The Ways of the Salesforce Devops: Build or Buy?
- SFDX-CLI Paves The Way for Open-Source Salesforce Devops
About Vernon Keenan
Vernon Keenan (LinkedIn) works as a senior information technology industry consultant based in Oakland, California.
He earned his B.Sc. in Biomedical Engineering at Northwestern University where he programmed a PDP-8 with punched paper tape.
In his 34-year-long career he has been a teacher, SPSS programmer, database administrator, clinical researcher, technology journalist, product marketing manager, market researcher, management consultant, industry analyst. Most recently he has been a telecom operator, cloud architect, Go devops engineer and Salesforce Developer/Architect.
For inquiries about Salesforce strategy briefings or solution architect work please contact Vern directly at +1-510-679-1900 or firstname.lastname@example.org.