クラウド ネイティブ向けアプリの候補

ヒント

このコンテンツは eBook の「Azure 向けクラウド ネイティブ .NET アプリケーションの設計」からの抜粋です。.NET Docs で閲覧できるほか、PDF として無料ダウンロードすると、オンラインで閲覧できます。

Cloud Native .NET apps for Azure eBook cover thumbnail.

組織が構築する必要があるアプリについて考えてみましょう。 次に、ポートフォリオ内の既存のアプリを確認します。 そのうち、クラウドネイティブ アーキテクチャが保証されているアプリはいくつありますか。 全部ですか。 一部でしょうか。

コストとベネフィットの分析を適用すると、一部がその作業をサポートされていないようです。 クラウド ネイティブにするためのコストは、アプリケーションのビジネス価値をはるかに上回ります。

どのようなアプリケーションがクラウド ネイティブの候補になる可能性があるでしょうか。

  • ビジネスの機能や特徴を常に進化させる必要がある戦略的なエンタープライズ システム

  • 高い信頼性を備え、高いリリース速度を必要とするアプリケーション

  • システム全体を完全に再デプロイ "せずに"、個々の機能をリリースする必要があるシステム

  • さまざまなテクノロジ スタックの専門知識を持つチームによって開発されたアプリケーション

  • 独立してスケーリングする必要のあるコンポーネントを持つアプリケーション

小規模で影響の少ない基幹業務アプリケーションは、Cloud PaaS 環境でホストされているシンプルなモノリシック アーキテクチャに優れている可能性があります。

また、レガシ システムもあります。 誰もが新しいアプリケーションを構築したいと思うものですが、ビジネスにとって重要なレガシ ワークロードのモダン化を担当することもよくあります。

レガシ アプリのモダン化

無料の Microsoft の電子ブック『Azure クラウドおよび Windows コンテナーで既存の .NET アプリケーションを最新式にする』には、オンプレミスのワークロードをクラウドに移行するためのガイダンスが説明されています。 図 1-10 は、レガシ アプリケーションをモダン化する際に、1 つの汎用的な戦略はないことを示しています。

Strategies for migrating legacy workloads

図 1-10. レガシ ワークロードを移行するための戦略

重要ではないモノリシック アプリには、迅速なリフト アンド シフトによる移行が適しています。 この場合、オンプレミスのワークロードは変更なしでクラウドベースの VM に再ホストされます。 このアプローチでは、IaaS (サービスとしてのインフラストラクチャ) モデルを使用します。 Azure には、この移行を効率化するために、Azure MigrateAzure Site RecoveryAzure Database Migration Service など、いくつかのツールが用意されています。 この戦略により、ある程度のコストを削減できますが、通常、そのようなアプリケーションは、クラウド コンピューティングのベネフィットを引き出して活用するようには設計されていません。

ビジネスに不可欠なレガシ アプリは、多くの場合、強化されたクラウド最適化型による移行が適しています。 このアプローチには、アプリケーションのコア アーキテクチャを変更することなく、主要なクラウド サービスを有効にするデプロイの最適化が含まれています。 たとえば、アプリケーションをコンテナー化して、本書で後述する Azure Kubernetes Services などのコンテナー オーケストレーターにデプロイすることができます。 クラウド内では、データベース、メッセージ キュー、監視、分散キャッシュなどの他の補助的サービスがアプリケーションに使用される可能性があります。

最後に、戦略的なエンタープライズ機能を提供するモノリシック アプリの場合、本書の主題である "クラウドネイティブ" アプローチが最適な可能性があります。 このアプローチには機敏性とベロシティがあります。 ただし、プラットフォームの再構築、再設計、コードの書き換えにはコストがかかります。 時間の経過と共に、レガシ アプリケーションはマイクロサービスに分解され、コンテナー化され、最終的にはクラウドネイティブ アーキテクチャへと "プラットフォームの再構築 " が行われる可能性があります。

あなたとチームがクラウドネイティブ アプローチが適切であると考えるなら、その決定について組織に理論的に説明することをお勧めします。 クラウドネイティブ アプローチによって解決するビジネス上の問題とは、正確には何でしょうか。 ビジネス ニーズとどのように調和しますか。

  • より高い信頼性で機能を迅速にリリースできますか。

  • きめ細かいスケーラビリティを備え、リソースをより効率的に使用していますか。

  • システムの回復性は向上しますか。

  • システムのパフォーマンスは向上しますか。

  • 操作の可視性は向上しますか。

  • 開発プラットフォームとデータ ストアを融合させ、仕事に最適なツールを実現できますか。

  • 将来を見据えたアプリケーションへの投資ですか。

適切な移行戦略は、組織の優先順位と対象とするシステムによって異なります。 モノリシック アプリケーションをクラウドに最適化するか、n 層アプリに粒度の粗いサービスを追加する方が費用効果が高いことはよくあります。 このような場合でも、Azure App Service によって提供されるようなクラウド PaaS 機能を十分に活用できます。

まとめ

この章では、クラウドネイティブ コンピューティングについて紹介しました。 クラウドネイティブ アプリケーションを推進する主要な機能と共に、定義について説明しました。 このような投資と労力を正当化できるようなアプリケーションの種類についても説明しました。

導入部を終えて、これからクラウド ネイティブについてさらに詳しく説明します。

リファレンス