[Integration, Cloud] Enabling the Future Today - Feature Flags in Oracle Integration Cloud

原文はこちら。
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 NameDescriptionDetailed 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.oraclehcmtbeTaleo Business Edition (TBE) Adapter
oic.cloudadapter.adapter.rightnow.mtom.uploadRightnowでMTOMとしてファイルをアップロードできる機能
oic.ics.mapper.jetmap-enablement新しいJet UI ベースのマッパー
oic.cloudadapter.adapters.epmOracle Enterprise Performance Management Adapter (EPM Adapter)
oic.insight.consoles.instanceprogressInsightインスタンスの詳細ページの異なる表示をサポート
oic.cloudadapter.adapter.utilities.wsdluploadUtilities 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 Support
https://support.oracle.com
SRに以下の情報を記入してください。
  • 有効化したい機能フラグの名前
  • 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 NameDescriptionDetailed Explanation
oic.cloudadapter.adapter.hcm.dataExtractHCM AdapterでのData ExtractConfiguring 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-supportHCM 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.ValidationRightnow 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.batchSelectOracle Database
Adapterを使った、表に対する操作(Select、 Mergeの機能強化)
oic.cloudadapter.adapter.database.batchInsertUpdateOracle Database
Adapterを使った、表に対する操作(Insert、 Updateの機能強化)
oic.cloudadapter.adapters.dbaasdatabaseOracle DBaaS Adapterを使った、表に対する操作(Insert、 Update、Merge、Selectの機能強化)
oic.cloudadapter.adapter.rightnow.noSchema
oic.cloudadapter.adapter.rest.oauth10aPolicyREST AdapterでのOAuthのサポート(OAuth2ではない)
oic.cloudadapter.adapter.rightnow.fileDownloadRightnow (Service Cloud) Adapterでのファイルダウンロード
oic.ics.console.integration.inline-menuドラッグ&ドロップではなく、キャンバスからアクション/トリガー/呼び出しをインラインで追加できるようにする
oic.cloudadapter.adapters.rest_opaOracle Policy Automation Adapter
oic.ics.mapper.encode-decode-on-filesファイルのBase64 Encode/Decode
oic.cloudadapter.adapter.soap.enableMtomSOAP AdapterでのMTOMのサポート
oic.ics.console.connection.soap.uploadzipSOAP AdapterでのZipファイルのアップロード

0 件のコメント:

コメントを投稿