What is DevOps for Salesforce?

DevOps for Salesforce is the adoption of practices that streamline development, integration, and deployment processes, ensuring efficient, collaborative, and continuous delivery of high-quality solutions on the Salesforce platform.

Who needs DevOps?

DevOps processes are crucial for Salesforce implementations that involve complexity, custom development, integration, data migration, or operate in highly regulated industries. These processes benefit large enterprises, projects with custom code or integration, data migration initiatives, continuous improvement projects, global implementations, mobile app development, highly customized Salesforce communities, and scenarios with rapidly changing business requirements.

Must have elements of DevOps implementation

  • Code Versioning

Use a version control system (e.g., Git) to manage and track changes to Salesforce configurations and code.

  • Continuous Integration (CI)

Implement CI to automatically build, test, and validate code changes, ensuring early detection of issues.

  • Artifact Repository:

Store and manage deployable artifacts (e.g., Salesforce packages) in a central repository for versioned and controlled releases.

  • Configuration Management:
    • Use configuration management tools to manage and automate Salesforce configurations and metadata.
  • Deployment Automation:
    • Implement automated deployment pipelines to move changes across environments, ensuring consistency and reliability.
  • Release Orchestration:
    • Coordinate and orchestrate the release process, ensuring smooth transitions between different stages of the pipeline.

Sample DevOps pipeline

The simplest type of DevOps pipeline suggest having the following environments

  • Development (DEV) – One or more environments where all development takes place. Owned by one or more developers depending on the implementation scale and complexity.
  • Integration (INT) – Single environment where all code from lower environments is consolidated to ensure compatibility. Developers are typically responsible for deploying their individual packages to this environment. Initial unit testing by the developer takes place here
  • Quality Assurance (QA) – Environment owned by quality assurance for testing. Developer typically own deployment of their respective packages into this environment.
  • User Acceptance Testing (UAT) – can also be referred to as pre-prod. Intended for user acceptance testing by business stakeholders. Releases to this environment are typically governed and are owned by release managers. This is an opportunity to simulate prod deployment.
  • Production – environment where your end user operate.

In the next publication…

Environment types for optimal cost saving DevOps Setup

DevOps end to end process

Tags: