コードのレプリケーションの構成
学習の目的
- コードのレプリケーション処理の 4 つのタイプを挙げる。
- コードの新バージョンを Sandbox (サンドボックス) から Development (開発) インスタンスに転送する方法を説明する。
- コードのレプリケーションのアクティブ化の手法を挙げる。
- コードのレプリケーションの手動処理の 3 つの手順を挙げる。
はじめに
Cloud Kicks の新任管理者である Linda Rosenberg は、いくつかの優れたストアフロント機能をロールアウトするサイトのデベロッパーの準備が整ったことを知ります。このデベロッパーは、すでにコードをバージョン管理システムと照合し、継続的インテグレーション/継続的リリースと (CI/CD) ツールを使用して新しいコードバージョンを Staging (ステージング) インスタンスにプッシュしました。ここからは Linda の出番です。コードのレプリケーションを使用すれば、コードの新バージョンを Staging (ステージング) インスタンスから Development (開発)、そして Production (本番) インスタンスに転送して、有効にできます。
コードのレプリケーションにも、データのレプリケーションと同様に、ソースとターゲットがあります。ただし、データのレプリケーションの場合は、データオブジェクト間の連動関係を処理するため、事態が複雑になることがあります。コードのレプリケーションは単純明快です。コードのバージョンをレプリケートすると、Salesforce B2C Commerce がターゲットインスタンスのバージョンに、Staging (ステージング) のソースバージョンと同じ名前を割り当てます。この名前がすでに存在する場合は、名前にタイムスタンプとインデックス番号が追加されます。
たとえば、Cloud Kicks のコードの新バージョンの名前が version-19b であるとします。ターゲットインスタンスにこの名前のバージョンがすでに存在することから、B2C Commerce がこの新バージョンに version-19b_01202019-1
という名前を付けます。
処理のタイプ
データのレプリケーションと同様に、コードのレプリケーションも 2 つのステップからなる処理です。
- B2C Commerce が、コードのバージョンを Staging (ステージング) からターゲットインスタンスに転送する。
- ターゲットインスタンス上のコードをアクティブにする。
Linda は両方のステップを 1 つのレプリケーション処理として実行することも、別々に実行することもできます。別々に実行した場合は、失敗が生じたときにその原因を特定しやすくなります。コードのレプリケーション処理は、コードのアクティブ化や元に戻す処理を含め、すべて Staging (ステージング) インスタンス上で実行され、ターゲットインスタンスにのみ影響します。
コードのレプリケーション処理には次の 4 つのタイプがあります。
- コードの転送: B2C Commerce がソースインスタンスのコードの選択したバージョンをターゲットインスタンスに転送しますが、アクティブにはしません。
- コードの転送 & アクティブ化: B2C Commerce がソースインスタンスのコードの選択したバージョンをターゲットインスタンスに転送してアクティブにします。
- コードのアクティブ化: この処理は、コードの転送処理が成功した後にのみ使用できます。アクティブ化によって、コードの転送されたバージョンが、ターゲットインスタンスのアクティブなバージョンになります。コードの新バージョンがすでにアクティブの場合は何も起こりません。新バージョンがターゲットインスタンスに存在しない場合は、レプリケーションに失敗します。
- 元に戻す: この処理は、コードの転送 & アクティブ化またはコードのアクティブ化レプリケーション処理が成功した後にのみ使用できます。ターゲットインスタンスのコードのアクティブなバージョンを、最後のコードのレプリケーション処理の前にアクティブだったデータに戻します。元に戻すバージョンがすでにアクティブでない場合は何も起こりません。元に戻すバージョンがターゲットインスタンスにすでに存在しない場合や、コードの以前にアクティブであったバージョンがすでに存在しない場合は、レプリケーション処理に失敗します。
アクティブ化の手法
Linda はレプリケーション処理の実行方法を指定できます。選択肢は次のとおりです。
- 手動: Linda が処理をトリガーしたときに実行されます。
- 自動: 処理を実行する 1 回の日時を Linda がスケジュールします。
- 繰り返し: 処理を定期的に実行する時間を Linda がスケジュールします。
- ジョブステップ: 処理をジョブの一部として実行できます。ジョブについては、「Salesforce B2C Commerce のスケジュール済みジョブ」モジュールで説明します。
処理の作成
Linda は新しいコードをすぐアクティブにしたいと考えており、営業時間を終えた今、この種のタスクを実行する適切なタイミングです。以下は、Linda が手動でトリガーできるコードのレプリケーション処理の作成方法です。
- Business Manager を開きます。
- [管理] > [レプリケーション] > [コードのレプリケーション] を選択します。
- [新規] をクリックします。(このボタンを表示するためには、Staging (ステージング) インスタンスを開いている必要があります)。
- B2C Commerce で処理 ID が生成されますが、任意のテキストを入力することもできます。
- [Development (開発)] ターゲットインスタンスを選択します。
- 説明を入力します (省略可能)。説明があると、後々インスタンスを見つけやすくなります。
- アクティブ化のタイプに、[手動] を選択します。
- 通知メールのトリガーを選択し、複数の送信先アドレスをカンマで区切って入力します。メールには、処理の開始時刻と終了時刻、ターゲットシステム、レプリケーションタイプ、レプリケーションタスクが記載されます。処理に失敗すると、メールによる通知にエラーコードが示されます。定期的に実施する場合は、プロセスごとに通知が送信されます。
- 次のイベントの発生時の処理を指定します。
- 処理終了時: 処理が終了すると、成功か失敗かに関係なく、B2C Commerce がアドレスにメールを送信します。ハングした場合は、メールが送信されません。
- 処理失敗時: 処理に失敗すると、B2C Commerce がアドレスにメールを送信します。プロセスが成功またはハングした場合は、メールが送信されません。
- [次へ] をクリックします。
- レプリケーションタイプに、[コードの転送 & アクティブ化] を選択します。
- [次へ] をクリックして、処理の詳細を確認します。処理を作成後に変更することはできません。
- [開始] をクリックすると、処理を作成してすぐ開始できます。
Linda とデベロッパーが Development (開発) インスタンスの新しいコードをテストします。特に問題がなさそうなため、コードのこの同じバージョンを Staging (ステージング) インスタンスから Production (本番) にレプリケートします。これで、Cloud Kick の 買い物客が優れた新機能を使用できるようになります!