原文はこちら。
https://blogs.oracle.com/integration/enabling-the-future-today-feature-flags-in-oracle-integration-cloud
中央のシステムからフラグを制御しています。Oracleの開発チームやオペレーションチームがリアルタイムで更新できます。つまり、機能フラグは非常に迅速にOnにでき、問題が発生した場合は無効にすることもできます。
各ステージについて以下で説明します。
https://blogs.oracle.com/integration/enabling-the-future-today-feature-flags-in-oracle-integration-cloud
Enabling the Future Today
Integration Cloud内で、全てのお客様に全面開放せずに新機能のトライアルを実現するモデルに移行しつつあります。(クラウドなので)全てのお客様が同じコードベースを実行しているわけですが、機能フラグによって特定のインスタンスで利用可能なものを管理・制御しています。そのようなことをやっている理由はいくつかあります。- ユーザーベース全体にロールアウトする前に新機能のフィードバックを得たい
- 管理された方法で「野放し」にして新機能をテストしたい
- 予期せぬ問題が発生する可能性のある新機能をロールバックできるようにしたい
How It Works
各新機能に対し、その利用可否を制御するために使うフラグがあります。例えば、小さなフットプリントのOICエージェントのフラグはoic.adapters.connectivity-agent.light-weight-agent
でした。このフラグが特定のOICインスタンスで有効になっている場合、軽量の接続エージェントをダウンロードできます。同じコードを実行しているけれどもフラグがOffの他のOICインスタンスでは、新しいエージェントは提供されません。中央のシステムからフラグを制御しています。Oracleの開発チームやオペレーションチームがリアルタイムで更新できます。つまり、機能フラグは非常に迅速にOnにでき、問題が発生した場合は無効にすることもできます。
Feature Flag Lifecycle
機能フラグには下図のようなライフサイクルがあります。各ステージについて以下で説明します。
Internal Only
現在利用できないインスタンスでプロダクションマネージャーが機能のデモをするのをご覧になったことがあるかと思います。もしProduction環境のPodを使っている場合、これらのPodは社内ユーザーのみが利用可能なものである可能性があります。これは、お客様向けに利用可能にする前に内部的に試している状態です。内部的にこの機能の評価に問題がなければ、選ばれたお客様とこの機能を共有し、この機能をFeature Controlledフェーズに移行できる状態に到達します。この段階での変更はコードの変更は不要で、内部の承認プロセスで機能を有効にするだけです。Feature Controlled
機能がFeature Controlledフェーズに到達すると、お客様はお使いのOICインスタンスでフラグを有効にするようにリクエストできます。承認された場合、リクエストされたインスタンスのフラグが有効に設定され、数分以内に機能が使用可能になります。この場合も、お客様のインスタンスにおけるコードの変更はなく、中央の機能フラグサーバでフラグステータスを無効から有効に変更するだけです。Feature Controlled General Availability
機能の安定性に問題がないと確認できれば、すべてのインスタンスに対して機能を有効化します。 この場合もコードの変更は不要です。特定のお客様で問題が発生した場合、その機能を無効にするか、ロールバックすることができるように、フラグをそのまま残しています。これは、機能の内部ユーザーやアーリーアダプタが遭遇しなかった問題が発生した場合の安全策です。General Availability
最終的に、機能制御フラグが削除されます。これはエンドユーザーに影響はありません。コードパスをきれいに保ち、新しい機能で廃止された未使用のコードを削除できます。エンドユーザーはこの前後で差異を見つけることはできないでしょう。そのため、コードベースをきれいに保つ方法を説明するためだけと言及しておきます。What Flags are Available?
以下の機能フラグが現在Feature Controlledフェーズで利用できるものです。これらの機能についてブログエントリで取り上げていく予定にしており、今後、機能の詳細を説明するブログエントリで詳細な説明をしていきます。新機能を追加すると、このエントリを更新していきます(以下は2018/09/13現在の内容です)。Feature Flag Name | Description | Detailed Explanation |
---|---|---|
oic.ics.console.diagnostics.oracle-litmus-support | 自動テストにおけるLitmusのサポート | How to use Litmus to create OIC Integration unit tests automatically and run them to catch regressions https://blogs.oracle.com/integration/how-to-use-litmus-to-create-oic-integration-unit-tests-automatically-and-run-them-to-catch-regressions https://orablogs-jp.blogspot.com/2018/09/how-to-use-litmus-to-create-oic.html |
oic.adapter.connectivity-agent.ha | 接続エージェントのHAサポート | |
oic.ics.console.integration.throw-action | 統合にエラーをスローできる機能 | |
oic.ics.console.integration.nested-try-scopes | 入れ子のスコープを作成できる機能 | |
oic.cloudadapter.adapters.oraclehcmtbe | Taleo Business Edition (TBE) Adapter | |
oic.cloudadapter.adapter.rightnow.mtom.upload | RightnowでMTOMとしてファイルをアップロードできる機能 | |
oic.ics.mapper.jetmap-enablement | 新しいJet UI ベースのマッパー | |
oic.cloudadapter.adapters.epm | Oracle Enterprise Performance Management Adapter (EPM Adapter) | |
oic.insight.consoles.instanceprogress | Insightインスタンスの詳細ページの異なる表示をサポート | |
oic.cloudadapter.adapter.utilities.wsdlupload | Utilities adapterのインバウンド用にWSDLをアップロードできる機能 | |
oic.ics.console.integration.layout | 擬似コードスタイル・レイアウトとして統合を表示 | |
oic.ics.console.schedule.parameter-override-support | スケジュールパラメータのオーバーライド | Overriding Schedule Parameters https://blogs.oracle.com/integration/overriding-schedule-parameters https://orablogs-jp.blogspot.com/2018/09/overriding-schedule-parameters.html |
How to Request a Feature Flag
お客様のいずれかの環境で機能フラグを有効にするには、My Oracle Supportからサービスリクエスト(SR)を発行してリクエストする必要があります。My Oracle SupportSRに以下の情報を記入してください。
https://support.oracle.com
- 有効化したい機能フラグの名前
- OICインスタンスのURL
- OICインスタンスのバージョン情報ダイアログに記載の以下の情報
- バージョン (例) 18.3.3.0.0 (180823.1018.14180)
- データベース・スキーマのバージョン (例) 18.08.16
- サービス・インスタンス (例) myinstance
- アイデンティティ・ドメイン (例) idcs-xxxxxxxxxxxxxxx
- サービスタイプ (例) Autonomous - 2
- 有効化が必要な理由
- 理由とユースケースを説明する(自由形式)
Caveats
機能にはいくつかの欠陥が残っている可能性があるため、Controlled Availabilityの状態です。一般提供に先んじて機能フラグで制御された機能を利用することにより、新機能のアーリーアダプターであることを意味していること、スムーズにご利用いただけるよう最善を尽くしていますが、問題にぶち当たる可能性があることにご注意ください。一般提供の前に、機能フラグで有効化している機能を変更しなければならない場合があります。ただ、これだけは知っておいて欲しいのですが、機能フラグを使用することで、当該機能を一般提供する前に、その機能を利用してメリットがあるユーザーに新機能をリリースすることができます。 この方法が、お客様とOracleの両者にとって良い、Win-Winな状態であると考えています。Previous Flags Now Generally Available
以下は、制御対象の機能がOracle Integration Cloudのすべてのインスタンスで使用可能になったために使用されなくなったフラグです。User ManagedのOracle Integration Cloudを使用している場合、これらの機能を使用するためには、最新のリリースにアップグレードする必要があることに注意してください。Feature Flag Name | Description | Detailed Explanation |
---|---|---|
oic.cloudadapter.adapter.hcm.dataExtract | HCM AdapterでのData Extract | Configuring the Extract Bulk Data Option in an Integration https://docs.oracle.com/en/cloud/paas/integration-cloud/hcm-adapter/sample-integration-flow-demonstrate-extract-bulk-data-option.html |
oic.adapters.hcm-cloud.atom-feed-support | HCM AdapterでのAtom Feedのサポート | Subscribing to Atom Feeds in a Scheduled Integration https://docs.oracle.com/en/cloud/paas/integration-cloud/hcm-adapter/subscribing-atom-feeds-scheduled-integration.html |
oic.adapters.connectivity-agent.light-weight-agent | 軽量な接続性エージェント | Managing the Agent Group and the On-Premises Connectivity Agent https://docs.oracle.com/en/cloud/paas/integration-cloud/integrations-user/managing-agent-groups-and-connectivity-agent.html |
oic.cloudadapter.adapter.rightnow.queryCSV.Validation | Rightnow adapterでの QueryCSVの検証 | Specifying QueryCSV Statements when Configuring the Oracle RightNow Cloud Adapter as an Invoke https://docs.oracle.com/en/cloud/paas/integration-cloud/rightnow-adapter/using-query-csv-invoke-oracle-rightnow-cloud-adapter.html |
oic.cloudadapter.adapter.database.batchSelect | Oracle Database Adapterを使った、表に対する操作(Select、 Mergeの機能強化) | |
oic.cloudadapter.adapter.database.batchInsertUpdate | Oracle Database Adapterを使った、表に対する操作(Insert、 Updateの機能強化) | |
oic.cloudadapter.adapters.dbaasdatabase | Oracle DBaaS Adapterを使った、表に対する操作(Insert、 Update、Merge、Selectの機能強化) | |
oic.cloudadapter.adapter.rightnow.noSchema | ||
oic.cloudadapter.adapter.rest.oauth10aPolicy | REST AdapterでのOAuthのサポート(OAuth2ではない) | |
oic.cloudadapter.adapter.rightnow.fileDownload | Rightnow (Service Cloud) Adapterでのファイルダウンロード | |
oic.ics.console.integration.inline-menu | ドラッグ&ドロップではなく、キャンバスからアクション/トリガー/呼び出しをインラインで追加できるようにする | |
oic.cloudadapter.adapters.rest_opa | Oracle Policy Automation Adapter | |
oic.ics.mapper.encode-decode-on-files | ファイルのBase64 Encode/Decode | |
oic.cloudadapter.adapter.soap.enableMtom | SOAP AdapterでのMTOMのサポート | |
oic.ics.console.connection.soap.uploadzip | SOAP AdapterでのZipファイルのアップロード |