IBM Cloud Docs
App Configuration とは何ですか?

著作権: 年: 2025 最終更新日: "2025-03-10"

キーワード:アプリ構成、アプリ設定、アプリ設定について

サブコレクション: app-configuration


App Configuration とは何ですか?

IBM Cloud App Configuration は、Web やモバイルのアプリケーション、マイクロサービス、分散環境で使用するための機能の管理や構成を一元的に行うサービスです。

App Configuration SDKでアプリケーションをインストルメント化し、 App Configuration ダッシュボードまたは App Configuration 管理者APIを使用して、コレクションに整理され、セグメントをターゲットとする機能フラグを定義します。 クラウド内の機能フラグの状態を変更することで、アプリケーションまたは環境内の機能をアクティブ化したり、非アクティブ化したりできます。その際、多くの場合に再始動を行う必要はありません。 また、分散アプリケーションのプロパティーを一元的に管理することもできます。 クラウドガバナンスの中小企業は、 IBM Cloud リソースの最新構成データを1か所に集約することで、ガバナンスとコンプライアンスの取り組みに役立つ包括的な情報を入手しやすくなります。 これは、構成の集約を有効または無効にする機能で制御できます。

  • アプリ所有者 - 機能をセグメント別にロールアウトし、コードのデプロイメントから独立させます。
  • 開発者- メインブランチの機能フラグの背後に、テストされていない、または未完成の機能を追加することで、ソースコードブランチの複雑性と厄介なマージを軽減します。
  • テスター - 新機能を実動環境でテストして、スムーズに移行できるようにします。 リリース時までは、フラグを使用して、テストされていない機能をテスト担当者と QA 担当者のみを対象にアクティブ化します。

フィーチャー

App Configuration の主な特徴:

  • 集中構成 - 中心となる場所から、多数の分散リソースを構成します。 コレクションを使用して、アプリまたはリソース別にフラグを編成します。
  • ダーク・ローンチ - リリースの準備ができていない機能をデプロイメントに組み込み、準備でき次第アクティブ化します。
  • セグメント化された機能のロールアウト - さまざまな時間帯にさまざまなセグメントを対象に機能をアクティブ化したり、セグメントごとに異なる機能を提供したりします。
  • 機能のロールバック - App Configuration クラウド・ダッシュボード内で機能フラグを切り替えて、問題のある機能を即時にロールバックします。
  • 段階的ロールアウト -機能のプログレッシブ・デリバリーを実装するために、エンティティーのサブセットに対して機能フラグを有効にするように構成します。
  • Configuration Aggregator-IBM Cloudアカウント内の分散した複数のリソースのメタデータを収集し、ガバナンスおよびコンプライアンス・イニシアチブのために利用できるように構成します。

App Configuration はどのように機能しますか?

通常時や問題発生時の App Configuration の動作について説明します。

通常時の動作

