最新のアプリケーション開発-イベント主導
イベント主導のアプリケーション・パターンを使用すると、クラウド・リソースの変更やアプリケーションによって生成されたイベントにほぼリアルタイムで対応できます。
イベントとは、オブジェクト・ストレージに新しく作成されたオブジェクトやアプリケーションのパフォーマンス・アラートなど、システムでの重要な発生または変更です。このアプリケーション・パターンは、スケーラブルで安全で信頼性が高く、高パフォーマンスのイベント駆動型アプリケーションを作成するための設計原則とアーキテクチャを提供します。
Oracle Cloud Infrastructure (OCI)は、OCI Service Connector HubやOCI Eventsなどのサービスを提供し、イベント駆動型のアプリケーションの構築を支援します。OCI Service Connector Hubでは、サービス間でデータを移動するためのサービス・コネクタを作成できます。サービス・コネクタは、移動するデータを含むソース・サービス、オプションのタスク、およびタスク完了時にデータを配信するためのターゲット・サービスを指定します。オプションのタスクの例として、ソースのデータを処理するためのファンクション・タスクや、ソースのログ・データをフィルタ処理するためのログ・フィルタ・タスクがあります。サービス・コネクタでサポートされているソース・サービスには、OCIモニタリング、OCIロギングおよびOCIストリーミングがあります。ターゲット・サービスの例には、OCIファンクション、OCI通知およびOCIオブジェクト・ストレージがあります。OCIイベントを使用すると、ストリームを使用してサービス・コネクタによって収集できるリソース変更イベントを生成できます。同様に、アプリケーションはカスタム・イベントを発生させ、ストリームを使用してそれらをサービス・コネクタにルーティングできます。
設計方針
イベント主導アプリケーションのアーキテクチャを設計する際には、次の最新のアプリケーション開発原則を使用します。
- 可能な場合はローコード・プラットフォームを使用し、そうでない場合は成熟したプログラミング言語と軽量フレームワークを使用
オープンかつ業界標準の形式であるCloudEventsを使用して、イベント・データを説明してください。CloudEventsを使用すると、一貫性のある広く使用されている形式でイベント・データを記述でき、Javaを含む複数のプログラミング言語にソフトウェア開発キット(SDK)を提供できます。Oracle Cloud Infrastructure Eventsを使用して作成されたイベントは、CloudEvents形式を使用します。
- マネージド・サービスを使用してアプリの開発と運用の複雑さを解消
管理対象サービスを使用して、イベント・データを通信、処理および永続化します。
OCI Service Connector Hubを使用して、サービス間のデータ移動をオーケストレーションします。OCI FunctionsやOracle Container Engine for Kubernetes (OKE)などのマネージド・サービスを使用して、イベントを処理します。OCI通知を使用して、サービス・コネクタを電子メール、SMS、Slack、PagerDutyなどのダウンストリーム・サービスに接続します。
- 証書のエンドツーエンドの監視およびトレース
OCI Service Connector HubやOCI Eventsなどのイベント・ルーターは、OCI Monitoringでメトリックを生成するため、アプリケーション・イベントの監視やカスタム・メトリックおよびアラームの構築が容易になります。エンドツーエンドの分散トレースでは、ロギング・ルール(OCI Logging Analytics)およびアラームベースの監視(OCI Notifications)を使用してカスタム・ダッシュボードを構築し、管理者があらゆる問題を検出して迅速に対応できるようにします。さらに、イベントルーターには、イベントのフットプリントに単一のガラス面ビューを提供する独自の機能があります。
アーキテクチャ
このアーキテクチャは、最新のアプリケーション開発原則を使用して、イベント駆動型アプリケーションを作成します。
mad-event-driven-architecture: oracle.zip
このアーキテクチャには次のコンポーネントがあります。
- ストリーミング
Oracle Cloud Infrastructure Streamingは、リアルタイムで消費と処理が可能な連続した大量のデータ・ストリームを収集するための、完全に管理されたスケーラブルで耐久性の高いストレージ・ソリューションを提供します。ストリーミングを使用すると、アプリケーション・ログ、運用テレメトリ、Webクリック・ストリーム・データなどの大量のデータを取り込んだり、パブリッシュ/サブスクライブ・メッセージング・モデルでデータが継続的かつ連続的に生成および処理される他のユースケースのために利用することができます。
- 関数
Oracle Cloud Infrastructure Functionsは、完全に管理された、スケーラビリティに優れたオンデマンドのFunctions-as-a-Service (FaaS)プラットフォームです。これは、Fn Projectのオープン・ソース・エンジンによって機能します。ファンクションを使用すると、コードをデプロイし、直接コールするか、イベントに応答してトリガーできます。Oracle Functionsでは、Oracle Cloud Infrastructure RegistryでホストされているDockerコンテナが使用されます。
- サービス・コネクタ
Oracle Cloud Infrastructure Service Connector Hubは、OCIのサービス間のデータ移動を調整するクラウド・メッセージ・バス・プラットフォームです。サービス・コネクタを使用して、ソース・サービスからターゲット・サービスにデータを移動できます。サービス・コネクタを使用すると、オプションで、ターゲット・サービスに配信される前にデータに対して実行するタスク(ファンクションなど)を指定することもできます。
Oracle Cloud Infrastructure Service Connector Hubを使用すると、セキュリティ情報およびイベント管理(SIEM)システム用のロギング集約フレームワークを迅速に構築できます。
- サービス・コネクタを使用して、ソース・サービスからターゲット・サービスにデータを移動できます。サービス・コネクタを使用すると、オプションで、ターゲット・サービスに配信される前にデータに対して実行するタスク(ファンクションなど)を指定することもできます。
- 通知
Oracle Cloud Infrastructure Notificationsサービスは、Oracle Cloud Infrastructureでホストされているアプリケーションに対して、安全、高信頼性、低レイテンシおよび耐久性を実現するパブリッシュ/サブスクライブ・パターンを介して、分散コンポーネントにメッセージをブロードキャストします。
ユースケースの例
ログ・データのアラームの使用ケースでは、Oracle Cloud Infrastructure (OCI)サービス・コネクタ・ハブ、OCIロギングおよびOCIモニタリング・サービスを使用してログ・データのアラームを実装するために、イベント駆動型アーキテクチャを採用しています。
このユースケースでは、サービス・コネクタおよびアラームを作成します。サービス・コネクタ(OCI Service Connector Hub)は、OCI LoggingからOCI Monitoringにログ・データを処理して移動しますが、受信したログ・データによってトリガーされるとアラームが起動します。詳細は、まとめの問題のトピックのシナリオへのリンクを参照してください。
デプロイ
- GitHubにアクセスします。
- リポジトリをクローニングするか、ローカル・コンピュータにダウンロードします。
README
ドキュメントの手順に従います。