Airbnbは最近、Salesforce DX、Git、Buildkiteを統合し、CRMプラットフォームに合わせたDevOpsframeworkについて議論した。このframeworkは、開発者からローコードユーザーまで、すべてのステークホルダーが開発とデプロイのプロセスに関与することを容易にする。DevOps frameworkを使うことで、Airbnbはデプロイ時間を90分から15分に短縮した。
Airbnbのテクニカル・リード・マネージャーであるSharda Kumari氏は、ブログの中でAirbnbのDevOpsの旅について詳しく述べている。CRM DevOpsライフサイクルの主要な環境には、Developer、Integration、QA、Staging、Pre-release、Hotfix、Productionがある。これらの環境はそれぞれ、Gitバージョン管理システムの特定のブランチにリンクされ、Buildkite DevOpsパイプラインを通じて統合される。コードが開発者によるピアレビューをクリアすると、Buildkiteタスクが起動され、Salesforce DXを利用して指定された sandboxにコードがデプロイされる。
プロセスは、統合環境から開発者インスタンスをリフレッシュすることから始まり、機能ブランチの作成、開発、単体テスト、品質保証(QA)と続く。QAの後、コードは統合テスト、機能テスト、回帰テスト、ユーザー受け入れテスト、パフォーマンステストなどの段階を経る。緊急の修正については、別のホットフィックスルートが使用される。このframeworkには、事前にスケジュールされたデプロイウィンドウ、本番環境に対するビルド検証、デプロイを減らすためのクイックデプロイやインクリメンタルデプロイのような技術も含まれている。
すべての利害関係者が合意した、コードデプロイメントのために予定されたリリース時間帯(デプロイメントウィンドウ)が確立される。このスケジュールは、新機能のリリースに関するエンドユーザーへの明確な期待を設定する。大規模な実装や広範なテストによって長期化しがちな、CRMデプロイメント時間に取り組むために、 先を見越した戦略が導入される。これには、本番環境に対するビルド検証をかなり前(デプロイの24時間以上前)に実行し、効率的な実行のためのクイックデプロイを可能にすることが含まれる。
この期間中、BuildkiteによるDevOpsオートメーションが迅速なデプロイを促進し、ビルドやテストの問題に対処し、実際のデプロイ時間を短縮する。さらに、インクリメンタルデプロイが使用され、コードベース全体ではなく、コードベース間の変更点のみをデプロイする。これは、ターゲット組織のカスタム設定に以前のコミットIDを保存して参照することで実現され、Buildkiteは必要な変更のみをデプロイできる。
ソースAirbnbにおけるCRM DevOpsの変革:継続的デリバリーのための強力なframework
DevOps frameworkは、複数の開発環境(sandboxやscratch orgなど)の管理、多様なメタデータタイプ( Apex classes、triggers、Lightning components、flows)の取り扱いの複雑さ、クラウドベースのCRMプラットフォームの頻繁なアップデートや新機能への絶え間ない適応の必要性など、CRMプラットフォームのエコシステムにおける主要な課題に対処する。このframeworkは、より効率的な管理と統合のためにプロセスを合理化する。
余談だが、2023年、AirbnbはKDD(Knowledge and Data Mining)2023イベントに参加し、Lambdaに似たデータframeworkであるRiverbedを開発し、SwiftUIの使用にシフトしたことで話題になった。