Trying to figure out what DevOps Center is? In this article, we'll introduce DevOps, talk about tools that people typically use for Salesforce DevOps, and talk about the new DevOps Center that is going into public beta in June 2022.
Let's begin with the 'DevOps' definition. It is a collection of practices that integrate software development (Dev) and operations (Ops) to help teams produce, test, and deliver software faster and more reliably. Think of developer operations like you think about sales operations or marketing operations - it's the tools and processes that enable the department's work. Since its inception in 2009, the word "DevOps" has been used to describe a combination of cultural ideas, practices, and tools that strive to shorten the development life cycle and improve software quality.
Therefore, in general, Salesforce DevOps focuses on ensuring that Salesforce administrators and developers can deploy changes, work through the software development life cycle efficiently, and deploy secure, effective, high-quality solutions.
We consider some of the core objectives of Salesforce DevOps to be:
- Reducing the development time for changes.
- Improving the quality and security of releases.
- Saving time by streamlining processes such as deployments and testing.
- Enhancing communication between stakeholders, developers, and users.
What are the Benefits?
DevOps is all about making it easier for teams to add new features and solve important problems quickly and confidently. So it shouldn't be a surprise that teams that focus on improving DevOps benefit from:
- Changes and new features can be made and deployed in less time
- Fewer bugs and fewer breaks in service
- Faster fixes when there's an issue
- Reliable deployments that save time
- Better collaboration and time management
Unfortunately, many companies just focus on building new features and never work on the process or technology. Imagine giving a race car driver a car from the 1990s and asking them just to drive faster to win a modern race. Don't be the slow team using outdated tools and techniques. Add a proactive DevOps strategy to your team, and you'll be amazed at what your team can do.
Salesforce DevOps Tools
There are a plethora of choices when it comes to Salesforce DevOps tools. For the categories below, we'll be highlighting the Salesforce recommended tools and partner or community tools that we like. This is by no means an exhaustive list.
1. Integrated Development Environments (IDEs)
If you're an admin, you'll probably be doing all of your changes in a Salesforce sandbox or developer org (or maybe directly in production). But the first tool that most developers will need is an IDE. The IDE is a file editor combined with some tools that make development easier. In this case, you can skip to section 2.
Salesforce recommends the following tools to be set up on your computer for Salesforce development. They've even created a trailhead to walk you through it.
- Visual Studio Code (VS Code) with the Salesforce Extension Pack plugin
- Salesforce CLI
Since the code and Salesforce metadata are stored in plain text, you can pretty much edit them in any text editor instead of VS Code. There are even several purpose-built partner tools for Salesforce development:
- Illuminated Cloud 2 for IntelliJ
- Developer Console (for quick edits in a Salesforce org)
- The Welkin Suite
And, since the metadata API and tooling API are fully exposed, you could also create your toolsets. Have enough options yet?
2. Version Control
As soon as you have your IDE set up, you'll be able to start writing code and deploying it to Salesforce. But then you need to save it. If you just save it on your computer, you might lose all of your work at any point. If you just save it to your Salesforce org, what happens if someone else changes it? Enter Git, currently the most popular version control system. Git will allow you to keep track of changes to your Salesforce code, although it takes a little time to learn and discuss how to use it as a team.
Once you have Git installed, sign up with a service like GitHub to be able to host your git repository online so that it's backed up and you can share it with others.
3. Continuous Integration and Delivery (CI/CD)
These tools should make it easier for developers to move changes between environments, see the history of deployments, and debug issues. Without setting up anything else, you can already deploy changes with the Salesforce CLI mentioned in the section on IDEs or using change sets from within the Salesforce org. But unless you're a solo developer making the occasional change, the benefits of CI/CD typically outweigh the time and cost required to set it up.
To explain it simply, CI/CD are just terms for processes that help merge changes, test them, and deploy them to the appropriate environments. Continuous Delivery usually means that deployments to end users can happen automatically, where Continuous Integration just means changes are merged and tested somewhere, typically in a pre-production environment. You just need a computer to run some tasks on demand to do this. Here are some tools and services that are often used to help with this:
- GitHub Actions or BitBucket Pipelines - if you're using one of these git hosts, it's very quick to get started with one of their tools.
- Jenkins - A very popular open-source option that you can run on your servers or various hosting providers.
- Heroku Pipelines - If you want to keep it under the salesforce.com umbrella, Heroku offers an option for managing app deployments.
- GitLab, TravisCI, CircleCI - Other popular CI/CD services.
4. Automated Testing
The more frequently the code is changed, or new features are added to the build, the more sensitive it is to flaws and issues. Integrating testing technologies is crucial for ensuring code quality and security. And if you're writing Apex, it's required by Salesforce.
When testing Apex, you can rely on the deployment settings to control which tests are run when deploying to an org or running a test against an org. Learn more about Testing Apex in the Apex Developer Guide.
If you are building Lightning Web Components or other web applications, there are various tools you can use for testing these. Salesforce recommends Jest. It has adapted it to work with Lightning Web Components. You can read more in the Lightning Web Component Developer Guide.
If you are building other technologies, look into what frameworks people use for testing. There are all kinds of testing frameworks to make sure your application works correctly without manually testing every feature in every version.
5. Static Code Analysis
If your organization already has CI/CD set up and has covered the basic automated testing, one of the following things to add would be other automated tools that review code changes. There are various tools that can be used to analyze your code. Here are some examples of what you can do with static code analyzers:
- Enforce Apex best practices like unit tests actually use an assert to verify results.
- Scan for code style, like naming conventions on methods.
- Look for security issues such as enforcing CRUD permissions.
- Fix basic formatting like proper indentation in the code.
- Scan your visualforce pages or lightning web components for issues.
- Identify code that has been copied and pasted from an outside source.
Here are some of the most common static code analysis tools for Salesforce development:
- Sfdx-scanner - combines some popular rule sets into one package for Salesforce development: ESLint, PMD, PMD copy-paste detector, and RetireJS. It can be plugged into almost all CI/CD pipelines or run on your computer.
- PMD - if you're just doing Apex development or doing Apex with some other languages, you can use the open-source PMD and the Apex rules. These are included in sfdx-scanner.
- Codes can - A paid service that can scan your code and integrate with your CI/CD pipeline in several different ways.
- Checkmarx - One of the original vendors to create an application security testing tool for Salesforce. Checkmarx is available through Salesforce for customers and partners to use through the customer portal or partner portal. Although Salesforce does not expose an endpoint, you can use it in CI/CD; you'd have to subscribe to Checkmarx.
6. Requirements Tracking
While this category may be last, it doesn't have to be the last tool you implement. With the tools above, you'll have a development process that makes it easy to release quality code, but it's still good to have a system that tracks WHY those changes were made and what you want to do in the future. There are a large number of systems out there, but here are the most common ones we see at Salesforce customers and partners:
- Salesforce apps such as Service Cloud or one of the apps on the AppExchange like Agile Accelerator.
- Jira
- GitHub issues - built right into GitHub; this is an easy option if you're using GitHub for source code control and want a simple system that easily integrates with developer workflow.
DevOps Center
So why haven't we mentioned the DevOps center in any of the sections above? DevOps Center combines several of the tools above and is targeted mainly at Salesforce administrators. Currently, Salesforce administrators have to choose between a few less-than-desirable options:
- Just make changes in production. This is prone to various issues but is still one of the most prevalent options for making admin changes.
- Make changes in a sandbox and use change sets to push changes to production. These are slow and prone to problems.
- Make changes in a sandbox or development environment and then ask a developer to move their changes. Not exactly streamlined, but it works for some organizations or short projects.
- Learn developer tools like Salesforce CLI and Git so they can contribute their changes to the code repository for releases with code. It can be a steep learning curve for an admin, but a great toolset to learn.
- Use a third-party tool such as Gearset or Copado. This requires the whole organization to get on board and agree to their process.
DevOps Center, which will be available for public beta in June 2022, looks to make this process much easier by creating a user interface that can be used to control the Salesforce CLI and Git interactions while also integrating with requirements gathering. This allows you to do exciting things with just a few clicks, like:
- Keep track of user stories and related work items.
- Identify changes that were made in an org.
- Deploy changes from one org to another.
- Track an entire pipeline through multiple Salesforce orgs.
DevOps Center will be released as a managed package that you install into Salesforce. Keep an eye out for announcements from Salesforce when it is available. DevOps Center may be the tool you need to get the admins involved in the developer release process if you have admins and developers working side-by-side.
DevOps Methodologies
While having the right tools is critical, your team still needs to figure out how to work together. DevOps methodology is a way of making software in which Development and IT Operations work together throughout the software's lifecycle to make it easier to release reliable software faster. A DevOps methodology is a group of practices and procedures that make DevOps work. A good methodology smoothly moves code through each lifecycle stage and keeps information from getting stuck in silos. However, comparing DevOps methodologies is beyond the scope of this post. We recommend doing some research and continuing to iterate on your methodology until you find out what works.
Why DevOps Matters
In 2020, equity investments worth $38.5 million were made in DevOps companies. This number went up to $275.5 million in 2021, a seven-fold rise. 2022 is looking good, and it is estimated to reach 39.84 billion by 2030. These results show that DevOps is an area that companies are investing in. It has succeeded in bringing different areas of the organization together by providing a workflow that focuses on customer requirements. There is something for everyone with a higher likelihood of delivering better results and experiences to the customers. If your team is struggling to release quality code on a regular basis, maybe it's time to review your DevOps processes and tools.
Related Articles
AppExchange Review Series
As a long time Salesforce partner (since 2008), on both the consulting and AppExchange side, we realized we have a wealth of experience in building, installing, configuring, and using AppExchange apps. Our consulting customers often come to us with questions about which app would solve a particular problem, and as part of our AppExchange business we are often trying apps to learn what to do (and not to do) when building our own.
July 24, 2024
3 Min Read
Product Launch: CloudAnswers Shop Builder
Are you looking for an easy way to launch an ecommerce shop? Our new app, Shop Builder, is now in public beta! We’re looking for companies that want to build an online shop but don’t want to spend thousands building it out.
April 12, 2024
5 Min Read
A Day in the Life of a Project Manager at CloudAnswers
I'm Emily, and I've been a project manager at CloudAnswers for the last two years. It can be a nebulous role, but I like to say I act as a bridge between the product vision and tangible results, whether that is building a custom app for a client or one of our own Salesforce products. My typical day revolves around managing tasks, ensuring progress, and maintaining standards while adhering to project timelines.
March 22, 2024
5 Min Read