Amazon Web Services ブログ

AWS Microservice Extractor for .NET – AI を利用したレコメンデーション

このブログはソリューションアーキテクトの遠藤宣嗣が翻訳しました。原文はこちらです。

はじめに

私たちが AWS Microservice Extractor for .NET をリリースしたときの目標は、モノリシックなアプリケーションからマイクロサービスを抽出するための使いやすいツールをお客様に提供することでした。この目標を達成するために、マイクロサービスで抽出する候補となるコードを見つけるための複数の方法を作成しました。この投稿では、Microservice Extractor の最新のイノベーションである、AI を活用した自動化されたリファクタリングのレコメンデーションについてお話します。その後、マイクロサービスをグループ化して抽出するための各オプションを検討するタイミングについて説明します。

AIを活用したレコメンデーションとは?

AI を活用した新しいレコメンデーション エンジンは、機械学習モデルを使用してプロジェクト内のソース コードをスキャンします。Microservice Extractor が分析を完了すると、ツールによってクラスが自動的にグループ化され、新しいマイクロサービスの候補が形成されます。

この新機能は、モダナイゼーションを必要とするアプリケーションの開発に関する専門知識をもはや持っていないお客様に最適です。このようなケースは、長期間にわたって使用されてきたアプリケーションを持つ企業で、元の開発者がもういない場合や、アプリケーションをアップグレードできない、またはアップグレードする意思のないサードパーティによって作成されたアプリケーションによく当てはまります。

適切なレコメンデーションオプションの選択

Microservice Extractor は、抽出のための3つの異なるオプションを提供します。手作業によるグループ化、ヒューリスティック分析、AIを利用したレコメンデーションです。これらのオプションはそれぞれ、マイクロサービスのクラスのグループを作成することができます。あなたの状況に最も適した抽出方法を選択してください。抽出オプションは相互に排他的ではありません。変化するニーズに基づいてマイクロサービスを特定するたびに、UI で異なる方法を選択できます。

リファクタリング対象のアプリケーションを深く理解しており、マイクロサービスの作成に関する具体的な目標がある場合は、手動でグループ化する方法を選択する必要があります。そのためには、抽出するクラスのレイアウトと、それらのクラスがアプリケーションの他の部分とどのようにつながっているかを理解する必要があります。

アプリケーションの使用経験は浅くても、抽出する必要がある機能を十分に理解している場合は、ソース コードのヒューリスティック分析によって、論理的な開始点に関するガイダンスが得られます。この分析では、分析対象のクラスの種類を識別することで、開始点を見つけます。たとえば、MVC アプリケーションのコントローラー クラスは、注文に関するマイクロサービスを抽出するための論理的な開始点かもしれません。

最後に、モダナイズするアプリケーションに関する専門知識が限られているか、まったくない場合は、AI を活用したレコメンデーション エンジンを使用して、候補となるマイクロサービスを見つけることができます。これらのレコメンデーションは、ヒューリスティック分析を超えて、開始点とサービスの境界を見つけます。AIを活用したレコメンデーションにより、Microservice Extractor はすべてのアプリケーションソースファイルを分析して、マイクロサービスに適した候補を生成する可能性が高いレコメンデーションを決定します。

これら 3 つのケースすべてで、グループ化を確認および調整して、リファクタリングの目標に向けて可能な限り最適なレコメンデーションを作成できます。

まとめ

AWS Microservice Extractor は、既存のモノリシックアプリケーションから潜在的なマイクロサービスを特定する複数の方法を提供します。これらのオプションは、モダナイズするアプリケーションに関するさまざまな知識レベルに対応しています。AWS Microservice Extractor for .NET をダウンロードすることで、AI を活用したレコメンデーションを今すぐ始めることができます。

投稿者について

Tom Moore

Tom Moore は、ボストン郊外のホーム オフィスで働いているプリンシパル デベロッパー アドボケイトです。.NET Developer Advocate として、Tom は .NET 開発者が AWS でアプリケーションを構築および実行できるように支援することに重点を置いています。Twitter では Basement Programmer @BasementProgra1 として活動しています。