AutoRABIT is an end-to-end release management suite specifically aimed at streamlining the development and release of Salesforce.com applications by automating their continuous integration (CI) and continuous delivery (CD) processes. AutoRABIT provides a suite of products for DevOps teams, incorporating a number of tools and processes used by the team to configure and release on the Salesforce platform.
Salesforce has established a development platform called Apex which developers can use to access their back-end database and client-server interfaces in order to create third party security as a service (SaaS) applications. However, the development platform comes with few tooling options and can be complex and inefficient to work with. AutoRABIT attempts to make this process easier for developers by automating the release processes for their cloud software and accelerating their DevOps journeys.
Uses of AutoRABIT
AutoRABIT provides continuous integration support for:
- managed and unmanaged package deployments
- deployments from version control systems to Salesforce
- scheduled builds and deployments
- execution of Apex tests
- visibility of code coverage
- data loading
AutoRABIT gives Salesforce customers a platform on which they can achieve CD. DevOps teams can work in their Salesforce sandboxes/orgs -- identifiers that represent customers’ versions of Salesforce and their data within an instance -- and stimulate AutoRABIT cycles that automate the building, packaging and test execution of their Salesforce applications. This automation facilitates a higher release velocity and faster go-to-market.
Using AutoRABIT, developers can make changes to the configuration and code of key standard objects like account and opportunity. Developers can also alter custom objects as part of the development effort in various sandboxes. The version control systems provided by AutoRABIT are essential to development teams working on these various parallel releases and Salesforce environments.
Version control systems record all the changes developers make to the code, such as who made the changes and problems that were fixed or improvements that were made because of the changes. Version control enables the teams to preserve isolation, parallelism and change analysis in their development and release processes.
How AutoRABIT works
Developers using Salesforce and AutoRABIT can work in individual orgs/sandboxes or share a common development sandbox depending on the licenses purchased by their enterprise. From these sandboxes, they can activate an AutoRABIT cycle that will trigger feedback for the requested change.
The AutoRABIT build agent first gathers the changes and packages the metadata into an archive. Then, the AutoRABIT deployment agent confirms the metadata is deployed into the specific sandbox/org, runs unit tests and generates a code-coverage report. Next, the AutoRABIT test agent runs the configured automated tests in testing tools, such as JMeter, and generates a dashboard report. If the build is successful, then it can be sent to multiple release environments with a single click.
Features of AutoRABIT
As mentioned before, the version control system is essential to success with AutoRABIT; it facilitates CI. The version controller analyzes changes after every cycle and manages the storage class memory (SCM) administration. Furthermore, the version control and change analysis offered by AutoRABIT provides Salesforce applications with out of the box support for other version control systems, such as Perforce, Subversion and Git. AutoRABIT can be configured to gather changes from any of these version control systems as part of an automated build cycle. It can also collect changes from the sandbox and commit them into the version control system for analysis.
The Salesforce Data Loader Pro is an advanced feature found in AutoRABIT. The data loader allows developers to transfer data from the source sandbox/org to the destination in a more expedient way as well as control relationships between stages. Developers benefit from using the data loader because it provides them with the option of execution of a data loading process -- such as run, edit, stop, delete and log -- as well as the advantage of scheduling and performing the data loading of multiple objects and their relationships at one time.
With the Salesforce Data Loader Pro, developers can feasibly check for data integrity between the source and the destination, view detailed reports of failures in the data loader operations and view and maintain data lineage from the operations.
Other features of AutoRABIT include:
- Metadata deployment - This automates the packaging and deployment of Salesforce applications from a source Salesforce org or a version control system into a destination sandbox/org, reducing a lot of manual effort.
- Promotion of builds - This allows the movement of metadata of a successful build into various release environments and runs the test cases to check the promoted builds.
- Full deployment - The metadata of the destination org/sandbox is cleaned up and the metadata deployment is done from the selected build cycle into the destination org.
- Selective deployment - This allows certain features that are developed completely in the sandbox to move to testing without waiting for other work-in-progress features. With this feature, only the selected objects are deployed.
- Sandbox backup and restore - With this, changes are made to the destination sandbox/org during the full and selective deployments. If the deployments fail or have some functional issues, developers can opt to revert back to the original metadata.
- Test automation support - This supports execution of automated tests on a variety of test automation tools out of the box.
- Functional test results - This permits built-in adapters to execute various kinds of functional test automation tools, allowing detailed reports to be generated out of the box. It also provides an option to create a ticket for each failed test case.
AutoRABIT vs. Jenkins
Both AutoRABIT and Jenkins facilitate CI throughout the development and release processes, but Jenkins is one of the most popular tools. Developers often default to Jenkins because it works well with typical software development such as Java, .Net and Ruby. This leads them to expect it to work with Salesforce development and Apex. However, Jenkins is not designed for Apex and therefore requires custom scripts to be written in order to access metadata. For Jenkins to be a compatible and functional Apex solution, significant, continuous engineering investment by the enterprise is required.
Furthermore, Jenkins does not enable code check-in, or upload, while AutoRABIT does. Checking in code is an important step of the CI process. Check-in editors ease this process for development teams by allowing them to easily and frequently upload code into version control systems. Developers using Jenkins struggle with check-in because Jenkins does not have a check-in editor or support version control to sandbox deployments. Therefore, a developer uploading code must perform an additional five or more manual steps.
Similarly, Jenkins does not have a merge editor, forcing the process of merging, or integrating, data to be done manually. In version control, merging is a necessary operation that reconciles changes made to a version-controlled collection of files. This is especially important when the data has been modified on two different branches and then integrated together.
Jenkins also does not support the migration of data and metadata; it only supports application deployment. Therefore, it lacks a faultless process of data migration between sandboxes and orgs, something AutoRABIT supports.
While the cloud architecture of Salesforce gets rid of expensive software infrastructure for its customers, developers must either download the desktop version or access the Jenkins cloud in order to obtain access. Downloading the desktop version might result in additional costs for the physical hardware, installation and setup of a version control archive. Accessing the cloud version can also create additional costs for setting up and using the instance. Both version would require the creation of custom scripts in order to be compatible with Salesforce and any necessary support would also be an additional charge. Overall, using Jenkins on the Salesforce platform instead of AutoRABIT can be time consuming and expensive since it is not built to be compatible with Apex.
AutoRABIT vs. Copado
Copado is a cloud based DevOps and release management solution from Salesforce that is built completely natively on the Salesforce platform. It presents opportunities for both developers and non-developers. Non-deployment related users can work on user stories within the same system as developers without integration to external project management tools using Copado Agile Planning.
Copado also hosts a Compliance Hub that ensures each implementation is compliant by making sure there is a clear definition of guidelines, rigorous manual checks and process discipline. The Compliance Hub provides an enterprise's compliance team with a technical defense as well as the capability to finish projects without looking through compliance check lists after each deployment.