Introduction
DevOps has been one of the most exciting trends in the Salesforce ecosystem in recent memory. The rise in different tools and a change in mindset is evolving how Salesforce professionals look to deploy changes. In today’s software development landscape, establishing a robust DevOps center for deployment is crucial for seamless and efficient delivery of applications. In this blog post, we will see process of creating an effective DevOps center, step by step, ensuring successful deployment.
What Is Salesforce DevOps?
In simple terms, this tool allows you to deploy metadata from one Salesforce Org to another. For example, deploy custom objects, apex classes, profiles etc. from Sandbox to Production. Traditionally we have used “Change Sets” to perform this task.
Moreover, the DevOps Center seamlessly integrates modern DevOps best practices, offering a centralized user interface visually appealing, and easy to comprehend.
Looking ahead, Salesforce has made the strategic decision to replace change sets with the DevOps Center. Consequently, further enhancements to Change Sets are not in Salesforce’s current plans.
As part of its release strategy, Salesforce intends to introduce the DevOps Center as a “Freemium” offering. During the general availability (GA) launch, scheduled for the fall of 2022, Salesforce will exclusively provide the free/included version. This version will be accessible to users of Professional, Enterprise, Unlimited, Developer, and Performance editions.
Why Do You Need Salesforce DevOps Tools?
Salesforce DevOps tools encompass a diverse range of functionalities, aiding your development lifecycle by providing support for deployment, data and metadata backup unveil security vulnerabilities and bugs.
At a broader level, these tools offer significant time savings through more dependable deployments, reduced instances of shipping bugs to production, and enhanced collaboration between administrative and development teams.
However, if you have an internal Salesforce development team consisting of multiple individuals or a large organization heavily reliant on custom development, the scenario is entirely different. It is highly likely that you have encountered situations where your changes were inadvertently overwritten by others, leading to the arduous process of deploying changes from a developer sandbox to production, only to discover that the features no longer function as intended.
Traditionally, the only option for administrators and developers to transfer changes declaratively between environments was through the use of change sets. While change sets are relatively straightforward to utilize, they necessitate manual creation and have a few significant drawbacks.
- Firstly, Adding components manually during the creation of change sets can be time-consuming. Deployment errors are also common and can be time consuming to fix.
- You can’t deploy all components via change sets such as standard picklist values or sales processes.
- Each time changes are moved to a different environment (e.g., from Dev to QA to Prod), it is necessary to recreate or clone change sets
- Furthermore, change sets lack the capability to integrate with Version Control systems, preventing the monitoring of changes between environments.
Change sets are merely an example of Salesforce tools can become inadequate as the complexity of a project increases. If you encounter issues at any stage , it might be to explore alternative tools that can provide assistance.
Salesforce DevOps Center
To access the Salesforce DevOps Center, simply navigate to the Setup menu and enter “DevOps Center” into the search bar.
Over the past few years, the Salesforce DevOps Center has garnered significant attention as a freely available deployment tool developed internally by Salesforce. Excitingly, it has now reached the general availability stage.
Previously, comparable and comprehensive tools were only accessible through third-party offerings on the AppExchange, which incurred additional costs.
At its core, the DevOps Center serves as a valuable asset for accelerating technology releases within teams. It empowers users to seamlessly transfer changes between different Salesforce development environments by leveraging features like visual development pipelines, integration with GitHub for source control, and automated change tracking for environment management.
The DevOps Center serves as a long-awaited replacement for Salesforce Change Sets, the conventional method for transferring changes between Salesforce environments. Change sets, although functional, fall short in enabling development teams to adopt modern DevOps best practices, including CI/CD.
In terms of out-of-the-box functionality, the DevOps Center encompasses the following capabilities:
Work Items: A new object is available to track the changes being made, including the metadata items moving across environments.
Automated Change Tracking: Development teams can benefit from automatic change tracking within their sandboxes. This feature provides complete visibility into the items requiring promotion across environments.
Pipelines: Unlike before, Salesforce now offers the ability to define customized pipelines for development environments. Teams can establish their preferred method of promoting changes.
Source Control: DevOps Center enables seamless integration with GitHub source control, granting teams full visibility into changes made, including information about the author and timestamp.
Deploy Changes: Once changes are deemed satisfactory, DevOps Center simplifies the process of viewing the entire development pipeline, bundling changes, and migrating them from one stage to another—all achieved through clicks, without the need for manual coding.
DevOps Benefits
Overall, you can expect the following benefits from starting to integrate DevOps tools into your deployment team:
- Time saved from faster, more reliable deployments.
- Increased release cadence from automation (CI/CD), which also leads to a tighter feedback loop
- Fewer bugs/errors shipped to production thanks to testing.
- Better collaboration between developers and admins, partly because of the audit trail showing who changed what, when, and why (version control).
- Better security due to monitoring and backup.
Deployment Tools
The foremost and widely used category of these tools revolves around deployment. If you’re seeking to venture into Salesforce DevOps, implementing a deployment tool is a guaranteed means to transform the way you conduct Salesforce deployments, ensuring exceptional speed and efficiency.
Rather than relying on change sets or command-line utilities like the Ant Migration tool, most Salesforce deployment apps offer a dedicated user interface, brimming with features that simplify the process of deploying and managing changes. These tools boast a range of features, including:
Version Control: Integrate with your favorite hosting provider such as GitHub, to have full visibility into what was changed, why, when, and by whom.
CI/CD: Take full advantage of Continuous Integration & Delivery processes by creating an automated delivery pipeline of all your sandboxes.
Rollback: Performed a deployment that hasn’t worked as expected? Simply roll back the changes made to ensure there is minimal disruption to your users.
Testing: Ensuring unit tests are run frequently and pass code coverage is essential to smooth deployments. Deployment tools can automate this process.
Reporting: The success of any process is the ability to monitor and adjust based on the performance of the team using the tools. Most Salesforce DevOps tools provide the ability to report on deployments.
Conclusion
Now that we have gained an understanding of DevOps Center, let’s take the first step and dive into it. Here is a comprehensive step-by-step guide, providing detailed instructions on getting started with DevOps Center from scratch. This guide encompasses the following actions:
- Enable & Install DevOps Center
- Create a Connected App
- Assign DevOps Center Permission Sets to Users
- Create a GitHub Account
- Create a Project in DevOps Center
- Establish Environments
- Set Up Your Pipeline
- Create a Work Item
- Build Something in the Development Environment
- Pull Changes & Commit to the Repository
- Complete the Review Process
- Promote Changes to UAT
- Promote Changes to Production
- Uninstall DevOps Center
Estimated completion time for the hands-on execution of these steps is approximately 60-90 minutes.
Other Observations & Findings
- Initially, DevOps Center will be a free/included and paid offering. At GA, Salesforce will only offer the free/included version, which is available with Professional, Enterprise, Unlimited, Developer, Performance editions. Pricing and packaging for the paid offering, which will be released post-GA, are TBD.
- DevOps Center is particularly targeting to be in GA in fall of 2022
- Certainly, install DevOps Center in the org that is the final release org in your pipeline (i.e. Production), or in another org that is unrelated to the orgs in the pipeline. However, it’s not available in sandboxes.
- If you want to add your team members users to your DevOps Center, you can create them as users with License “Salesforce Limited Access – Free”
- The ‘Development Environment’ in DevOps Center needs to be a Sandbox environment. I was not able to use a Developer Edition Org
- Current release of DevOps Center requires that you use it with a cloud-based, GitHub-hosted, github.com account. Other services providers are not supported in the current release.
- Currently the deployments are manual with the click of a button. Didn’t see an option to deploy automatically like what CICD offers.
FAQ s
1.What is the role of DevOps in Salesforce?
Salesforce DevOps Engineers ensure that Salesforce changes can be deployed through a smooth software development lifecycle .
2.Which is the best DevOps tool for Salesforce?
- GitLab.
- GitHub.
- Gearset.
- Jenkins.
- Flosum.
- AutoRABIT.
- Copado CI/CD.
- Red Hat Ansible Automation Platform.
3.Does Salesforce DevOps require coding?
Salesforce job roles can vary from admin, developers, quality analysts, business analysts, to product owners. While the part of Salesforce Administrator does not need coding knowledge, that of development needs coding proficiency.
For More Blogs: Click here