Airbnb recently discussed a DevOps framework tailored to their CRM platform, integrating Salesforce DX, Git, and Buildkite. This framework facilitates the involvement of all stakeholders, from developers to low-code users, in the development and deployment process. Using the DevOps framework, Airbnb has reduced deployment time from 90 to 15 minutes.
In a blog post, Sharda Kumari, tech lead manager at Airbnb, elaborated on Airbnb’s DevOps journey. Key environments in the CRM DevOps lifecycle include Developer, Integration, QA, Staging, Pre-release, Hotfix, and Production. Each one of these environments is linked to a specific branch in the Git version control system and is integrated through a Buildkite DevOps pipeline. Once the code clears the peer review by developers, Buildkite tasks are activated, utilizing Salesforce DX to deploy the code into the designated sandbox.
The process begins with refreshing developer instances from the integration environment, followed by feature branch creation, development, unit testing, and quality assurance(QA). After QA, the code moves through stages like integration testing, functional and regression testing, user acceptance, and performance testing. For urgent fixes, a separate hotfix route is used. The framework also includes a pre-scheduled deployment window, build validation against the Production environment, and techniques like Quick Deploy and Incremental Deploys to reduce deployment.
A scheduled Release time block (Deployment window) is established for code deployment, agreed upon by all stakeholders. This schedule sets clear expectations for end users about new feature releases. A proactive strategy is employed to tackle long CRM deployment times, often increased by large-scale implementations and extensive testing. This includes performing a build validation against the Production environment well in advance (over 24 hours before deployment), enabling Quick Deploy for efficient execution.
During this window, DevOps automation through Buildkite facilitates quick deployment, addressing any build or test issues, hence cutting down actual deployment time. Additionally, Incremental Deploys are used, deploying only the changes between codebases rather than the full codebase. This is achieved by storing and referencing the previous commit ID in the target organization's custom settings, allowing Buildkite to deploy only the necessary changes.
Source: Transforming CRM DevOps at Airbnb: A Powerful Framework for Continuous Delivery
The DevOps framework addresses key challenges in the CRM platform ecosystem, including the management of multiple development environments (like sandboxes or scratch org), the complexity of handling diverse metadata types (Apex classes, triggers, Lightning components, flows), and the need for constant adaptation to frequent updates and new features in the cloud-based CRM platform. This framework streamlines processes for more efficient management and integration.
As a side, in 2023, Airbnb made headlines for participating in the Knowledge and Data Mining (KDD) 2023 event, developing Riverbed, a data framework similar to Lambda, and shifting towards the use of SwiftUI.