他の重要なツールと同様、Salesforce のソリューションでも価値をもたらし続けるには本番環境を良好な状態に保つ必要があります。そのためには、組織の円滑な運用を維持するための新たなコードや設定、自動化、機能を実装することが求められます。
こういった変更は企業に恩恵をもたらす一方で、軽微なエラーや意図しない削除、不適切なコードの使用によって本番環境が大きく変わってしまい、復元するのに何時間、時には何日もかかってしまうリスクもあることに注意しましょう。本番環境におけるこのようなリスクを回避するため、大半の開発者は変更の導入前にあらかじめ計画を立ててテストを行っています。
Salesforce Sandbox を活用すれば、本番環境を危険にさらすことなく、新しいコードのテストや新人開発者のトレーニングが可能となります。それでは、Salesforce Sandbox について詳しく見ていきましょう。
Salesforce Sandbox とは?
Salesforce Sandbox は別環境にある本番環境のコピーであり、管理者や開発者のためのステージング環境として活用できます。独自の環境に完全に隔離されており、不正なコードやバグ、人為的なミスによって本番環境が損なわれるのを防げます。
その名が示すように、Salesforce Sandbox で適用されたいかなる変更も本番環境には影響しません。Sandbox には本来、砂場という意味があります。子供が公園の砂場を他の遊び場とは分けて遊ぶように、Sandbox は変更や新しいコードを分離して閉じ込め、リリースの準備が整うまで環境の他の箇所に浸透するのを防ぎます。
Sandbox を使う重要なメリットとして、以下のような点が挙げられます。
- 新機能の開発:組織が機能を最大限に活用してビジネスで価値を積み重ねていくためには、アップグレードや機能拡張を行っていく必要があります。Sandbox を活用することで、本番データのリスクを回避して安全に新機能を開発できます。まずは開発者がそれぞれの Sandbox 内で開発を進め、その後にコードやワークフロー、またはアプリなどの機能を共有用の Sandbox で試して、レビューやテストを行います。これにより、意図しないリリースや上書きを防ぐことができます。
- テストとトラブルシューティング:新機能の開発が終わったら、機能をテストして意図した通りに動作するかを確認できます。これにより不適切なコードをリリースしてしまい、デバッグやリファクタリングに何週間もかかるような事態を避けることができます。さらに、本番環境に影響を与えずに問題に対処する方法を模索することも可能です。
- 新人開発者のトレーニング: Sandbox は、あらゆるデータとメタデータを格納可能な本番環境のコピーです。そのため、本番環境の整合性を備えたまま、新人開発者にそれぞれの会社に合った適切な開発経験を積ませることが可能です。重要な記録を危険にさらすことなく、コーディングや設定の変更、カスタマイズなどを練習できます。
例えば次のようなケースも考えられます。開発者が本番環境で新しいワークフローの作業を行っているとします。そこでワークフローにバグが発生し、本番環境のデータが変更されてしまいます。開発者がミスを発見したときには、変更を取り消してデータを復元するのに数週間かかり、一部の情報は完全に失われてしまいます。こういった事態も、開発者が Sandbox で作業していれば防ぐことができたでしょう。
Sandbox の種類
Sandbox は、必要に応じて異なる環境を作成できます。大きく分けて、以下の 4 種類が提供されています。
- Full
- Partial Copy
- Developer Pro
- Developer
各 Sandbox には独自の目的があります。例えば Developer Sandbox は最もシンプルなテスト環境です。無料で利用できる一方、メタデータのコピーしかできず、ストレージの容量も限られています。
一方、Full Sandbox は本番環境の正確なレプリカを作り出せる唯一の Sandbox タイプとして、本番環境のあらゆるメタデータとデータのコピーを含めることができます。ただし、Full タイプの更新は 29 日ごとにしかできず、本番環境が頻繁に変更される場合はここがネックになるかもしれません。また、Full Sandbox は Performance エディションまたは Unlimited エディションでのみ利用可能となっています。
利用できる Sandbox のタイプは、ご利用中のエディション、および必要に応じて購入するアドオンによって決まります。
Sandbox のシーディングとは何か
本番環境に変更を導入するには、あらかじめ変更の構築とテストを済ませる必要があります。しかし、ステージング環境が本番環境と完全に一致しない場合、どうすれば正確にテストできるのでしょうか。そこで役に立つのが Sandbox のシーディングです。
先程も述べたように、本番環境の正確なレプリカとなっているのは Full Sandbox だけです。それ以外の Sandbox は、ステージング環境として正確なものにするために、ダミーのデータを入れる必要があります。この Sandbox にデータを入れる作業が Sandbox のシーディングです。
Salesforce Sandbox のシーディングにおける課題
残念ながら、Sandbox のシーディングには以下のような様々な課題が存在します。
- 非常に時間と労力がかかります。正確なテストを行うには、Sandbox に適切かつ新しいデータを入れていくことが不可欠です。しかし、関連情報を探して入力する面倒に加えて、記録の「親」と「子」といった関連付けの維持は、非常に労力のかかる手作業となります。
- データの整合性を維持するのは容易ではありません。本番環境とテスト環境を正確に一致させるためには、両方の環境で新しいデータやカスタマイズされたメタデータなどを定期的に展開する必要があります。こういった自力での変更管理は、ミスが発生しやすい作業です。データの整合性を維持するだけでも非常に面倒ですが、さらに大変なのが、データの不整合に気づいた後、ふたつの環境のどこにその不整合があるのかを発見する作業です。
- コストがかかります。複数の Sandbox を同時に維持していくのはコストがかかります。新しいワークフローやアプリケーション、機能のテストが必要になるたびにプランのコストを上積みするか、頻繁にシーディングを行っていく必要があります。
テストしているものを本番環境でも確実に動作させることの重要性は言うまでもありません。しかしこれには実データを使う他なく、上記の課題とあわせて Sandbox の正確な運用が非現実的になってしまう可能性もあります。
Sandbox を効率的に開発するために
幸いなことに、Sandbox の開発を効率化するツールが存在します。例えば、Sandbox テンプレートを活用すれば、Sandbox にコピーしたいオブジェクトやデータのシーディングが可能となり、作業を高速化した上で、必要な Sandbox のテスト環境を正確に作成できます。
また、アウトオブプレース リストア機能を活用することで Sandbox のシーディング作業を省略できます。これにより、手作業のダミー データ作成や Full Sandbox のライセンス購入を行わなくても、本番環境の正確なレプリカを作成できます。
バックアップや復元機能に加えて、これらの機能を提供している Salesforce のバックアップ サービスを提供しているベンダーも存在します。例えば AvePoint Cloud Backup for Salesforce では、バックアップや復元機能だけでなく、無料の Sandbox テンプレートやアウトオブプレース リストアも利用できます。これにより最大限に正確な Sandbox を作成でき、本番環境と全く同じようにワークフローやトリガー、イベントをテスト可能です。
Cloud Backup は、他にも委任管理をはじめとする管理者の負担を軽減する機能を搭載しています。管理者は、ロール ベースのアクセス管理でシーディングの権限を付与できます。これにより、ユーザーはテンプレートの新規作成や既存テンプレートの編集を行えるようになります。
Sandbox の作成を合理化することで、管理者の負担を減らし、あらゆるテストや開発、トラブルシューティング、トレーニングをシンプルかつ迅速に進めることができます。
結論
本番環境を変更し、新たなアプリケーションやアップデートを導入することはビジネスにおいて不可欠な一方、リスクも伴います。Salesforce Sandbox を活用すれば、開発やテスト、トラブルシューティングのための正確なテスト環境を利用できるようになり、リスクを軽減できます。そしてなによりも重要なのが、Sandbox を使えば実際のデータに損害を出すことなく、本番環境をクリーンかつ安全に保てるという点です。
Sandbox の作成と開発は重要な一方で、管理者や開発者にとっての負担につながります。そこで可能な限り付加価値を高めるために、作業を合理化するサードパーティのソリューションを検討する必要があります。
可能な限り正確な Sandbox を作成し、Salesforce を使った環境におけるリスクを防ぎましょう。デモ版について AvePoint までお問い合わせいただくか、Salesforce AppExchange にアクセスして、マルチ SaaS のバックアップ分野で業界をリードするソリューションである AvePoint Cloud Backup の活用方法をご確認ください。
※この記事は、米国 AvePoint で 2022 年 8 月 24 日付で公開された記事 “The Ultimate Guide to Salesforce Sandboxes” の内容を日本語訳したものです。
Salesforce AppExchange 掲載記念ウェビナー:「Salesforce のデータ保護と Sandbox 活用を促進する、クラウド型バックアップソリューション」では、Salesforce のデータを守る Avepoint Cloud Backup for Salesforce のご紹介しております。ぜひリンクよりご登録・ご視聴ください。