® White Paper

DevOps for Salesforce: Choosing Between a Build and Buy Approach

Even in the ecosystem surrounding Salesforce (which was We are living in the not a focus of DevOps activity early on), organizations Age of DevOps. are now looking for ways to leverage DevOps and CI/CD. This can be challenging, because a CI/CD solution for ​ Salesforce needs to address unique challenges that do not exist in the context of generic DevOps. Those challenges include issues such as how to integrate Salesforce (a decades-old platform that was first released well before anyone was talking about DevOps) into a CI/CD pipeline from a technical perspective. They also include questions related to managing Salesforce metadata, parent-child relationships, and auditing, which standard DevOps tools are not typically able to address. With these challenges in mind, this white paper walks through best practices for implementing a Salesforce- friendly DevOps solution. In particular, it focuses on how to make the right decision regarding whether to build a CI/CD pipeline for Salesforce by implementing your own toolchain or adopting a ready-made solution. In other words, we address the build-vs.-buy question of Salesforce DevOps.

To learn more about AutoRABIT and find out how you can set up an AutoRABIT Playground to test the product for free, visit autorabit.com. Build vs. Buy

Considerations

Resources • Do you have the headcount to create what you need? • Can you outsource if necessary? • Maintenance?

Timeline • How soon do you want/need functionality? • Can you afford to wait?

Uniqueness • How “out-of-the-box” are your needs? • Do your research

Competition • Consider the business landscape your company operates in • The prize is smaller for second & third place

2 ©2019 AutoRABIT Inc. ®

The Components of a DevOps Solution Terms such as DevOps solution or CI/CD toolchain refer to the set of steps that organizations must perform in order to release in a way that meets the goals of DevOps culture. DevOps culture emphasizes constant communication across the team responsible for software delivery, an embrace of automation wherever possible, and a commitment to efficiency and continuous improvement. To put those principles into practice, DevOps teams look for tool sets that automate and streamline all of the steps required to take code from design through to deployment and management within production environments. The goal of a DevOps toolchain should be to make the various stages of software production fast and continuous. It should help organizations avoid unnecessary delays or wastes of time, as well as help them achieve maximum visibility into the state of their software delivery process. Salesforce for DevOps Is Different The market for DevOps tools in general is saturated. There are a wide variety of code management, integration, and release automation solutions available, from both open source projects and commercial vendors. For organizations that build Salesforce applications, however, few of these tools are useful. That’s because DevOps for Salesforce involves a variety of unique challenges and special needs. • Generic DevOps tools, such as open source CI servers and build tools like Jenkins, lack critical features for enabling automation and efficiency within Salesforce delivery pipelines. For example, generic DevOps build tools require an entire XML file for every deployment, instead of being able to detect only which parts of the XML file have changed. That’s highly inefficient for Salesforce apps, whose XML structure typically changes with each deployment. • Similarly, most DevOps build tools have a limited ability to understand Salesforce object hierarchies during data migration. As a result, they require manual effort on the part of admins to ensure smooth migrations to target environments. Manual effort is something that DevOps aims to minimize. • Deployment rollbacks — important for deploying DevOps effectively in fast-changing Salesforce environments — are another feature that is missing in most DevOps build tools. Without extensive manual scripting efforts, they cannot automatically roll back a problematic deployment in order to minimize disruptions to end-users. • Additionally, in order to use generic DevOps tools for Salesforce application delivery, organizations must manually update build scripts constantly. The tools can automate builds, but they can’t automatically keep up-to-date with changing Salesforce metadata components, API versions, and so on. • Finally, open source CI servers and build tools are not designed with the needs of the enterprise in mind. Most are hampered by cloud infrastructure restrictions, which severely limit deployment options and throttles release speed. Such solutions lack cloud security and offer little in terms of compliance.

DevOps for Salesforce: Choosing Between a Build and Buy Approach 3 The Challenges of Building Your Own DevOps Solution for Salesforce

Consider the following: Building your own DevOps toolchain for Cost Salesforce software delivery can seem On the surface, building your own Salesforce CI/CD toolset may seem cost-effective, especially because you tempting. This is especially true because can acquire some generic CI/CD tools for free. However, many of the tools for building a standard when you factor in the costs of employee time, cost savings CI/CD pipeline (such as CI servers, version- can quickly evaporate. control systems and release automation Even with a pipeline that incorporates free tools, employees tools software) are free and open source. will need to spend considerable time modifying those tools to be compatible with Salesforce. Build tools need to be However, for a Salesforce application customized in order to be able to understand and address in particular, building your own DevOps the requirements of the metadata API. Deploy tools must solution is often challenging, and understand Salesforce dependencies. Tools for managing ultimately not worth the time, money and visualizing source code must be tailored to keep in sync with the ever-changing requirements of Salesforce itself. or risk. Organizations will also need to write some custom tools to address tasks that open source tools cannot cover, such as Salesforce-specific application monitoring. And they will need to maintain these tools on an ongoing basis. As a result, a self-built Salesforce DevOps toolset could easily end up costing millions of dollars in upfront expense, if it requires the full-time effort of multiple software engineers who command salaries of $150,000 or more per year. It could also cost hundreds of thousands of dollars per year in employee time to maintain the solution on an ongoing basis.

