We’ve reached 2023, and DevOps in the Salesforce ecosystem has gained full momentum. Salesforce DevOps Center entered GA in December 2022 as the answer to replace change sets for deploying changes between Salesforce environments.
I’ll admit that previously, I didn’t have much confidence in the product. But I’m always willing to give a feature a fair try. Join me as I set up DevOps Center and learn what it’s about.
What is Salesforce DevOps
DevOps (or Development Operations) combines people, processes, and technology to provide value to customers. DevOps is considered a staple in an agile development team as it allows changes to be pushed rapidly and continuously.
DevOps has been around for the greater part of the last decade but only recently has been a focal point in Salesforce in the past couple of years. This focus was added as we look to deliver value quicker.
Traditionally (or at least since the early 201x), we have used change sets to push changes between Salesforce environments. But, change sets are wrought with challenges and have become a four-letter word amongst some Salesforce professionals.
Companies such as AutoRabbit, Copado, or Gearset entered the space to make changes more manageable and have built successful businesses doing so.
But, a Salesforce native solution was missing. In 2022, Salesforce fixed that by releasing Salesforce DevOps Center as a Beta. Now, it is Generally Available (GA) as of December.
DevOps Center uses a release management approach, bundling components together. It utilizes Source/Version Control through GitHub to track metadata changes and bundle releases along the pipeline.
This allows us to track changes and follow the history of our organization as it grows over time. Since Source Control automatically tracks these changes.
Salesforce DevOps Center Drawbacks
- Currently only supports GitHub as source control. GitHub Enterprise is not supported.
- A bit tedious to set up. Not the worst, but certainly not the quickest.
- No rollback features at this time. If we deploy a feature or release and need to revert, we have to create our own manual exclusion Pull Request.
- Changes in metadata are represented by name only. No quick comparison of metadata changes to determine if we want to deploy a change.
- No ability to back-propagate items from a hotfix branch.
Salesforce DevOps Center Advantages
- Still an early product with plenty of room to grow. This is only the first iteration, and it’s solid. The learning curve is high, but we should see improvements as the Salesforce Product team receives feedback.
- Will receive the most attention for changes in how Salesforce handles branch management.
- Salesforce native. No need to manage another platform. Your security models will work directly with the center.
- No additional cost. That alone is worth an exploration of the platform.
Getting Started With Salesforce DevOps Center
Salesforce DevOps Center is available with Enterprise, Performance, Professional, Unlimited, and Developer editions.
You may install it in your Production or Developer edition orgs. DevOps Center is unavailable to install in a Sandbox or Scratch Org; however, you may utilize them as part of your pipeline.
Enable DevOps Center
Salesforce has recently moved towards a managed package approach to extend the platform. We have seen this with Code Builder, and DevOps Center is no different. There are a few small steps to complete within your organization.
To get started, navigate to Setup and type DevOps within the quick search bar.
Selective DevOps Center will bring the main screen with a toggle. There’s not much to see at the moment, but enabling the toggle brings up the acceptance modal.
Clicking Accept activates the Install Package button. I won’t cover the following screens as it’s the same as installing any other package from the AppExchange. However, you should install it for Admins Only.
Once the package is installed – it takes a while. Feel free to get a cup of coffee – there are some additional steps before you can get into DevOps Center.
Create a Connected App
DevOps is powerful behind the scenes, connecting different orgs, and fully leverages the DevHub. We must set up a connected app to bridge the gaps.
Type App Manager into the Quick Find bar.
Click New Connected App to bring up the connected app screen.
The exact name of the app doesn’t have to match, but for simplicity, I recommend matching the following fields:
- Connected App Name: DevOps Center
- API Name: DevOps_Center
- Contact Email: email@example.com
- Logo Image URL: https://tinyurl.com/doc-icon
- Description: Manage your development and release processes
- Start URL: /sf_devops/DevOpsCenter.app
Click Save, which will create the Managed App itself. Now we need to assign the app some permissions.
Clicking Manage will allow us to edit the policies assigned to the application.
We want to assign a permission set to the app to allow it to perform some actions on our behalf. This permission set came as part of the managed package we installed earlier.
See, no trickery here! The specific permission set we’re looking for is sf_devops_NamedCredentials. As the name suggests, it provides access to the Named Credentials for DevOps Center.
Assign the DevOps Center Permission Sets
There are several other Permission Sets here if you look closely. I won’t go into deep detail here. Still, I suggest looking at the grants they give to familiarize yourself with the security model.
Remember, we shouldn’t assign these to everyone, as least privileged access should apply.
For us to access DevOps Center, there are a few permission sets we need to assign to our DevOps Center users.
The following table comes directly from Salesforce’s Help Center and is a great reference:
DevOps Center Permission Sets
|DevOps Center||The base permission set for DevOps Center. Provides the data access and permissions needed to manage customizations for DevOps Center work items. Ability to view all connected environments and pipelines.|
Assign to: all DevOps Center users, including team members also assigned the DevOps Center Manager permission set. The two permission sets don’t overlap.
|DevOps Center Manager||Provides the data access and permissions needed to set up DevOps Center projects, environments, and users.|
Assign to: team/project managers
|DevOps Center Release Manager||Provides permissions to perform promotions through the pipeline.|
Assign to: release manager and any team members who promote changes through the pipeline
|sf_devops_InitializeEnvironments||Allows managers of DevOps Center projects to manage the connections to work environments. Includes the Modify Metadata Through Metadata API Functions and Customize Application user permissions, so the manager can create NamedCredential records.|
Assign to: team/project managers
|sf_devops_NamedCredentials||Grants access to the named credentials needed to authenticate to environments. Created and maintained automatically by DevOps Center.|
Assign to: all DevOps Center users
Once permissions are assigned, you can launch DevOps Center from the App Launcher. It doesn’t look like much yet, but the magic is about to happen.
That completes the initial installation of the Salesforce DevOps Center. This is where the real fun begins with setting up our pipelines and connecting to our version control system.
In the next part of this series, we’ll set up our pipelines which include connecting to GitHub and any sandboxes we want as part of our process.
So, get your logins ready; you’ll want at least two sandboxes, a production org, and your GitHub login credentials.