Demystifying - Salesforce DevOps Center
Salesforce DevOps Center is a tool provided by Salesforce which provides an improved experience around change and release management that brings DevOps best practices to your development team, regardless of where you fall on the low-code to pro-code spectrum, that is, even if you are a System Administrator who only knows how to make point-and-click changes and have no knowledge of metadata can also deploy their changes without any problem.
Through a centralised and user-friendly interface, it enables everyone to benefit from DevOps best practices.
Why do we need DevOps?
Organize your work: Track and deploy the changes which are associated with the Work Items, Salesforce provided a new object for DevOps Center which is open to typical Salesforce Flows and other operations that can be done with other objects.
Track changes automatically: When you make any changes to your currently selected working org the changes are automatically tracked. It shows a list of changed metadata components in the DevOps Center and provides the user a user interface by which the users can select the changes which they want to be migrated. So now there will be no need to track your changes or you don’t have to write it somewhere to track salesforce DevOps is there for you.
It uses Github for source control internally: DevOps Center makes it simple to use source control even if someone has never used it before. All you have to do is sign in to GitHub, and the DevOps center will handle the rest.
Deploy changes with clicks: Simply click to deploy changes from one stage to the next by visually watching the deployment pipeline.
Benefits over existing solutions
Has work items working as a project management tool
A user story, task, or problem are examples of logical units of work that are captured by a work item. Projects are used to arrange work items, and each work item is associated with a project
Track changes with modern UI
We can leverage the feature of tracking changes when you start doing your work in an org then all those changes were being tracked automatically, after all, changes being made a user can quickly press the Pull Changes button in the bottom left corner and it fetches all the latest changes, if you want some older metadata then you can add components manually as well.
Seamlessly integrated with Github
It uses Github as version control system, But it is maintained all by itself. When you start working on a work item parallelly it creates a branch on github and tracks all the changes in that branch and when a Lead approves a work item, It gets automatically updated in github as well and vice-versa.
Work with hybrid teams (point and click / vs code)
DevOps center takes care of both types of a team members who still would like to use vs-code for their development. When you start working on a work item it will ask initially how would you like to work ? At that time you can opt for normal vs-code development (It creates a branch and expects users to use that and make all the changes onto that and you can track them in Github and DevOps center as well and the rest process is the same.
Move changes across environments with clicks
Release Manager can quickly select the changes and promote them to the next configured org by selecting desired Test Options by clicks only.
Bundling of tickets
We can select multiple work-items from the pipeline manager and make a combined Bundle of them as a release to the next environment by providing them version number.
Can be installed in any type of org except sandbox
We can quickly install and configure the salesforce DevOps center in any org except sandbox, We can quickly create a new project, configure the release pipeline, authorize the orgs and we are good to go for deployments.
Org in which we can install the DevOps center does not need to have any relation with the production org or any org in the pipeline, It works separately.
Limitations
Currently, it supports version control via GitHub only(other version control tools are not available).
Back promotions are not available yet.
Cannot work on a work item once it is completed(if a bug appears, have to create a new one).
Conflicts are not resolved automatically(manual resolution via Github).
References
https://help.salesforce.com/s/articleView?id=sf.devops_center_add_team_members.htm&type=5
https://help.salesforce.com/s/articleView?id=sf.devops_center_assign_permsets.htm&type=5
FAQs
-
DevOps Center projects and the records related to them are lost when the sandbox is refreshed. You will lose all of your DevOps Center data.
It’s designed so that all team members can long into the same org to access the DevOps Center application. Cloning a sandbox would result in multiple instances of the managed package, which can lead to problems of synchronization issues for teams that are expected to be working on the same project.
Unlike some other packages, Data and metadata already present in your organization are not affected by DevOps Center.
-
We can provide DevOps developers with a Salesforce Limited Access - Free license and Limited Access User Profile and Team member role and DevOps centre permission set and sf_devops_NamedCredentials permission set, and we are good to go.
-
From the Pipeline Section in the DevOps Center app, Open the Environments tab. It automatically detects if there is some difference between orgs. If someone wants to know the difference, they can click on the “what’s difference” hyperlink on that org, and If they want to sync it, they can directly click on sync on that org.