SaaS (Software as a Service) の提供
学習の目的
この単元を完了すると、次のことができるようになります。
- 単一バージョンの製品をリリースおよびメンテナンスすることの利点を説明する。
- 更新をシームレスにリリースする方法を説明する。
プラットフォームの約束
Salesforce のお客様は、環境が快適であることを認識しています。サーバーのメンテナンスやオペレーティングシステムの管理は必要ありません。リレーショナルデータベースを設計、実行、最適化する方法を知らなくても大丈夫です。自分のデータをバックアップする必要さえないのです。
1 年に 3 回メジャーソフトウェアリリースがあり、新機能が導入され、パフォーマンスが向上します。リリースノートやトレーニング資料 (このすばらしい Trailhead モジュールもその 1 つです) が豊富に用意されています。AppExchange は、Salesforce とシームレスに連動する製品が揃うマーケットプレイスです。ビジネスに必要なものすべてをすぐに入手して利用できます。
大きな期待
いかがですか? エンタープライズソフトウェアが面倒なものとは限りません。実際はすぐに「使える」のです。これが SaaS (Software as a Service) の約束です。Salesforce は 20 年以上にわたり、お客様へのこの約束を守り続けてきました。Salesforce Platform のメジャーアップグレードでさえ、通常は意識することもなく順調に行われます。
お客様は、このプラットフォーム上に構築された製品に大きな期待を抱いています。成功できそうな予感がしますね! では、製品を更新するとき、どうすれば SaaS の約束を守りながらお客様に提供できるでしょうか?
更新戦略の選択
更新にはさまざまな形式があります。パッチは最小形式の更新です。バグを修正し、製品に軽微な調整を加えます。新しいメジャーまたはマイナーパッケージバージョンのリリースは、より大きな変更を加える更新です。
製品を更新するとき、お客様が新バージョンを入手する方法を選択する必要があります。お客様が新バージョンを入手するには、次の 2 つの方法があります。
- 手動インストール — お客様が新バージョンのインストール時期を決め、提供された URL を使用してインストールします。
- 自動インストール — 更新をお客様に転送して、お客様の製品バージョンが常に最新で、全員が常に同じバージョンを使用するようにします。これは転送アップグレードと呼ばれます。
今、なぜセルフサービスオプションが提供されるのか疑問に感じている方もいるでしょう。この方法は、Salesforce 自体のリリースでは使用しません。また、「シームレス」でもありません。なぜ Salesforce のやり方に従い、全員が足並みを揃えて更新しないのでしょうか?
これには理由があります。Salesforce には長年にわたり正常で安定したアップグレードの実績があります。Salesforce は適切にリリースを行い、その過程で問題が発生してもすばやく対応するとお客様から信頼されています。一方で、こうしたお客様でも、Salesforce パートナーからの自動更新を安心して受け入れることには、まだ抵抗を覚える場合があります。
次は、転送アップグレードについて良い評判が広まるように、その利点について説明しましょう。
転送アップグレードでシンプルに
Salesforce では、可能な場合は常に転送アップグレードを使用して製品の新バージョンを配布し、セルフサービス更新は、お客様が強く要望する場合にのみ使用することをお勧めします。
転送アップグレードにより、常にすべてのお客様が同じバージョンのアプリケーションを使用できます。これは、パートナーとお客様のどちらにも良いことです。理由別の方法、たとえば複数の有効なバージョンのアプリケーションをサポートすることを考えみてください。複数のバージョンをメンテナンスする場合、何かと複雑になります。
- サポートチームは、お客様の問題に適切に対応できるように、各バージョンの機能と修正プログラムを追跡しなければなりません。
- 複数バージョンのドキュメントとトレーニング資料のメンテナンスが必要です。
- バグを修正するとき、複数のバージョンに遡って移植が必要になる場合があります。
これに対し、転送アップグレードを使用してお客様を最新の状態に保つと、こうした余分な作業をすべて回避できます。
約束を守る
言うまでもありませんが、言いましょう。アプリケーションやお客様組織を中断させてはいけません。もちろん、お客様の日常を損なわずに製品を更新するにはコツが必要です。Salesforce では、パートナーが正しい方向に進めるように、いくつかの便利なツールを提供し、制限を設けています。
プロセスの自動化
新しい製品バージョンをインストールするとき、更新のためにパートナーがお客様の組織で作業をする必要が生じることがあります。インストール後に組織でデータの検証やクリーンアップの実行が必要になる場合などです。
アプリケーションにその作業を行うためのボタンを追加することもできますが、お客様がボタンを押さなければ実行されません。お客様を巻き込むのではなく、インストール中にその作業を自動的に行うことをお勧めします。パッケージを開発するときに、そのためのスクリプトを追加します。スクリプトでデータと特定のメタデータを更新できます。
たとえば、項目に保存された値を計算する Apex コードにバグが見つかったとします。更新の一部として、そのバグを修正し、スクリプトを実行して修正前に生成された不正な値もすべて修正できます。
少しの準備で大きな効果
前述のとおり、Salesforce には、安定したリリースと更新のすばらしい実績があります。その秘訣は何でしょうか? 細心のテストです。驚くようなことではありませんが、確かに効果があります。テストするほど、安定性が高まります。
パートナーがすばらしい新機能にだけ集中して、更新のテスト時に細かいことを軽く扱うことがあります。不完全なテスト手順の例を挙げましょう。アップグレードされたアプリケーションを、まったく新規に作成した空のテスト組織にインストールします。そこで機能したら、準備完了ですか? すべてのお客様が真新しい組織で開始するなら、答えは「イエス」です。
ただし、実際のお客様のほとんどは、どの時点でも業務を行っています。アップグレードは、すでに多くのものが含まれている組織にインストールされます。そのため、アップグレードは初期状態の組織だけでなく、込み入った現実に近い組織でテストします。
更新をシームレスでサイレントにリリース
業務遂行中のお客様が、ソフトウェアの自動更新時に [一時停止] を押すことはあり得ません。それは SaaS の約束には含まれません。一切失敗しないと保証することは不可能ですが、更新がお客様に与える影響について考えることで混乱を最小化することはできます。
- 更新の影響について検討します。お客様の製品使用方法は変わりますか?
- 変更をまず内部でテストします。新しい空の組織だけでなく、データが入力されたさまざまなテスト組織を使用します。
- 段階的なリリースを検討します。まずパワーユーザーに更新を提供し、その後で他の全ユーザーにリリースします。Salesforce ではこのプロセスを使用しており、実際のお客様への影響を把握するのに役立っています。
次は、さまざまな更新の提供方法を見てみましょう。
リソース
- Second-Generation Managed Packaging Developer Guide (第二世代管理パッケージ開発者ガイド): 第二世代管理パッケージのバージョンの作成と更新
- Second-Generation Managed Packaging Developer Guide (第二世代管理パッケージ開発者ガイド): パッケージのインストール/アップグレード時の Apex の実行