通常時、App Configuration SDK (図 1 の#2) は、IBM Cloud App Configuration インスタンス (図 1 の#1) からご使用のアプリケーションへの適切なフラグ状態またはプロパティー値の自動デリバリーを処理します。 初期化の際、SDKは App Configuration APIに接続し、指定されたコレクション、セグメントルール、ターゲティングルール(図1の#3)を取得し、次に、アプリケーションにプログラムされた属性値に対してルールを評価し、正しい セグメント とターゲット値を選択します。 ルール運用の基準となる属性はローカルに保管され、クラウド上の IBM Cloud App Configuration サービスには保管されません。 したがって、例えば社会保障番号など機密性の高い属性を評価する必要がある場合、その値はローカルアプリケーション環境から決して離れることはありません。

初期化後、アプリケーションは、サーバー・サイドの SDK またはクライアント・サイドの SDK のどちらを使用しているかに応じて、2 つの方法で更新された値を受け取ります。 サーバーサイドのSDKはウェブソケットを通じて App Configuration サービスに接続し、変更された値はリアルタイムでお客様のアプリケーションに配信されます。 クライアントサイドのSDKは、開かれたり前面に表示されたりするなど、ライフサイクルに変更があった際に、 App Configuration サービスから値を取得します。

通常操作時には、さまざまなメトリックが AC クラウド・サービス (図 1 の#6) に返送されます。これにより、サービスが適切に動作し、その動作をモニターできるようになります。

概要
App Configurationの仕組み

問題発生時の動作

他のアプリケーションやクラウドサービスと同様に、時には問題が発生することがありますが、 IBM Cloud App Configuration は、 IBM Cloud App Configuration サービスがアプリで利用できない場合でも、引き続き構成を提供します。

接続の喪失

アプリケーションと IBM Cloud App Configuration サービスの間の接続が失われると、IBM Cloud App Configuration SDK は、最後に認識された正常な構成を含むローカル・キャッシュ・ファイル (図 1 の#4) に自動的にフォールバックします。 キャッシュ・モードでは、クラウドで発生した構成への変更はアプリケーションに到達しませんが、接続が失われた時点で存在していた構成は引き続き正常に動作します。

このケースの延長として、隔離された環境でアプリを操作する必要があると仮定します。 その場合は、ブートストラップ構成ファイル (図 1 の#5) を使用できます。 詳しくは、オフラインモードの有効 化を参照。

サービスのダウン

IBM Cloud App Configuration サービスの可能性は低い。 App Configuration はマルチゾーンの地域に展開されており、つまり、地域内の地理的に離れた3つのゾーンにまたがって実行されている。 いずれかのゾーンがダウンしても、IBM Cloud App Configuration サービスは正常に動作し続けます。 詳しくは、リソース・デプロイメントのリージョンとデータ・センターのロケーションを参照してください。

広域にわたる極めて高度な災害復旧対策が必要な場合は、他のリージョンに IBM Cloud App Configuration インスタンスをセットアップし、 IBM Cloud App Configuration API を使用してそれらを同期させることができます。

App Configuration の概念

サービス・インスタンス、ターゲティング定義、機能フラグなどの App Configuration の概念について説明します。

App Configuration概要概要
App Configuration概要

サービス・インスタンス

App Configuration サービスインスタンスとは、 IBM Cloud 上の App Configuration アプリケーションのコピーです。IBM Cloud カタログ内のタイルからインスタンスを作成します。 これで、 App Configuration ダッシュボードと、選択した料金プランに付属するすべての機能にアクセスできるようになりました。

環境

App Configuration 環境は、インフラストラクチャーで実行、管理する環境に適用される構成値のセットです。例えば、ソフトウェア開発プロセスに、開発、ステージング、本番実動の 3 つの環境があるとします。 App Configuration の 1 つのインスタンスの中に 3 つすべての構成値を入れることができます。 すべての構成キー (名前) は、App Configuration 内のすべての環境で自動的に複製されますが、各キーの値は環境ごとに固有です。

コレクション

コレクションを使用して、有意の方法で機能フラグとプロパティーをグループ化します。 多くの場合、コレクションは、特定のアプリケーションのすべての構成値を表すために使用されます。 機能フラグとプロパティーは、アプリまたはインフラストラクチャーのセット間で共通の構成値を共有する場合に、複数のコレクションに含めることができます。

機能フラグ

機能フラグは、素早くまたは頻繁にオン/オフを切り替える構成パラメーターです。 これを使用して、アプリケーションの状態を設定することができます。 アプリケーション内で、App Configuration SDK の isEnabled() メソッドを使用して、機能フラグの状態に基づいて機能をオン/オフにする条件付きコード・ブロックをアクティブ化します。 機能フラグを使用して、機能を実動環境にダーク・ローンチしてから、選択したユーザーに対してのみそれらをオンに切り替えたり、デプロイメントとは別にユーザーに選択的にそれらをロールアウトしたりすることができます。 各機能フラグは、コレクションに属している必要があります。

プロパティー

プロパティーは頻繁には変更されないが、一元管理が必要な構成パラメーターです。 App Configuration を使用して、すべてのアプリと環境コンポーネントのプロパティーを 1 つの集中クラウド・ダッシュボードに統合することで、複数のパラメーター・ファイルを管理する煩雑さを回避することができます。 アプリケーション内では、App Configuration SDK の getCurrentValue() メソッドを使用して、プロパティーの現行値にアクセスします。 各プロパティーはコレクションに属している必要があります。

セグメント

App Configuration を使用すると、単一の機能フラグまたはプロパティーに多数の値を設定可能です。各値は特定のエンティティー・グループ (ユーザー、デバイス、インフラストラクチャー・コンポーネント) に適用されます。 各グループをセグメントと呼びます。 セグメントのメンバーは、一連のセグメント・ルールで定義された 1 つ以上の共通の属性を共有します。 セグメントはオプションです。

属性

属性は、セグメントを定義するために使用されるパラメーターです。 属性は、App Configuration ダッシュボードでセグメント・ルールを作成するために使用しますが、属性の名前と各属性の値はコードで定義します。 実行時に、App Configuration SDK は、セグメント・ルールをアプリケーション・インスタンスにフェッチし、セグメントの一部であるかどうかを判別します。

ターゲティング定義

機能フラグおよびプロパティーは、ターゲティング定義と呼ばれるルールのセットに基づいてセグメントにターゲット設定されます。 ターゲティングを使用すると、自分が定義したセグメントのフラグまたはプロパティーのデフォルト値をオーバーライドできます。

App Configuration SDK

App Configuration SDK は、アプリケーションへの適切なフラグ状態またはプロパティー値の自動配信を処理します。 App Configuration API で提供されるエンドポイントに接続し、コレクションをフェッチして、セグメントおよびターゲット設定ルールを評価します。 また、構成アグリゲーターを有効または無効にするオプションや、リソースメタデータのクエリー機能も提供しています。 サーバー・サイドの SDK は、Web ソケットを介して App Configuration サービスに接続し、リアルタイムの更新を行います。 クライアントサイドのSDKは、開かれたり前面に表示されたりするなど、ライフサイクルに変更があった際に、 App Configuration サービスから値を取得します。SDK はさまざまなクライアント・サイドおよびサーバー・サイドの言語で提供されており、この言語数は増え続けています。