Efficiency of use A Salesforce DevOps pipeline that you build yourself is not likely to be highly efficient. As noted above, it will lack awareness of Salesforce-specific requirements, like how metadata impacts deployment. This means that the solution will impose a form of technical debt on your organization, because using it will require extra effort, as compared to a solution that is designed to be Salesforce-aware from the start.

4 ©2019 AutoRABIT Inc. Challenges (continued) ®

Functionality gaps Maintenance As noted above, some of the tools required to All software has to be maintained. But software that build a standard CI/CD pipeline are available for free; for depends on Salesforce imposes an extra-heavy maintenance example, there are a number of open source CI servers, burden. such as Jenkins and Travis CI. The problem with these Salesforce issues three releases every year. Every release tools for doing Salesforce DevOps, however, is that none of includes new metadata types, or changes to existing ones. them were designed to address the unique requirements of For example, Permission Sets behavior completely changed Salesforce software. As a result, they leave many functional in Salesforce API 40.0. Similarly, FlexiPages sees changes to gaps that must be filled via manual effort and maintenance. metadata structure in almost every release. There are also important steps in the CI/CD process that Keeping a DevOps toolchain compatible with Salesforce’s free tools don’t address at all. For example, you will be ever-changing metadata types and other updates requires a hard-pressed to find an open source tool that can automate significant investment of ongoing resources if you build the application deployment, especially for a multi-branched DevOps solution yourself. Salesforce application in which understanding metadata and Distraction from main business dependencies is critical for efficient deployment. Given the amount of custom tooling required, cre- Consider, too, the fact that Salesforce is a continuously ating your own DevOps solution will require you not just to evolving platform. In recent years, Salesforce has introduced commit developers to write the code, but also to hire release tools like Salesforce DX, which need to be integrated into a engineers to manage the process. Even if you already have DevOps solution. Thus, even if you manage to build a DevOps such employees on staff, asking them to oversee a DevOps solution that provides all of the functionality you require for project will distract them from performing the core Salesforce Salesforce today, the same might not hold true tomorrow. development work that powers your business. Time-to-use Technical debt The pressure to leverage DevOps is high, and Technical debt refers to time or resources that you waiting on and customization in waste repeatedly whenever performing a given task due to order to begin implementing a CI/CD pipeline can place your underlying problems that, if they were resolved, would free organization at a disadvantage. This is why building your you from having to incur this extra cost on a continual basis. own solution can be risky; it may take months, or even years, Building your own Salesforce DevOps solution leaves you before the solution is ready for production use. at risk of saddling yourself with technical debt. The solution will not likely be as efficient as one created by a team that specializes in this type of solution. Nor will it be as well-maintained, or as well-equipped to handle continual metadata and other changes in Salesforce. In short: The solution might work at a basic level, but it will probably not work efficiently, and you’ll put yourself in technical debt as a result.

DevOps for Salesforce: Choosing Between a Build and Buy Approach 5 An Alternative Approach–AutoRABIT, a Turnkey DevOps Solution for Salesforce

Given that most DevOps tools were not designed for Salesforce, you might assume that building your own solution is the only way to achieve DevOps for Salesforce. Fortunately, that’s not the case. You can use AutoRABIT, a Salesforce release manage- ment suite designed specifically for businesses that specialize in Salesforce software and want to embrace DevOps and CI/CD. The following features highlight AutoRABIT’s value as a turnkey DevOps solution for Salesforce:

Metadata management No legacy software With AutoRABIT, you need not worry about the AutoRABIT is a fully SaaS solution. That means that complexity of Salesforce metadata changes, or the it is always up-to-date, and users need not worry about introduction of new metadata types. AutoRABIT is having their DevOps pipelines bogged down by legacy constantly updated to reflect changes to Salesforce code or tools. Nor do they have to worry about their tooling metadata types, making it possible for you to focus on becoming outdated or creating technical debt because developing and deploying your software, instead of worrying of changes to Salesforce or metadata types. about metadata. Popular and well-documented AutoRABIT’s metadata management features are available What is popular may not always be right. But when at no additional cost as part of the core product. it comes to DevOps software, it often is. The fact that Fast deployments through XML parsing AutoRABIT has a large market presence means that many AutoRABIT parses XML files during application DevOps professionals who work on Salesforce software deployment to determine what has changed since the last are already familiar with the product, mitigating the need deployment. to train new employees when they join your organization. It uses that information to avoid redeploying components In addition, AutoRABIT’s extensive documentation makes that have not been updated, thereby saving time and it easy to look up technical information about the product optimizing resources. whenever necessary.

