Salesforce DevOps Centerを調べてみた

2 min read読了の目安(約2300字

この記事はUbiregi Advent Calendar 2020の18日目の記事です。

この記事では来年Salesforce社からリリース予定のDevOps Centerについて書きたいと思います。

Salesforceの開発ってどういうもの?

本題に入る前にSalesforceプラットフォーム上での開発方法についてご紹介です。
大きく分けてApexを使ったプログラミング型開発と、宣言型の2通り存在します。

宣言型というのがイメージが沸きにくいかと思いますが、既に備わっている部品を組み合わせてコードを書かずに新しい機能が作れるものです。
開発者でなくても機能を作っていけるというところでAdminにとっては強力なツールじゃないかと思います。

個人的に思う、Salesforce開発の難しいところ

開発方法でご紹介した通り、Salesforceは開発者と管理者が同じプラットフォームで開発、運用する事が出来ます。
開発者は主にGitなどのバージョン管理システムを利用して開発する事が一般的ですが、システム管理者がGitを利用しているケースは少ないのではないでしょうか。
結果的には追跡が難しい変更がSandboxや本番組織で行われる事になり、担当者変更や年数が経過すると仕様の把握が大変難しくなってきます。

更にSalesforceでは本番の設定を直接変更する事もできるため、変更した内容を記録していかないとすぐにソースコードと本番で差分が発生してしまいます..

私はSalesforce開発を始めて間もないのですが、稼働中の本番組織とソースコードに差分が発生してしまう事に違和感を感じていました。

DevOps Centerとは?

そんな中、Salesforce社がDevOps Centerというアプリケーションをリリースする予定だという情報が入りました。

これは稼働中の組織上で変更を行ったものをsfdxコマンド(Salesforceの開発用コマンド)やgitコマンドを打たずに、GUIベースでPRまで作成してバージョン管理していけるというものになります。

↓が実際のアプリケーションのイメージですが、稼働中のインスタンス上で設定変更した内容をpullした画面の様です。
Work Environmentで特定作業用のインスタンスを立ち上げられる様です。
設定変更も差分取得もGUIなので簡単そうですね。

コミット前の画面

DevOpsを使った開発フロー

使った事ないですが、イメージは以下の様です。

  1. 変更が要求される作業単位でチケット(Work Item)を発行する
  2. チケット毎に作成されたインスタンスに接続し、開発や設定変更を行う
  3. 変更を加えた組織から差分をpullする
  4. Pull Requestsを作成する
  5. レビュー実施後、問題なければマージして本番にデプロイする

気になる点

  • CI/CDツールと連携方法
  • 初期導入時にソースコードをどのように組織と完全同期させるのか(manifestを整理して頑張る?)
  • 本番で先に作業した場合もpullしてこれるのか
  • 利用料金について(無料枠と有料枠がある様子)
  • 従来のコマンドベースとGUIの使い分けポイント
  • DevOps Centerから立ち上げるsandbox組織とスクラッチ組織の違いは?(スクラッチ組織同様にVCSベースで生成される組織という表現が気になる)

トライアル方法は?

現在はPreview Releaseが試せる様なので、ユビレジでも基盤強化の一環としてトライしてみたいなと思っています。Salesforceにコンタクトをとる必要がある様なので、ご興味ある方は確認されてみてはいかがでしょうか。(あまり情報がなく誰でもトライアル出来るのか不明です)

まとめ

SalesforceはSalesforce DXとして次世代の開発基盤構築に積極的です。
今回のDevOps Centerに加えてスクラッチ組織ロック解除済みパッケージなども取り入れていけると安全で高速な開発フローになっていくのではないかと感じました。