.NET 5移行前に知らないと損する、アプリモダナイズのための確認事項: .NET 5モダナイズ入門(3)
既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項やレガシーアプリのモダナイゼーションについて解説する連載。今回は、.NETアプリケーションのモダナイゼーションを進める前の確認事項を紹介します。
既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項やレガシーアプリのモダナイゼーションについて解説する本連載「.NET 5モダナイズ入門」。前回は、.NET 5世代のアプリケーションライフサイクルマネジメント(ALM)および、.NET Frameworkから.NET 5へ移行する際におけるワークロードごとの方法の概要や参考情報を紹介しました。今回からモダナイゼーションの進め方について解説していきます。
オンプレミスのアプリケーションのモダナイゼーションを進め、既存の.NETアプリケーションをクラウドにデプロイすることで、DevOpsによる開発の高速化と運用の効率化、セキュリティの強化、ダウンタイムの最小化や運用コストの最小化などさまざまなメリットを享受できます。
ですが、モダナイゼーションを進める前に、そのアプリケーションがオンプレミスの環境上で“適切に”構成されているかどうかを確認することが必要です。適切に構成されたオンプレミスアプリケーションはモダナイゼーションの難易度も低くなり、改修の手間も軽減されます。従って、モダナイゼーションの前に、対象となるアプリケーションが抱える問題を把握し、改善することが重要です。
アプリケーションのモダナイゼーションの前に確認すること
アプリケーションのモダナイゼーションを考える場合、まずは、そのアプリケーションが持つ問題について、「モダナイゼーションに起因する問題」「たまたまオンプレミスでは表面化しにくいだけで、単にそのアプリケーション自体に起因する問題」を正しく把握することが重要です。問題を詳しく分析すると、一見モダナイゼーションに起因するように見えても、実は単なるアプリケーション自体の問題であることも多く見受けられるためです。
そして、アプリケーション自体の問題を解決しないままモダナイゼーションに着手してしまうと、2つの要因に起因する複合した問題が発生し、状況の把握や問題の解決に必要以上に時間がかかってしまいます。
よって、まずはモダナイゼーションに着手する前に、そのアプリケーションが潜在的に持つさまざまな問題を改善し、アプリケーションの品質を向上させることが重要です。
モダナイゼーションに無関係なアプリケーション自体の問題を改善する
一見モダナイゼーションに起因する問題に見えるが、実は単なるアプリケーション自体の問題であるケースについて、幾つか具体例を挙げて説明します。
再起動への対応など、運用による問題の回避への対応
例えば、「ASP.NET」などのWebアプリケーションであれば、理論的には、予期しないサーバの再起動を防ぐことはできません。従って、予期せぬサーバの再起動によってアプリケーションが強制終了してしまった後にアプリケーションが再起動した場合でも、処理途中の処理が正しく継続できることが求められます。
ですが、このような事象への対処をアプリケーション側で全て対処しようとすると、アプリケーションコードが複雑になり、開発時の工数もかかるため、アプリケーション側で完全には対応せず、再起動時に特定の手順を行う運用で正常な動作を保証しているケースがしばしば見受けられます。これは、オンプレミスのように再起動の発生を運用側の都合でコントロールできる状況では影響をコントロールできますが、クラウドのサービス、例えば、「Azure App Service」にデプロイした場合、再起動の主導権はクラウドのプラットフォーム側にあり、利用者が予測できない再起動は当たり前に発生してしまうので、問題が顕在化してしまいます。
このように、既存のアプリケーションで「運用による問題の回避」が前提になっている箇所は、そもそもアプリケーションが持つ問題をその場しのぎで回避している可能性があるので、根本的な原因を確認し問題があれば改善することをお勧めします。
外部リソースのハンドリング
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「マイクロサービスアプリ構築を容易にする」、Microsoftが始めたOSSプロジェクト「Dapr」について、生みの親に聞いた
Microsoftは2019年10月、マイクロサービスアプリケーションの開発を容易にするオープンソースソフトウェアのプロジェクト、「Dapr(Distributed Application Runtime)」を開始した。その「生みの親」であるルーク・キム(Luke Kim)氏とヤーロン・シュナイダー(Yaron Schneider)氏に、2019年11月開催のKubeCon+CloudNativeCon North America 2019で聞いた。 - Visual Studio 2019、Git統合やAIによる入力補完、リモート開発などで多数の機能追加
Microsoftは「Visual Studio 2019 バージョン16.7」の一般提供を開始した。Git統合やIntelliSense、IntelliCode、リモート開発などにおいて、多くの機能を追加している。バージョン16.4以来の長期サービスリリースだ。 - SIも知っておくべき、ローコード開発でトラブルが起こる理由
「ローコード開発」に対する企業の関心が高まっているが、どう捉え、導入を進めればよいのか。考慮しておかなければならない点は何か。ガートナー ジャパンのアナリストに、ローコード開発の市場動向や注意点、今後の展望などを聞いた。