マイクロサービスは最新のソフトウェアを開発するためのアーキテクチャ・アプローチです。それぞれのコアな機能(サービス)は個別に構築およびデプロイされる関連するビジネス・コンテキストを表します。マイクロサービスは、アプリケーションの構築と保守のアジリティを実装しており、レガシー・ソフトウェア開発のモノリシック・アプローチとの対比を表しています。現在、アプリケーションの最新化はマイクロサービスと同義です。
マイクロサービスの詳細は、モノリシック・アーキテクチャ、マイクロサービス・アーキテクチャを採用するための考慮事項、通信メカニズム、12要素のデプロイメント方法、Kubernetesでのデプロイメント、データ永続性、サービス・メッシュ、およびマイクロサービスを設計するためのベスト・プラクティスとの対比を参照してください。
サービスのデプロイ・モデルをサポートする継続的な統合と継続的なデプロイを実現して、新機能の市場投入までの期間を短縮します。
機能の要件を満たすために、サービスごとに個別にサービス・コンテナまたはデータ・プラットフォームを拡張します。
アプリケーション全体に影響を及ぼさずに、独立したサービスを置換または廃止します。アプリケーション全体をクラッシュするのではなく、サービスを低下して、個別のサービス障害を適切に処理します。
Oracle Cloud Infrastructure(OCI)でマイクロサービスを構築する方法を学びましょう。
データドリブン・マイクロサービスの重要な側面は、さまざまなデータ・タイプをデプロイし、コンテナで複数のデータベースをサポートし、自律的な管理機能を実装するデータ管理プラットフォームをデプロイすることです。OCI上のOracle Autonomous Databaseは、インテリジェントでデータ駆動型のマイクロサービスを構築するための導入を容易にします。
アプリケーションの最新化を実現するには、複数のテクノロジーを統合して、適切なマルチクラウド・マイクロサービス基盤を構築する必要があります。Oracle LiveLabsでは、オラクルのツールとテクノロジーにアクセスして、さまざまなラボとワークショップを実行できます。このようなワークショップでは、オラクルとともにオープン・テクノロジーを使用して、柔軟にデプロイできるわかりやすいアーキテクチャを構築する方法を説明します。Autonomous Database、Helidon、Micronaut、MicroTx、WebLogic Server、Java、Docker、Kubernetes、Istio Service Meshなど、OCIで使用可能なクラウドおよびハイブリッド・コンポーネントを使用して、Oracle LiveLabsでマイクロサービスを構築します。マイクロサービスへの移行を開始するには、モノリシック・エンタープライズ・アプリケーションの最新化や、この移行をすでに開始している場合の簡素化に役立つ複数のラボがあります。
このOracle LiveLabは、最新の開発スタックによって、データ・アーキテクチャのシンプルさを強調するために、GrabDishというモバイル・フード・デリバリ・アプリケーションを構築します。これは、業界で従来LambdaおよびKappaアーキテクチャとして採用されていた特殊用途データベースの複雑さ(リレーショナル・システム、テキスト・システム、空間システム、グラフ・システム、メッセージング・システム用の個別のシステムを使用)と、Oracle Converged Databaseによるデータドリブン・マイクロサービスの構築のシンプルさを対比しています。このラボは、開発者および設計者が新しいマイクロサービスを設計するためのものです。また、DBAは、アプリケーション・モダナイゼーション・プロジェクトにおけるOracle Databaseの役割を理解するのに役立ちます。Autonomous Database、dockerコンテナを含むKubernetesクラスタ、Oracle Advanced QueuingおよびTransactional Event QueuesおよびHelidonは、Java、Node.jsおよびPythonマイクロサービスがリレーショナル・データ、JSONデータ、空間データおよびグラフ・データと連動し、Kiali、Jaegerデータ、PrometheusデータおよびGrafanaで設定されたトレースおよびモニタリングを表示するために使用されます。イベント・ソーシング、CQRS、SAGAなどのマイクロサービス・パターンを示した。
マイクロサービス・アーキテクチャの人気が高まっているため、開発者はデータの一貫性に関連する問題に遭遇することがよくあります。各マイクロサービスには通常、独自のデータベースやその他のリソースがあるためです。MicroTxは、トランザクションに参加している様々なデータベースの状態の一貫性を維持するためのトランザクション調整マイクロサービスを提供します。MicroTxでは、XA、長時間実行アクション(LRA)、try-confirm/cancel (TCC)など、いくつかの分散トランザクション・プロトコルがサポートされています。Java、node.js、C/C++、PL/SQLなどの多言語マイクロサービス間の分散トランザクションをサポートします。このLiveLabでは、開発者は、サンプル・アプリケーションで使用される様々なマイクロサービス間でデータの一貫性を実現する方法を学習できます。
マイクロサービス向けの完全なオープン・プラットフォーム
アプリケーションの最新化を実現するには、複数のテクノロジーを統合して、適切なマルチクラウド・マイクロサービス基盤を構築する必要があります。Oracle LiveLabsでは、オラクルのツールとテクノロジーにアクセスして、さまざまなラボとワークショップを実行できます。このようなワークショップでは、オラクルとともにオープン・テクノロジーを使用して、柔軟にデプロイできるわかりやすいアーキテクチャを構築する方法を説明します。有益なマイクロサービス・プラットフォーム・スタックで、OCI、Autonomous Database、Helidon、Micronaut、WebLogic、Java、Docker、Kubernetes、およびIstioサービス・メッシュで提供されているクラウドおよびハイブリッド・コンポーネントによって、Oracle LiveLabs内のマイクロサービスを構築しましょう。マイクロサービスへの移行を開始するか、この移行をすでに開始している場合は、簡素化するために、モノリス・エンタープライズ・アプリケーションの最新化に役立つ複数のラボがあります。
サーバーレス - 永続的な状態はデータ・ストアで不要であり、タスクはオンザフライ(ファイア・アンド・忘却)スタイルで実行されます。たとえば、ラムダ関数やAPIゲートウェイなどです。
API駆動型 - マイクロサービスは、APIゲートウェイなどのREST APIを使用して相互に通信します。各マイクロサービスにはAPI定義があります。
非同期マイクロサービス - Oracle Advanced QueuingやApache Kafkaなどのキューまたはストリーミング・ソフトウェアによって、非同期メッセージングで疎結合を実現します。
ワークフロー・アクション - Camunda、Zeebe、temporal.ioフローなどのBPMNフレームワークを使用して、長時間のトランザクションも表すビジネス・フロー(ループに人間を含む)。
自動ワークフロー - Apache Airflow and Argo (CNCF)などの自動的な方法(ループに人間を含まない)によって、単純なワークフローとして実行されるタスク。
データドリブン - データ・アーキテクチャは、通常、Oracle Converged Databaseや特別な目的のデータベースなど、永続ストアを使用して、運用と意思決定のためにアプリ内のデータの消費を促進します。
クラウド・ネイティブ - CNCFコンポーネントおよびOCIサービスを含むなど、クラウド用に完全に開発されたアプリケーション。
ハイブリッド・クラウド・マイクロサービス - Kubernetes/サービス・メッシュなどによって顧客のデータ・センター(プライベート・クラウド)とパブリック・クラウドで動作し、プライベート・クラウドとパブリック・クラウド(クラウド・バースティングのユース・ケース)でオーケストレーションするマイクロサービス。
マルチ・クラウド・マイクロサービス - Kubernetes/サービス・メッシュなどによって、少なくとも2つのパブリック・クラウドと1つのプライベート・クラウドで動作し、複数のクラウド(リスク軽減を提供し、1つのパブリック・クラウドへのロックインの防止)でオーケストレーションするマイクロサービス。
マイクロサービスは、アプリケーションの最新化と同等であり、すべてのアプリケーション開発を推進する方法ですが、マイクロサービス・アーキテクチャにさらに効率的に移行するための考慮事項があります。
このページは機械翻訳したものです。