ヒント
このコンテンツは、Azure 用のクラウド ネイティブ .NET アプリケーションの設計に関する電子ブックからの抜粋であり、.NET Docs またはオフラインで読み取ることができる無料のダウンロード可能な PDF として入手できます。
組織で構築する必要があるアプリについて考えます。 次に、ポートフォリオ内の既存のアプリを確認します。 クラウドネイティブ アーキテクチャが必要とされるのは何人のユーザーですか? 全部ですか? おそらくいくつか?
コスト/ベネフィット分析を適用すると、一部のユーザーが作業をサポートしない可能性が高くなります。 クラウド ネイティブになるコストは、アプリケーションのビジネス価値をはるかに超えます。
クラウド ネイティブの候補となるアプリケーションの種類は何ですか?
- ビジネス機能を絶えず進化させる必要がある戦略的エンタープライズ システム
- 高いリリース速度を必要とするアプリケーション - 高い信頼性
- システム全体を完全に再デプロイ せずに 個々の機能をリリースする必要があるシステム
- さまざまなテクノロジ スタックの専門知識を持つチームによって開発されたアプリケーション
- 個別にスケーリングする必要があるコンポーネントを含むアプリケーション
小規模で影響の少ない基幹業務アプリケーションは、クラウド PaaS 環境でホストされている単純なモノリシック アーキテクチャを使用すると、適切に動作する可能性があります。
その後、レガシ システムがあります。 全員が新しいアプリケーションを構築したいと考えていますが、多くの場合、ビジネスにとって重要なレガシ ワークロードを最新化する責任があります。
レガシ アプリの最新化
無料の Microsoft 電子書籍では、 Azure クラウドと Windows コンテナーを使用して既存の .NET アプリケーションを最新化 し、オンプレミスのワークロードをクラウドに移行するためのガイダンスを提供します。 図 1-10 は、レガシーアプリケーションを最新化するための万能な戦略が存在しないことを示しています。
図 1-10 レガシ ワークロードを移行するための戦略
重要ではないモノリシック アプリは、リフト アンド シフト の迅速な移行の恩恵を受ける可能性があります。 ここでは、オンプレミスのワークロードは、変更なしでクラウドベースの VM に再ホストされます。 このアプローチでは、 IaaS (サービスとしてのインフラストラクチャ) モデルを使用します。 Azure には、移動の合理化に役立つ Azure Migrate、 Azure Site Recovery、 Azure Database Migration Service などのいくつかのツールが含まれています。 この戦略ではコストを削減できますが、このようなアプリケーションは通常、クラウド コンピューティングの利点のロックを解除して活用するようには設計されていませんでした。
ビジネスにとって重要なレガシ アプリは、多くの場合、 強化されたクラウド最適化 移行の恩恵を受けます。 このアプローチには、アプリケーションのコア アーキテクチャを変更することなく、主要なクラウド サービスを有効にするデプロイの最適化が含まれます。 たとえば、アプリケーションを コンテナー化 し、この書籍の後半で説明する Azure Kubernetes Services などのコンテナー オーケストレーターにデプロイできます。 クラウドに入ると、アプリケーションは、データベース、メッセージ キュー、監視、分散キャッシュなどのクラウド バッキング サービスを使用できます。
最後に、戦略的なエンタープライズ機能を提供するモノリシック アプリは、この書籍の主題である クラウドネイティブ アプローチのメリットが最も高い場合があります。 このアプローチでは、機敏性と速度が提供されます。 ただし、コードの再プラットフォーム化、再設計、および書き換えのコストがかかります。 時間の経過とともに、レガシ アプリケーションはマイクロサービスに分解され、コンテナー化され、最終的にクラウドネイティブ アーキテクチャに 再プラットフォーム化される 可能性があります。
自分とチームがクラウドネイティブアプローチが適切であると考えている場合は、組織との意思決定を合理化する必要があります。 クラウドネイティブアプローチで解決されるビジネス上の問題は正確に何ですか? ビジネス ニーズとどのように一致しますか?
信頼性を高めた機能の迅速なリリース
きめ細かいスケーラビリティ - リソースのより効率的な使用?
システムの回復性が向上しましたか?
システムのパフォーマンスが向上しましたか?
操作の可視性が向上しましたか?
開発プラットフォームとデータ ストアを組み合わせて、ジョブに最適なツールに到達しますか?
将来性の高いアプリケーションへの投資
適切な移行戦略は、組織の優先順位と、対象とするシステムによって異なります。 多くの場合、モノリシック アプリケーションをクラウドで最適化したり、粗いサービスを N 層アプリに追加したりすると、コスト効率が高くなる可能性があります。 このような場合でも、Azure App Service で提供されているものと同様に、クラウド PaaS 機能を最大限に活用できます。
概要
この章では、クラウドネイティブ コンピューティングについて説明しました。 クラウドネイティブ アプリケーションを駆動する主要な機能と共に定義を提供しました。 この投資と労力を正当化する可能性のあるアプリケーションの種類を見てみましょう。
導入を終えて、今度はクラウドネイティブについてより詳細に取り組んでいきます。
リファレンス
- Cloud Native Computing Foundation
- .NET マイクロサービス: コンテナー化された .NET アプリケーションのアーキテクチャ
- Microsoft Azure Well-Architected Framework
- Azure クラウドと Windows コンテナーを使用して既存の .NET アプリケーションを最新化する
- コーネリア・デイビスによるクラウドネイティブパターン
- クラウド ネイティブ アプリケーション: 迅速に出荷し、リスクを軽減し、ビジネスを成長させる
- Dapr ドキュメント
- Twelve-Factor アプリケーションを超える
- コードとしてのインフラストラクチャとは
- Uber エンジニアリングのマイクロデプロイ: 自信を持って毎日デプロイ
- Netflix がコードをデプロイする方法
.NET