100+ DevOps tool integrations Productivity-enhancing features AutoRABIT offers more than 100 integrations with AutoRABIT is designed not just to enable DevOps, but a wide variety of other DevOps tools. Those tools range also to help businesses get the very most out of DevOps. from source-control systems like Git, to automated testing Toward that end, it offers features to enhance productivity, frameworks like Selenium, to bug-tracking tools like Jira. such as Check-In Gate, which automatically validates All of these integrations, which are available from AutoRABIT deployments, performs code analysis, and generates a out-of-the-box with no additional configuration required, report so that reviewers can easily determine whether to mean that AutoRABIT can connect your DevOps workflow approve or reject code at the time of check-in. Similarly, to whichever third-party tools you require to support your AutoRABIT makes it possible to configure code conflicts particular software delivery needs. to be resolved automatically, if desired, in order to keep the CI/CD pipeline flowing smoothly. AutoRABIT also supports Turnkey CI setup flexible branching so that you can deploy code via multiple Just like Salesforce itself, AutoRABIT is branches easily and as needed. extraordinarily easy to set up and use. You need only to Features like these help developers bring Salesforce log in to the browser-based interface and register your software to market faster, increase productivity, and double- Salesforce development sandboxes. AutoRABIT handles down on . the rest, giving you an instant-on, turnkey CI pipeline that requires no significant setup or maintenance on your part.

6 ©2019 AutoRABIT Inc. An Alternative Approach (continued) ®

The unique value of AutoRABIT extends far beyond the fact that it was designed with Salesforce in mind. AutoRABIT offers an array of special features that make it simple and cost-efficient to achieve CI/CD, even in an ecosystem complicated by constant Salesforce updates, metadata requirements and complex data architectures.

Automated rollback Intelligent build script parsing DevOps is not only about delivering software and Instead of depending on engineers to keep build software updates faster. It should also enable teams to scripts up-to-date manually as generic DevOps tools do, address problems quickly, even if those problems occur AutoRABIT automatically identifies changes in build script once software has reached production. That’s why requirements as organization requirements evolve. AutoRABIT offers automated rollback deployment, so that a problematic deployment can quickly be pulled and replaced with a different version that is known to be stable.

Hybrid cloud deployment AutoRABIT offers a flexible hybrid cloud deployment model. That makes it easy to take advantage of the cloud for deployment while still addressing security or compliance considerations that might pose problems when relying on a traditional, non-hybrid cloud architecture.

Conclusion However you measure value — whether in terms of initial time investment, development costs, maintenance burden, productivity, or efficiency — AutoRABIT delivers a DevOps solution for Salesforce that is worth much more than a solution built in-house. With its integrated CI framework and data loader, automated environment provisioning, and built-in auditing and reporting, AutoRABIT gives you everything needed to run a Salesforce DevOps practice in a single tool. It obviates the expenditure of your company’s own developer resources in developing and maintaining a DevOps solution, or trying to shoehorn stock DevOps tools into the Salesforce ecosystem. It abstracts away the complexity of Salesforce metadata management and provides support for metadata types that is always up-to-date. It offers an array of features that maximize the productivity of a CI/CD pipeline for Salesforce. And it does all of this at a fraction of the total cost of building your own Salesforce DevOps solution. To learn more about AutoRABIT and find out how you can set up an AutoRABIT Playground to test the product for free, visit autorabit.com.

DevOps for Salesforce: Choosing Between a Build and Buy Approach 7 ®

AutoRABIT Around the Globe

London, UK New York, NY (Sales, 2019) (Sales, 2019) Washington, DC Hyderabad, India San Francisco, CA (Service Delivery) (R&D Center)

Sydney, Australia (Sales)

For more information, please visit autorabit.com

About AutoRABIT

AutoRABIT is a cloud-based release automation suite specifically designed for Salesforce.com. With its out-of-the box features, AutoRABIT successfully empowers major corporations, such as Capital One, MasterCard, Coke, Schneider electric, and Caterpillar to implement as a Salesforce best practice. Supporting the end-to- end Salesforce deployment and release processes, AutoRABIT equips Salesforce developers, admins and analysts to achieve higher release velocity (days instead of weeks/months) and substantially improved time to market schedules by automating version control, deployment, testing, data loading and sandbox management.

AutoRABIT.com AutoRABIT © 2019 AutoRABIT. All rights reserved. [email protected] 2400 Camino Ramon, Suite 280 + 1 925 500 1004 San Ramon, CA 94583 USA