Edited at

Salesforce Sandboxのコピーでうれしいこと


概要

 現在(2019/1/23)ベータ版の「Sandboxのコピー」でリリースと開発がより柔軟な構成になるのでは?と思ったので、その案を紹介したいと思います。

「Sandboxのコピー」はズバリ既存のSandboxを別のSandboxとして複製する機能である


現状の問題点

 本番組織にリリース記録を残すために変更セットからリリースしています。そうすると機能開発終了時に開発組織(Sandbox)でリリース予定のソースを凍結しなければならない。なぜならば、変更セットはアップロードした時点のソースがリリース対象になるため、リリースされるまでにソースを編集してはならない

 そのため、本番リリースするまで待機状態になったり、または次期開発を始めて、リリース時に構成管理からロールバックすることになるので管理が煩雑になる

※変更セットからリリースしない場合はこの記事をスルーしてください


こんな開発フローになる

ポイントとなる箇所を太字で記載しています


  1. 本番組織からリリース組織を作成する

  2. リリース組織もしくは本番組織からステージング組織を作成する

  3. リリース組織から各担当者用に開発組織を作成


    • 担当者別に組織を分けることでソースの競合を防ぐことができる(ソースのマージは構成管理上で行う)


    • リリース組織からSandboxを更新することできるので、例えば同時進行中の複数のプロジェクト(図の黄色背景)のリソースを同期することで容易に動作確認ができる



  4. 各種機能開発は各開発組織で行う

  5. ローカルでソースの構成管理を行い、Gitlab/Githubなどで共有する

  6. 各機能のソースをマージリクエストやプルリクエスト単位にリリース組織にデプロイする


    • 複数プロジェクトが同時進行でも1つのリリース組織ですべてのデプロイを一元管理することができる



  7. リリース組織で変更セットを作成し、ステージング組織にデプロイ

  8. ステージング組織で動作確認した後、リリース組織向けに作成した変更セットをそのまま本番組織にリリースすることができる


    • 変更セットの作成コストが大きいので極力作成回数を減らしたい(API経由で作成する術はないのか・・・)




気を付けること

上記のフロー図(赤字)にも書きましたが、本番組織とAPIバージョンが異なる場合は組織のコピーができないので、コピーする際はSalesforceのメジャーバージョンアップ外で行うようにする必要があります