マイクロサービスを始める

マイクロサービスは最新のソフトウェアを開発するためのアーキテクチャ・アプローチです。それぞれのコアな機能(サービス)は個別に構築およびデプロイされる関連するビジネス・コンテキストを表します。マイクロサービスは、アプリケーションの構築と保守のアジリティを実装しており、レガシー・ソフトウェア開発のモノリシック・アプローチとの対比を表しています。現在、アプリケーションの最新化はマイクロサービスと同義です。

マイクロサービスの詳細は、モノリシック・アーキテクチャ、マイクロサービス・アーキテクチャを採用するための考慮事項、通信メカニズム、12要素のデプロイメント方法、Kubernetesでのデプロイメント、データ永続性、サービス・メッシュ、およびマイクロサービスを設計するためのベスト・プラクティスとの対比を参照してください。

マイクロサービスの利点

  • わかりやすい導入

    サービスのデプロイ・モデルをサポートする継続的な統合と継続的なデプロイを実現して、新機能の市場投入までの期間を短縮します。

  • 必要に応じてパフォーマンスを拡張

    機能の要件を満たすために、サービスごとに個別にサービス・コンテナまたはデータ・プラットフォームを拡張します。

  • 設計による高可用性

    アプリケーション全体に影響を及ぼさずに、独立したサービスを置換または廃止します。アプリケーション全体をクラッシュするのではなく、サービスを低下して、個別のサービス障害を適切に処理します。

Oracle Cloud Infrastructure(OCI)でマイクロサービスを構築する方法を学びましょう。

Oracle Converged Databaseの利点

データドリブン・マイクロサービスの重要な側面は、さまざまなデータ・タイプをデプロイし、コンテナで複数のデータベースをサポートし、自律的な管理機能を実装するデータ管理プラットフォームをデプロイすることです。OCI上のOracle Autonomous Databaseは、インテリジェントでデータ駆動型のマイクロサービスを構築するための導入を容易にします。

マイクロサービス・ベースのアプリケーション全体でトランザクションの一貫性を実現

Oracle Transaction Manager for Microservices(MicroTx)は、分散トランザクションを可能にし、Kubernetesやその他の環境にデプロイされた多言語マイクロサービス間で一貫性を確保することにより、アプリケーションの開発と運用を簡素化します。

マイクロサービス向けの完全なオープン・プラットフォーム

アプリケーションの最新化を実現するには、複数のテクノロジーを統合して、適切なマルチクラウド・マイクロサービス基盤を構築する必要があります。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などのマイクロサービス・パターンを示した。

オラクルのコンバージド・データベースによるデータドリブンのマイクロサービス

Oracle Transaction Manager for Microservicesにより、マイクロサービス間のトランザクションの一貫性

マイクロサービス・アーキテクチャの人気が高まっているため、開発者はデータの一貫性に関連する問題に遭遇することがよくあります。各マイクロサービスには通常、独自のデータベースやその他のリソースがあるためです。MicroTxは、トランザクションに参加している様々なデータベースの状態の一貫性を維持するためのトランザクション調整マイクロサービスを提供します。MicroTxでは、XA、長時間実行アクション(LRA)、try-confirm/cancel (TCC)など、いくつかの分散トランザクション・プロトコルがサポートされています。Java、node.js、C/C++、PL/SQLなどの多言語マイクロサービス間の分散トランザクションをサポートします。このLiveLabでは、開発者は、サンプル・アプリケーションで使用される様々なマイクロサービス間でデータの一貫性を実現する方法を学習できます。

Oracle Transaction Manager for Microservicesにより、マイクロサービス間のトランザクションの一貫性

構成要素

マイクロサービス向けの完全なオープン・プラットフォーム

アプリケーションの最新化を実現するには、複数のテクノロジーを統合して、適切なマルチクラウド・マイクロサービス基盤を構築する必要があります。Oracle LiveLabsでは、オラクルのツールとテクノロジーにアクセスして、さまざまなラボとワークショップを実行できます。このようなワークショップでは、オラクルとともにオープン・テクノロジーを使用して、柔軟にデプロイできるわかりやすいアーキテクチャを構築する方法を説明します。有益なマイクロサービス・プラットフォーム・スタックで、OCI、Autonomous Database、Helidon、Micronaut、WebLogic、Java、Docker、Kubernetes、およびIstioサービス・メッシュで提供されているクラウドおよびハイブリッド・コンポーネントによって、Oracle LiveLabs内のマイクロサービスを構築しましょう。マイクロサービスへの移行を開始するか、この移行をすでに開始している場合は、簡素化するために、モノリス・エンタープライズ・アプリケーションの最新化に役立つ複数のラボがあります。

Microservicesの用語

サーバーレス - 永続的な状態はデータ・ストアで不要であり、タスクはオンザフライ(ファイア・アンド・忘却)スタイルで実行されます。たとえば、ラムダ関数や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つのパブリック・クラウドへのロックインの防止)でオーケストレーションするマイクロサービス。

マイクロサービスの課題

マイクロサービスは、アプリケーションの最新化と同等であり、すべてのアプリケーション開発を推進する方法ですが、マイクロサービス・アーキテクチャにさらに効率的に移行するための考慮事項があります。

  • アプリケーションの独立したマイクロサービスの数の選択。数千のマイクロサービスをデプロイする必要があり、各サービスのコンテキストが非常に小さい場合は調和して動作することが期待されると、マイクロサービス・デプロイメントは複雑になります。エクスペリエンスは、20から50のマイクロサービスが適切な境界コンテキストで識別されると、マイクロサービスへの移行によって、有望な利点がさらに実現していることを表しています。
  • マイクロサービスの境界を越えてトランザクションを実装することは、XAトランザクション(場合によっては同期およびパフォーマンス制限)の課題でした。同期SAGAは、パフォーマンスと堅牢性が高く、コンバージドOracle Databaseのサポートによりさらに簡素化されています。
  • マイクロサービス間の疎結合の必要性はREST APIの同期サービスの使用に関する課題になっています。メッセージング/キュー・システムでは、ハイブリッド・クラウド環境でアプリケーションをデプロイする場合、この通信は非同期でさらにスケーラブルになります。
  • トレースと監視性は、アプリケーション層または中間層で重要であるだけでなく、データ層でマイクロサービス・アーキテクチャの包括的なエンドツーエンドのデプロイとサポートにとって重要でもあります。ツールと分析の統合はハイブリッド環境向けのこの重要な側面に対処し始めています。

マイクロサービスのお客様成功事例

このページは機械翻訳したものです。