リファレンス・アーキテクチャは、モダン・アプリケーション開発のコア要件を満たすために特定の設計原則を適用するものです。これらの原則により、開発者は、AI/ML、データドリブンの分析、およびメッセージング・プラットフォームを統合したWebアプリケーションやモバイル・アプリを構築できます。イベントドリブンのアーキテクチャは、イベントにリアルタイムで対処できます。これらのアーキテクチャ・パターンは、財務、小売、医療、エネルギー、製造の各分野におけるカスタム・アプリ開発の促進に役立ち、パッケージ化されたオラクルのアプリケーションの拡張にも役立ちます。ほとんどのエンタープライズ・アプリケーションはデータ中心型で、さまざまなデータが含まれており、コンバージド・データベースでの開発が適しています。これらのアーキテクチャ・パターンでは、Java、Python、Javascript、Goなどの一般的な言語でのプログラミングもサポートされています。ローコード・アプリケーション開発は、必要なテクノロジー層を圧縮するもので、一部のアプリケーションに適しています。Kubernetesによって管理されるアプリケーションおよびデータベース・コンテナは、Oracle Cloud(OCI)、スタンドアロン環境、その他の主要なパブリック・クラウドにデプロイできます。
通常、Webアプリケーションやモバイル・アプリには、ユーザーに表示されるフロント・エンド、クエリ・ジェネレータ、およびデータの計算を行いフロント・エンドを支援するバック・エンドが含まれています。Webアプリケーションは、ユーザーまたはAPIのリクエストに応じて、データベースに格納されている永続的なデータやAPIとやりとりします。アプリケーションは、ブラウザやモバイル・デバイスなどのさまざまなクライアントをサポートし、APIおよびイベントを使用して他のシステムおよびアプリケーションとやりとりする必要があります。バックエンドは安全である必要があることに加え、オンデマンドでスケールする必要があります。
Webアプリケーションは、さまざまなアプリケーション・チームで個別にテスト、デプロイ、所有できるマイクロサービスのセットとして構築します。イベントおよびメッセージ用の組み込みイベント・メッシュ、またはマイクロサービスごとに作成されたAPIを使用して、サービスをREST APIとして公開し、他のマイクロサービスと通信します。データベース内のRESTエンドポイントを通じて、機械学習をMLモデルとともにインテリジェント・アプリケーションに組み込みます。
Webアプリケーションやモバイル・アプリは、需要の急増に対処し、ストレスがかかった状態でも低レイテンシで動作するようにスケーラブルである必要があります。また、24時間365日利用可能で、回復性が高くリクエストに応じてデータを生成でき、保存された情報が失われないことが必要です。
モバイル・アプリの構築には、React NativeやSwiftUIなどのフロントエンド・フレームワークを使用でき、すべてのデータおよびエンリッチメント・サービスを使用するためのバックエンドとやりとりするユーザー・インタフェースを作成できます。開発者は、回復性が高く、安全で、自律的にスケールされる、明確に定義されたAPIを通じてバックエンドにアクセスできるため、ワークフローとアプリケーション・ロジックに注力できます。
インターネットに公開されるWebアプリケーションでは、セキュリティが最も重要です。データの暗号化、TLS、DDoS保護、ファイアウォール、ユーザーおよびデータ・アクセスの詳細な管理が不可欠です。データベース・セキュリティとアプリケーション・セキュリティの両方が重要であり、これらのセキュリティは、Oracle Database WalletおよびOCI Vaultサービスを通じてアクセスされるパスワードとキーを使用して処理されます。
Javascript(React)またはSwiftUIでモバイル・フロントエンドおよびWebフロント・エンドを作成します。バックエンドのデータおよびアプリケーション・サービスを使用するために、多言語サポート(Python、Node.js、Java、PL/SQL、Goなど)を組み込み、これらの言語で記述されたユース・ケースおよびマイクロサービスを有効にします。データは、保存されている場所の近くで処理します。
多くの場合、Webアプリケーションやモバイル・アプリは、組織外にある他のビジネス・システムやビジネス・サービスとやりとりする必要があります。Webアプリケーションの一部であるサービスは、明確に定義されたAPIを介して、やりとりとコラボレーションを実現する必要があります。Oracle REST Data Services(ORDS)を使用してデータAPIを使用するか、新しいデータAPIを作成します。OML ServicesとOML4Py Embedded Python Executionを介して既製のRESTエンドポイントを使用し、機械学習を有効にします。Oracle Cloudで使用可能なAPIゲートウェイをすべてのクライアントの単一のエントリ・ポイントとして使用し、APIリクエストを適切なサービスにルーティングします。マイクロサービス間のセキュアなAPI通信を確立するために、ロード・バランサ・サービスとイングレス・コントローラーを構成します。
Webアプリケーションまたはモバイル・アプリのインフラストラクチャの保守には、設定のデプロイ、アップグレード、パッチ適用、スケーリング、および保護を行う責任が伴います。Oracle Autonomous Databaseなどのマネージド・サービスとOracle Cloud上の他のマネージド・サービスのホストを使用して、可用性とスケーラビリティを最大化し、Webアプリケーションやモバイル・アプリに関する要求の変化に対応します。マネージド・サービスにより、アプリケーションが24時間365日利用可能になり、インフラストラクチャがホストされているデータセンターで障害が発生した場合でも、アプリケーションが保護されます。セルフ・マネージング・サービスは、ベンダー・マネージド・サービスが使用できない場合にのみ使用します。
アプリケーションの中間層コンポーネントをステートレスに維持します。アプリケーションの状態を保存する場合は、Oracle Autonomous Databaseを使用して、アプリケーションのデータと状態を保存し、アプリケーション状態の一貫性、永続性、およびルートからの高速リカバリ性を確保します。1つのデータベースに状態を保持すると、アプリケーションのリカバリ全体がよりシンプルかつ効率的になります。
Webアプリケーションやモバイル・アプリでは、さまざまな形式のデータを使用するため、データストア内のデータの格納、検索、処理を行う必要があります。データは、表形式(リレーショナル)データ、非構造化データ、XMLおよびJSON形式のデータ、空間データ、またはグラフである可能性があります。従来は、このような異なるデータを扱うために、リレーショナル・データにはリレーショナル・データベース、非構造化データにはドキュメント・ストア、階層リンク・データにはグラフ・データベースが使用されていました。しかし、複数のデータベースを使用すると、運用が複雑になり、データの一貫性が失われてしまう可能性があります。この問題を解決するため、コンバージドOracle Autonomous Databaseを使用して、複数タイプのデータを格納し、インデックス作成を行います。これにより、データを検索する方法が得られ、すべてのデータにわたる統合的な分析を使用できます。
Webアプリケーションやモバイル・アプリには、異なるアプリケーション・チームやビジネス・チームが所有する何百ものサービスが含まれる場合があります。本質的に分散しているこれらのシステムの動作を可視化するには、オープン・ツール・インタフェースによる統合的な可観測性が重要になります。アプリケーション層とデータ層のすべてのレイヤーからエクスポートされた指標、ログ、トレースを使用して、可観測性ソリューションを一元化します。これらのサービスは、フロントエンドからバックエンドまでスタック全体を監視し、アプリケーションの問題の迅速な検出と修正を助け、継続的なパフォーマンス・チューニングを実現するプラットフォームとして機能します。
Webアプリケーションやモバイル・アプリは、障害からの高い回復性が必要であり、ダウンタイムを最小限に抑え、データ損失を排除できる必要があります。冗長化は単一障害点の排除に役立ちます。Kubernetesを使用して、データベース・コンテナとアプリケーション・コンテナの回復性を管理します。Oracle Database Kubernetes演算子は、この目的のために設計されており、データ層を含むCI/CDパイプラインを使用しています。Kubernetesクラスタで、各ノードがOCIのマルチ可用性ドメイン・リージョン内の異なる可用性ドメインにあるような3つ以上のノードを使用してノード・プールを設定します。OCIの単一可用性ドメイン・リージョンで、それぞれが異なるフォルト・ドメインにあるノードを使用して、Kubernetesにノード・プールを設定します。単一のパブリック・ロード・バランサと複数のプライベート・ロード・バランサに加え、複数のイングレス・コントローラーを使用して、Kubernetesの冗長性を確保します。
可用性を最大限に高めるために、Autonomous Databaseを設定し、Autonomous Data Guardを使用して運用上のダウンタイムとデータの損失を最小限に抑えます。
最小権限の原則に従って、タスクの実行に必要な最小限の権限をユーザーとサービス・アカウントに割り当てます。Cloud Identity and Access Management(IAM)を使用して、データベースを含むWebアプリケーション・コンポーネントにアクセスできるユーザーを制御します。IAMでマルチファクタ認証を使用して強力な認証を強制することで、管理者はアプリケーション・コンポーネントおよびデータベースへのアクセスを制限できます。
Webアプリケーションまたはモバイル・アプリ用のこのコンバージド・データ・アーキテクチャ・パターンは、フロントエンドと、Oracle Autonomous Databaseに組み込まれたアプリケーションおよびデータ・サービスを使用するバックエンドのマイクロサービスで構成されます。オプションで、データベース内にないサービスについては、コンテナ内のマイクロサービスとしてKubernetesクラスタで管理されます。
次のダイアグラムは、このリファレンス・アーキテクチャを示しています。
このアーキテクチャには、次のコンポーネントが含まれています(コンポーネントは、Oracle Cloud Infrastructure上のフルマネージドのサービス、または他のデプロイ環境の同等サービスです。たとえば、Oracle Autonomous DatabaseはOCI上のマネージド・サービスで、Oracle Databaseは他の環境で実行されます)。
このユース・ケースでは、GrabDishというモバイル・フード・デリバリ・サンプル・アプリについて説明します。このアプリは、Autonomous Databaseによるマイクロサービス・アーキテクチャと、その各サービス用のコンテナ化データベース(コンテナ・データベース内のプラガブル・データベース)を使用します。また、組み込みメッセージング・プラットフォームであるTransactional Event Queues(TEQ)を使用して、開発者のために一般的なマイクロサービス・パターンを簡素化しています。GrabDishでは、AI/MLサービスに加え、さまざまな種類のデータを使用しており、アプリが複数の言語でプログラミングされています。詳細については、GrabDishのLivelabs(http://bit.ly/simplifymicroservices)を参照してください。
関連リソースで詳細をご確認ください。
メッセージング・ソリューションでは、既存のオンプレミス・システムを含むアプリケーション・コンポーネントをクラウド・ソリューションに接続します。メッセージ・ペイロードは、アプリケーション生成イベント、ユーザー入力、データ変更、またはデバイス生成イベントなどのイベントです。メッセージングは、明確に定義された分散処理パイプラインの一部として、またはデータを処理、エンリッチ、および分析する複数の独立したダウンストリーム・システムにメッセージおよびイベントを公開するために、イベントおよびデータの転送を有効にします。マイクロサービスで構築されるモダン・アプリケーションは、イベント・ドリブンなアーキテクチャに依存しています。イベント・メッシュを使用すると、システム内で生成された任意のイベントを、1つまたは複数のイベント・ブローカを通じて、そのイベントをほぼリアルタイムで必要とする分散システム内の他のどの場所でも安全に利用できます。イベントが処理された後、データ(ペイロード)は、分析およびAI/MLモデル・トレーニングのためにデータ・レイクハウスに保存されます。
可用性と信頼性が高く、柔軟なメッセージング・ソリューションを構築します。オラクルのコンバージド・データベース・プラットフォーム、クラウド・サービス、およびベストプラクティスを使用して、ビジネス・ニーズに基づくメッセージング・ソリューションおよびイベントドリブンのソリューションを提供します。これらの推奨事項は、開発の統合、デプロイのオーバーヘッド、および長期的な管理に伴う負担を最小限に抑えるのに役立ちます。
メッセージング・ソリューションは、既存のオンプレミス・システムを含むアプリケーション・コンポーネントをクラウド・ソリューションに接続します。これらのソリューションは、適切に定義された分散処理/コンバージド処理パイプラインの一部としてデータ転送を有効にしたり、個別に進化している複数の独立したダウンストリーム・システムにメッセージおよびイベントを公開したりします。
また、これらのソリューションは、データをバッファリングし、プロセス・リソースを動的に調整することによって、メッセージ負荷の計画外の急増に透過的に対応する必要があります。これまでは、企業が、過度の複雑さと費用を発生させずに、これらの目標を満たす信頼性の高いメッセージング・ソリューションを導入し管理するのは困難でした。しかし、規模とパフォーマンスを考慮して設計されたメッセージング・サービスを使用することで、この実装をクラウドで簡単に実現できるようになりました。
以下の設計原則を使用して、コンバージド・データ・アーキテクチャに基づくメッセージング・アプリケーションやメッセージング・プラットフォームを構築してください。
Oracle Transactional Event QueuesとのメッセージングにJMS APIまたはKafka APIを使用します。標準のAPIを使用すると、アプリケーションの移植性が確保され、ハイブリッド・クラウドおよびマルチクラウドのメッセージング・アプリケーションをシームレスに構築できます。
インフラストラクチャ・メンテナンスとセキュリティ・パッチ適用が組み込まれたフルマネージドのサービス上でアプリケーションを実行します。スケーリングの自動化を活用して、変化する負荷に対応できます。フルマネージドのOracle DatabaseサービスであるOracle Autonomous DatabaseをOCI上で使用します。Oracle Transactional Event Queuesは、すべてのOCIリージョンで使用可能なデータベースの組み込み機能です。
JSON、リレーショナル・データ、グラフ・データ、空間データなど、さまざまなタイプのデータをネイティブにサポートしているOracle Autonomous Databaseを使用します。データベース機能を使用して、アプリケーション・ロジックを簡素化します。たとえば、クエリ、結合、分析にSQLを使用します。トランザクションを使用して整合性と独立性を担保し、組み込みの機械学習アルゴリズムと分析機能を使用することで、不要なデータ転送を回避します。データベースのセキュリティ機能とアクセス制御を使用して機密データを保護し、レプリケーションを使用してアプリケーションの可用性、スケーラビリティ、回復性を高めます。
メッセージング・アプリケーションには、異なるアプリケーション・チームやビジネス・チームが所有する何百ものサービスが含まれる場合があります。複雑で分散しているこれらのシステムの動作を可視化するには、オープン・ツール・インタフェースによる統合的な可観測性ソリューションが重要になります。各チームが独自のソリューションを構築する代わりに、アプリケーションのすべてのレイヤーからエクスポートされた指標、ログ、およびトレースを一元化します。TEQの指標はPrometheusにエクスポートできます。Prometheusは、デバッグおよびパフォーマンス・チューニング・ワークフロー用のGrafanaダッシュボードをサポートしています。
水平スケーリングを通じて単一障害点を排除し、障害回復を自動化します。
TEQはOracle Autonomous Databaseの一部であるため、追加の作業なしで、組み込まれた高可用性機能およびリージョン間のディザスタ・リカバリ機能をアプリケーションで利用できます。
また、TEQのトランザクション・メッセージングにより、外部障害からのリカバリも簡素化されます。
権限のあるユーザーのみがストリームからデータを作成、送信、または受信できるように、Identity and Access Control(IAM)ポリシーを実装します。インターネットからのアクセスを制限するmTLSおよびサービス・ゲートウェイを使用して、メッセージング・エンドポイントへのアクセスを保護することで、エンドポイントに到達可能性の最小化の原則を適用します。保管中および転送中のデータを暗号化して、データの秘密保護を実現します。データベースに接続するための認証情報を保護するには、Database Walletを使用します。
コンバージド・データベース・アーキテクチャは、最新のアプリケーションでメッセージング・パターンを実現するための設計を提供します。このパターンでは、Oracle Autonomous Databaseに組み込まれたTransactional Event Queues(TEQ)を使用します。
このアーキテクチャは、外部ストリーミング・サービスやキューイング・サービスを活用する必要性を排除することにより簡素化を実現します。また、一般的なマイクロサービス・パターンを簡素化するトランザクション・メッセージング機能を提供します。
アプリケーション・アーキテクトは、このアーキテクチャのスケーラビリティ、パフォーマンス、および簡素化を考慮する必要があります。
FedExでは、Oracle E-Business Suiteと、Oracle TEQを使用して構築されたビジネス・イベント・マネージャを使用して、毎日提供されている1,550万件の荷物の売掛金を処理しています。
ワンタイム・パスワード(OTP)を使用するさまざまな2要素認証(2-FA)シナリオは、Oracle Transactional Event Queuesによって実現しています。
関連リソースで詳細をご確認ください。
ローコード・プラットフォームは、ビジネスのステークホルダーとのコラボレーションによる日常的なアプリケーションの構築、データ・レポートおよび分析アプリケーションの構築、SaaSアプリケーションの拡張、レガシー・アプリケーションの最新化に適しています。コードのすべての行には、作成するためのコスト、メンテナンス、デバッグ、アップグレードおよび保護のためのコストが関連付けられています。Oracle Application Express (APEX)は、直感的でグラフィカルな開発エクスペリエンスを通じて、高レベルのコンポーネントと共通設計パターンを提供することによって、開発者がこのコストを削減できるよう支援します。
ローコード・プラットフォームを使用すると、従来のハンド・コーディングと比べて高速にエンタープライズ・アプリケーションを構築できます。これらのプラットフォームは、ビジネス関係者とのコラボレーションによる適時アプリケーションの構築、データ・レポートおよび分析アプリケーションの構築、SaaSアプリケーションの拡張、レガシー・アプリケーションの最新化に適しています。
ローコード・プラットフォームを使用することで、Webアプリケーションの開発の複雑さから解放され、ビジネス上の問題の解決に注力できます。このような複雑さには、セキュリティ、アクセシビリティ、効率的なデータ・アクセス、パフォーマンス、およびグローバリゼーションが含まれます。ローコード・プラットフォームにより、メンテナンスが必要なコードの量が大幅に削減され、このような複雑さが排除されます。
Oracle Application Express(APEX)は、直感的でグラフィカルな開発エクスペリエンスを通じて、高レベルのコンポーネントと共通設計パターンを提供することで、開発者が従来のアプリケーション開発に関連するコストを削減するのを支援します。
Oracle Cloud Infrastructure(OCI)は、最も要求の厳しいアプリケーションに必要な、セキュアで信頼性が高く、スケーラブルで高パフォーマンスのインフラストラクチャを提供します。これらのアプリケーションをスケールすることで、小規模なワークグループから数百万人のエンドユーザーまで幅広くサポートできます。このドキュメントでは、ローコード・アプリケーションを設計する際の設計原則と最適な実装パスについて説明します。
ローコード・パターンを実装するときは、以下に示すモダン・アプリケーション開発の設計原則を使用します。
アプリケーション開発時にメタデータドリブンのローコード・アプローチを採用します。可能な場合はアプリケーション・ロジックを宣言的に指定し、必要な場合にのみコードを記述します。SQLを使用して、データベース内のデータを直接操作します。Oracle Autonomous DatabaseやOracle APEX Application Development(APEXサービス)などのフルマネージドのサービスを使用することで、可用性とスケーラビリティを最大化し、ローコード・アプリケーションの需要の変化に対応できます。また、Oracle Real Application Clusters(RAC)やOracle Data Guardなどのデータベース機能を使用することで、24時間365日利用可能なローコード・アプリケーションを実現し、インフラストラクチャがホストされているデータセンターで障害が発生しても、確実にフェイルオーバーを行うことができます。
OCI Resource Managerを使用して、Oracle Autonomous DatabaseおよびAPEX環境のプロビジョニングを自動化します。Oracle SQL Developer Command Line(SQLcl)とLiquibaseを併用して、データ・モデル変更のデプロイを自動化します。APEXのワンクリック・アプリケーション・デプロイ機能を使用して、環境間で変更を手動によりデプロイします。
Oracle APEXはステートレスかつサーバーレスであり、ランタイム・アプリケーションの状態は表に格納されるため、ユーザー間で接続を再利用できます。これにより、高いユーザー同時実行性をサポートできる接続が大幅に削減されます。
ローコード・アプリケーションでは、通常、構造化(リレーショナル)形式、非構造化(XML/JSONドキュメント)形式、空間形式などのさまざまな形式のデータを処理する必要があります。APEXがAutonomous Databaseに組み込まれているため、SQL、PL/SQL、およびサーバー・サイドJavaScriptを使用して、これらのすべてのデータ形式を処理できます。また、APEXの独自アーキテクチャにより、アプリケーションでは、ゼロレイテンシのデータ・アクセスが実現され、最適なパフォーマンスを提供できます。
ユーザーごとの詳細なトレースおよびデバッグ情報を含む組み込みのアクティビティ・モニタリング機能を使用して、APEXアプリケーション・アクティビティを監視およびトレースします。APEX管理サービスからワークスペース・レベルおよびインスタンス・レベルのアクティビティを確認します。パフォーマンス・ハブを使用して、データベース・アクティビティを監視し、自動ワークロード・リポジトリ(AWR)レポートを確認することにより、最上位のリソース・コンシューマを特定したり、チューニングの推奨事項を特定したりします。
Oracle Autonomous DatabaseのAPEXは、データ層(ExadataおよびRAC)と中間層(冗長なOracle REST Data Servicesノード)を含む高可用性アーキテクチャを使用してデプロイされます。Autonomous Data Guardを使用して、アプリケーションの可用性をさらに高め、可用性ドメインの障害から保護します
APEXアプリケーションの認証スキームには、OCI Identity and Access Management(IAM)を使用します。APEXアプリケーションとアプリケーション・コンポーネントに認証スキームを割り当て、ユーザーの役割または権限に基づいてアクセス制御を適用します。APEXの組み込み宣言機能を使用して、セッション・ステート保護(SSP)およびアイテム・レベルの暗号化を処理し、アプリケーションとデータを保護します。SQLクエリにバインド変数を使用して、SQLインジェクションから保護します。アプリケーションに適したタイムアウトを設定して、非アクティブなセッションが自動的に終了するようにします。組み込みのAPEXアドバイザを実行して、保護されていないページ、アイテム、ボタンなどの潜在的なセキュリティ上の懸念を検出します。宣言的なエスケープとプログラムによるエスケープAPIを使用して、クロスサイト・スクリプティング(XSS)から保護します。
このアーキテクチャは、Oracle APEX Application Development(APEXサービス)およびすべてのOracle Autonomous Databaseサービスを使用したローコード・アプリケーション開発およびデプロイに適しています。これらのサービスをデプロイすることで、フルスタックの提供に必要なすべてのコンポーネントが自動的にプロビジョニングされ、完全に管理されます。これらのコンポーネントには、ゲートウェイ、ロード・バランサ、およびOracle REST Data Servicesが含まれます。
この図は、Oracle APEX Application DevelopmentとすべてのOracle Autonomous Databaseサービスを使用したローコード・アプリケーション開発およびデプロイの基礎となるアーキテクチャを示しています。フルマネージドの環境には、パブリック・サブネットとプライベート・サブネットが含まれています。フルマネージドの環境の外には、APEXアプリケーション、Oracle REST Data Services API、および外部REST APIのサービスがあります。これらのサービスは、インターネット・ゲートウェイまたはNATゲートウェイを介してフルマネージドの環境にアクセスします。
パブリック・サブネットにはロード・バランサが含まれ、プライベート・サブネットにはOracle REST Data ServicesインスタンスとOracle Autonomous Databaseが含まれており、その上にOracle APEX on Autonomous Databaseのインスタンスがあります。
APEXアプリケーションとOracle REST Data Services APIからのトラフィックは、インターネット・ゲートウェイを介してロード・バランサにルーティングされます。これにより、プライベート・サブネット内のOracle REST Data Servicesインスタンスとの双方向の転送が実現します。さらに、このサービスは、Oracle Autonomous Databaseと双方向に通信します。Oracle APEX on Autonomous Databaseからのトラフィックは、NATゲートウェイを介して外部REST APIに直接ルーティングされます。
すべてのアプリケーション・アーティファクトは、データベース層にデプロイされ、アプリケーション層とデータベース層の間のネットワーク・トラフィックが不要であるため、ゼロレイテンシのデータ・アクセスが実現します。
ローコード・パターンを実装する場合は、以下の点も考慮する必要があります。
ここに示したパターンで説明されているアーキテクチャの代替パターンについて検討してください。また、アンチパターンの実装を避けてください。
ローコード・パターンの有効性を示す例には、次のようなものがあります。
関連リソースで詳細をご確認ください。
ビッグ・データは、データベース、ビデオ、フォーム、ドキュメント、ログ・ファイル、Webページ、イメージなどのソースから来たデータ・タイプ(非構造化、半構造化、構造化)を管理、収集、格納、カタログ化、準備、処理および分析できる一連の機能とパターンです。さらに、機械学習プラットフォームはフルマネージドで、データ・エンジニアおよびデータ・サイエンティストがモデル開発ライフサイクルのすべてのステップを実行できる必要があります。
Oracleのビッグ・データ機能は、さまざまなサービスやツールにわたり、スキルと好みに基づいたビッグ・データ・ジャーニーを始めることができます。コンバージドOracle Databaseを使用すると、各種のデータをデータベースに格納し、最大で数PBのボリュームにスケールアップでき、データの取り込みとイベントの処理(Transactional Event Queuesを使用)が高速化し、組み込みのセキュリティですべてのデータを保護できます。コンバージド・データ・アーキテクチャでは、Oracle Autonomous Databaseを使用することで、コンバージド・データベース・プラットフォーム内のデータのボリューム、多様性、速度、正確性に対処できます。
データ・サイエンティストや機械学習エンジニアは、インフラストラクチャのプロビジョニング、アップグレード、パッチ適用、保護に時間をかけたくありません。ビジネスに影響を与えるモデルを構築、トレーニング、デプロイすることに時間を費やしたいと考えています。機械学習プラットフォームはフルマネージドで、データ・サイエンティストや機械学習エンジニアがモデル開発ライフサイクル(構築、トレーニング、デプロイ、および監視)のすべてのステップを実行できる必要があります。機械学習に使用するデータは、ソースに依存するべきではなく、データ・サイエンティストがモデルを構築、トレーニング、デプロイする際に、一貫性のある信頼性の高いデータにアクセスできる必要があります。
最新の機械学習ツールキットのほとんどはオープン・ソースであり、Pythonで記述されています。そのため、機械学習プラットフォームは、オープン・ソース・フレームワークとPythonをネイティブにサポートする必要があります。また、ユーザーが独自のライブラリをインストールするか、既にインストールされているライブラリをアップグレードすることで、機械学習環境をカスタマイズできる機能も提供する必要があります。プラットフォームでは、データ・サイエンティストが構造化、非構造化、半構造化データでモデルをトレーニングできるとともに、抽出、変換、ロード(ETL)またはトレーニングのステップを多数のコンピュート・リソースにわたって垂直方向または水平方向にスケールできることが求められます。
さらに、機械学習プラットフォームは、最小限の負担で(できれば単純なRESTコールを通じて)リアルタイムでの使用のためにモデルを簡単にデプロイでき、また、監査および再現を行うことができるように、デプロイされたモデルの系統を保持する必要があります。
ビッグデータおよび分析のパターンを実装する場合は、以下に示すモダン・アプリケーション開発の設計原則を使用してください。
データからどれだけの価値を引き出すことができるかは、データを活用する能力にかかっています。ビッグデータ・ツールはオープン・ソース・コミュニティで評価が高く、データウェアハウス、分析、AI/MLモデルのトレーニングとデプロイを始めとする、そのほとんどの機能は最新のデータベースと同等です。コンバージドOracle Databaseは、このようなビッグデータ・プラットフォームの1つです。
Oracle Autonomous Data Warehouseの外部表およびSQLなどのオラクルのネイティブ・プレミアム機能では、Oracle DatabaseとOCIオブジェクト・ストアでデータ・レイクハウスを使用して数ペタバイトのデータをリアルタイムに格納および分析できます。
ビッグデータ・パイプラインの利点を最大限に活用するには、DataOpsが重要です。Oracle Cloud Infrastructure Data Integrationサービスを使用して、データを取り込み、ETL処理とELTプッシュダウンを実装し、さらに、タスクを順番にまたは並列に接続するパイプラインを作成してプロセスを簡素化します。パイプラインには、Oracle Cloudの内外にある各種の一般的なデータソースを含めることができます。データ統合スケジューリング機能を使用して、各タスクを実行するタイミングと頻度を定義します。Oracle Database Cloud Service Managementを使用して、スケジュール上の一連のデータベースに対して実行するデータベース・ジョブを定義します。CI/CDパイプラインと統合的な可観測性を組み込んで、アプリケーション開発者のための強化を行います。
ビジネス価値を最大限に高めるために、データの統合を簡素化、自動化、高速化するのに最適なツールを使用します。データウェアハウス、部門データマート、および構造化データを使用する提供レイヤーやプレゼンテーション・レイヤーの場合は、これらのシナリオ用に最適化されたAutonomous Databaseを使用します。Autonomous Data Warehouse機能では、Oracle Analytics Cloudのような分析ツール、ビジネス・インテリジェンス・ツール、およびレポート・ツールに接続することもできます。
データを保護するための計画を立てます。データを取り込むすべてのジョブを追跡し、データレイクからデータを取得します。データ系統メタデータを保持し、アクセス制御ポリシーが更新されていることを確認します。
最小権限の原則に従って、タスクの実行に必要な最小限の権限をユーザーとサービス・アカウントに割り当てます。Oracle Cloud Infrastructure Identity and Access Managementを使用して、データ・プラットフォーム・コンポーネントにアクセスできるユーザーを制御します。Oracle Cloud Infrastructure Identity and Access Managementのマルチファクタ認証を使用して、管理者に強力な認証を適用します。Oracle Datasafeのデータベース・セキュリティを使用して、すべてのデータ、ユーザー、およびアクセス・パターンのセキュリティ状態を取得します。パスワードや認証トークンなどの機微な情報をVaultサービスに格納します。
データの生成、すべてのタイプのデータの格納および分析を行うエンタープライズ運用のために、スケーラブルなコンバージド・データベース(トランザクション処理およびデータウェアハウス)を使用します。このアーキテクチャでは、さまざまなデータソース(エンドユーザー、デバイス、イベント、センサー、およびアプリケーション)が、データ・ストリーミング用のデータ統合(Oracle GoldenGate)およびOracle Transactional Event Queuesを介してデータベースにデータをフィードします。データは、SQLと外部表を使用してビッグデータのOCIオブジェクト・ストアをサポートするOracle Autonomous Database(Oracle Autonomous Transaction ProcessingおよびOracle Autonomous Data Warehouse)に格納されます。モデルを構築およびデプロイするためにOracle Machine Learningを使用し、データに関するインサイトを取得するためにOracle Analytics Cloudを使用します。
データの探索と準備、機械学習モデルの構築、評価、デプロイには、Oracle Autonomous Database上のOracle Machine Learning(OML Notebooks、OML AutoML UI、OML Services、OML4Py)を使用します。
このアーキテクチャ・パターンは、モデルのトレーニングに必要なデータがデータベースに取り込まれ、データに近い場所で処理が行われる場合に強力な能力を発揮します。このパターンには、OMLトレーニング用のデータ探索で探索や準備を行うことができるさまざまなデータソースとイベントが含まれているため、SQL、Python(OML4Pyを使用)、またはノーコードのAutoMLをOMLと併用してモデルの作成、トレーニング、デプロイを行うことができます。OCI Data Science(TensorflowやPyTorchなど)とOML Servicesを使用して他の場所でトレーニングされたモデルを、ONNXモデル形式を使用してインポートします。
このパターンでは「データへのアルゴリズムの移動」アプローチを使用します。すべてのデータは、ソースで(外部表を使用して)アクセスされて、または取り込まれてから、処理され、MLモデル用のコンバージド・データベースに保存されます。データベースでモデルのトレーニングが完了すると、SQLクエリ(PREDICTION演算子を使用)またはOML4Py APIを通じて、モデルを直接デプロイできます。外部でトレーニングされたモデルは、OML Servicesを使用してデプロイできます。また、Autonomous Databaseでは、テキスト分析、空間分析、およびグラフ分析の機械学習を使用できます。
このアーキテクチャでは、以下のコンポーネントを使用します。
以下のデータソースを使用できます。
このアーキテクチャでは、VCN内に次のコンポーネントがあります。
ビッグデータと分析については、以下の点を考慮してください。
機械学習と人工知能を実装する際には、以下の点を考慮してください。
アンチパターン
実装を設計する際には、以下の点を考慮してください。
ここに示したパターンで説明されているアーキテクチャの代替パターンについて検討してください。また、アンチパターンの実装を避けてください。
以下に、Oracle Cloud Infrastructure(OCI)のデータおよび分析サービスを使用してビッグデータの取り込み、格納、カタログ化、準備、処理、および分析を行う実装の例を示します。
Oracle Analytics Cloudと組み合わせて、Oracle Autonomous Data Warehouseをデータウェアハウスまたはデータマートとして使用します。
Autonomous Data Warehouseでデータを管理し、Oracle Analytics Cloudを使用してデータを可視化します。
関連リソースで詳細をご確認ください。