投稿日: Aug 2, 2022
AWS Microservice Extractor for .NET は古いモノリシックなアプリケーションをより小さなコードプロジェクトにリファクタリングするプロセスを簡素化し、マイクロサービスベースのアーキテクチャを構築します。ソースコードとランタイムメトリクスを分析してアプリケーションとその依存関係を視覚的に表現する支援ツールを使用し、アプリケーションをモダナイズして変換します。自動化されたレコメンデーションを Microservice Extractor が提供するので、デベロッパーはガイドを受けながらレガシーアプリケーションをリファクタリングできます。Microservice Extractor が抽出のためにソースコードのクラスを手動で識別してグループ化する必要がなくなり、Microservice Extractor がヒューリスティックベースの技術を使ってよくある抽出の候補を識別し、ハイライトして視覚化します。こうしたレコメンデーションはそれ自体としても、モノリシックなコードベースからマイクロサービスを抽出する開始点としても使えます。Microservice Extractor の自動化されたレコメンデーションは、デベロッパーがコードベースに不慣れでも、大きなアプリケーションのリファクタリングをすばやく行うのに役立ちます。
レコメンデーションは 3 つのよくあるパターンに基づいています。
- ユーザーインターフェイスの隣接ノード: Microservice Extractor はレガシーアプリケーションのユーザーインターフェイス (UI) レイヤーから直接呼び出されたクラスをハイライトします。例えば、MVC (Model-View-Controller) タイプアプリケーションのコントローラタイプクラスなどです。こうしたクラスはすべての抽出の開始点となります。これらのクラスにより、アプリケーションの最初のユーザータッチポイントに基づいてマイクロサービスを作成できるためです。
- データの隣接ノード: Microservice Extractor はデータに隣接するクラスを分類します。データベースやファイルシステムなどの永続ストレージからデータを取得するすべてのクラスは、データの隣接ノードとしてラベル付けされます。MVC アプリケーションにおいて、これらは Entity Framework (EF) ノードです。
- ドメインノード: Microservice Extractor はアプリケーションのドメインオブジェクト (Product、Customer など) をヒューリスティックに検出します。これらのオブジェクトはドメイン駆動設計の概念に沿っており、デベロッパーはそれぞれのドメインオブジェクトに基づいてマイクロサービスを作り上げることができます。