Dynatraceによるクラウドマイグレーション戦略

:::note info
本記事は[Plan, execute, and modernize a cloud migration strategy with Dynatrace](https://www.dynatrace.com/news/blog/plan-execute-and-modernize-a-cloud-migration-strategy-with-dynatrace/)の抄訳となります。
:::

**ITインフラやアプリケーションがクラウドへ移行することにより生じる複雑さによりオブザーバビリティプラットフォームが必要になります。ここでは、お客様がクラウド移行戦略においてDynatraceをどのように利用しているかをご紹介します。**

俊敏性、コスト削減、イノベーションへの迅速な対応を求めるITチームにとって、クラウドへの移行戦略は非常に重要です。クラウドへ移行し、パブリッククラウドのインフラを利用できるようになりことで、組織は規模が拡大してもITインフラのあらゆる側面の管理に煩わされることなく、イノベーションを実現することができます。
しかし、管理対象が自分たちの手元から移行すると、ITチームはシステムのパフォーマンスやセキュリティの問題を把握できなくなることがよくあります。そのため、インフラストラクチャを監視する方法が必要です。これは、組織がレガシーアプリケーションをパブリッククラウドに移行する場合に特に当てはまります。従来の監視ツールでは、同じプラットフォーム上のレガシーアプリケーションとクラウドネイティブアプリケーションを監視することができません。
最新のオブザーバビリティプラットフォームのおかげで、クラウドへの移行はかつてないほど容易になりました。オブザーバビリティによって、企業はアプリケーションの移行とモダナイゼーションを効率的に行うことができ、同時にインテリジェントな自動監視を導入することができます。因果推論AIは、パフォーマンスの問題やセキュリティの問題などを自動的に特定します。オブザーバビリティと因果推論AIを組み合わせることで、ユーザーに影響が及ぶ前に問題を確認し、原因を修正することができます。
大規模なクラウド移行は3段階で実施され、クラウド事業者によって違いはありますが、基本的な考え方は同一です。

1. **検討と評価** - クラウド移行の戦略を定義、既存環境の評価、ワークショップの実施
1. **計画と動員** - ビジネスケースを構築し、移行計画のプランニングを開始、運用モデル、セキュリティ管理を定義
1. **移行とモダナイズ** - リホスト、リプラットフォーム、リファクタリング、リアーキテクトの実行、クラウド移行を最適化し、移行後のワークロードのパフォーマンスを検証

## Dynatraceによるアセスメントとディスカバリー

[クラウド移行戦略](https://www.dynatrace.com/news/blog/what-is-cloud-migration/)では、まず、アプリケーション、依存関係、ユーザーアクセス、ホストインフラ、利用ピーク時間帯などを評価します。

### Dynatraceを使ったフルスタックの依存関係の確認

Dynatraceの[Smartscape](https://www.dynatrace.com/support/help/how-to-use-dynatrace/smartscape)は、データセンター、ホスト、プロセス、サービスからアプリケーションにわたるすべての依存関係を、ほぼリアルタイムにトポロジーマップとして可視化します。
クラウド導入の観点から、Smartscapeでは以下の内容を確認することが可能になります。

* アプリケーションのパフォーマンスを向上させるために、サービスアーキテクチャやインフラストラクチャの把握
* ホスト、プロセスおよびサービスの階層間と同一階層での相互依存性を調査し、それらがアプリケーションのパフォーマンスにどのように影響するかのよりよい理解
* 因果関係AIは、Smartscapeから得られた依存関係から問題の原因を正確に特定。例えば、Dynatraceは、サードパーティの依存関係の問題を特定し、その問題がアプリケーションのパフォーマンスに与える影響を明らかにすることが可能

### すべてのアプリケーションの概要の把握

クラウド移行を行う前に、ITチームはユーザーがどのようにアプリケーションを使用しているか、またそれらのアプリケーションがどの程度使用されているかを把握する必要があります。
さらに、使用頻度の低いアプリケーションを特定し、クラウド移行戦略から除外するアプリケーションと、試験的に使用するアプリケーションを特定する必要があります。試験的なクラウド移行は、プロセス、運用、技術の変更に関連するリスクを明らかにするのに役立ちます。次の図では、ユーザーが Dynatraceで監視するすべてのアプリケーションを 1 分あたりのアクション数でソートする方法を示しています。ここで、1分あたりのアクションの比率が高いアプリケーション（例：www.vmware.easytravel.com）と低いアプリケーション（例：www.weather.easytravel.com）を確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/24e4bf92-c391-d8ef-c44f-99971384b965.png)

### アプリケーションの利用人数の把握

Dynatraceのリアルユーザー監視では、指定した時間帯に誰がアプリケーションを利用し、どのようなタスクを完了したかなどの情報を提供します。次の図では、アプリケーションにアクセスしている実際のユーザーを確認するために、アプリケーションを基準にリアルユーザーをソートしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/5ba80714-a9ce-93ce-1ef1-21e7b918f920.png)


### データをレポート用に出力

視覚化は日々の活動に最適です。しかし、分析のためにスプレッドシートやレポートが必要になることがよくあります。そのため、お客様は[DynatraceのAPI](https://www.dynatrace.com/support/help/dynatrace-api)を使用して、監視タスクを自動化し、サードパーティのレポートおよび分析ツールにさまざまなデータタイプをエクスポートすることができます。

## インフラの適正化

過剰にプロビジョニングされたサーバーは、CPUやメモリの浪費を招き、非効率的な使用とコスト増を招きます。ライトサイジングは、可能な限り低いコストで、サーバーとワークロードのパフォーマンスと容量の要件を一致させます。

Dynatraceを使用すると、現在および過去のCPU、メモリ、ディスク、ネットワークの使用状況にアクセスし、サーバーが最適化されているかどうかを確認することができます。次の図は、CPUやメモリを削減または増加させる必要があるかどうかを示しています。
![demo-migration-workbook-through-dynatrace-api.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/b745c290-f5a9-f702-35ff-0d4febc58c3c.png)

サーバーが初めてクラウドに移行する際に適切なサイズを設定し、これらのリソースの総所有コストを計算することは重要ですが、適切なサイズの設定は継続的に行われます。パフォーマンスと容量の要件は時間とともに変化するため、リソースのプロビジョニングが過剰になったり不足したりする可能性があります。

## Dynatraceで実現するクラウド移行戦略の7つのR

クラウドへの移行戦略には、7つのRが含まれます。まず、ITチームは、アプリケーションがこれらの7つのフェーズの中で何を必要としているかを評価する必要があります。

1. **Rehost** - アプリケーションを別のホスティングプラットフォームに移行する。
1. **Replatform** - マネージドサービスのような別のプラットフォームに移行する。ベンダーが提供するマシンイメージを使用し、コンテナ化し、CI/CDパイプラインを使用する。
1. **Refactor** - アプリケーションをモダナイズし、アプリケーションをコンテナ化し、コードをリファクタリングします。
1. **Repurchase** - SaaSまたはマーケットプレイス製品に移行する。
1. **Relocate** - 別の場所で同じアーキテクチャに移行する。
1. **Retire** - アプリケーションとインフラを廃棄する。
1. **Retain** - ワークロードをオンプレミスで維持し、ハイブリッドクラウドアプローチを使用する。

アプリケーションによっては、アーキテクチャの再構築とプラットフォームの再構築を同時に行わなければならない場合があります。例えば、電子商取引アプリケーションをマイクロサービス・プラットフォームに変換し、同時にクラウドに移行するような変革プロジェクトを行うことです。
次の図は、VMware上でホストされるJavaベースのアプリケーションのサービスフローを示したものです。サービスの1つはTomcatサービスで仮想マシン上にホストされ、HAProxyを介して負荷分散されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/8596140f-6aec-3aff-47c5-6039025b2262.png)

同様に、アプリケーションの作成に関わる他のすべてのサービスも見ることができます。Dynatraceは自動的にアプリケーションのトランザクションを端から端まで理解します。したがって、アプリケーションを再構築するには、サービスフローを使用して、関係する様々なサービス、サービスを構築するために使用される技術（図ではTomcatとMongoDBが確認可能）、リクエストの数と割合を理解することができます。
開発者は、アプリケーションをコンテナに分解し、クラウドで管理されているKubernetesなどのコンテナオーケストレーションプラットフォームでホストすることができます。Dynatraceは、コード、コンテナイメージ、またはデプロイメントを変更せずに[フルスタックのオブザーバビリティ](https://www.dynatrace.com/news/blog/what-is-full-stack-observability/)を提供する唯一のKubernetesモニタリングソリューションです。

## アプリケーションの移行とモダナイゼーション

[リアルユーザーモニタリング](https://www.dynatrace.com/news/blog/what-is-real-user-monitoring/)では、ピークアクティビティ間隔セクションを使用して、アプリケーションがいつ最も多く使用され、いつ最も少なく使用されるかを把握することができます。このデータは、移行時のスケジューリングに役立ち、移行プロセス中のユーザーへの影響を最小限に抑えることができます。

クラウド移行戦略に関わらず、ワークロードがどのようにクラウドに移行したか、パフォーマンス、使用状況、接続性、または未知の問題の変化を確認したいでしょう。お客様は、過去と現在のパフォーマンスを比較するために、Dynatrace内の無数のオプションを使用できます。最も人気のあるビルトイン機能は、**前の時間枠と比較**機能です。
次の図の1つ目はアプリケーションにおけるアクティブセッション数について比較したものです。2つ目はサービスの特定のリクエスト（authentication）における応答時間を前日と比較したものになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/3e7a5748-4fb0-a1e0-c400-07be42c1cd03.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/03e38038-48a6-313c-a921-4899b7ad62a1.png)

多くの場合、お客様はフロントエンドのユーザーエクスペリエンスからインフラのパフォーマンスまで、フルスタックのすべてのコンポーネントを比較したいと考えます。Dynatraceのダッシュボード機能を使用すると、フルスタックのすべての重要なコンポーネントのダッシュボードを作成し、環境を横に並べて表示することができます。そのため、お客様は移行前と移行後のシステムパフォーマンスを確認することができます。各ダッシュボード・タイルにカスタム時間枠を設定できるため、お客様は同じダッシュボード内で異なる時間枠の同じメトリックを簡単に表示することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/f85733b9-09c6-09e6-396d-39209d3c99b5.png)

## ワークロードのモダナイゼーションとクラウドネイティブ環境のモニタリング

アプリケーションがクラウドに移行すると、ロードバランサー、リレーショナルおよび非リレーショナルデータベースシステム、サーバーレス機能など、クラウドプロバイダーが提供するサービスを使用することが一般的になります。次の図ではAWS ALBやRDSの状況を確認しています。DynatraceではAWSなどのクラウド監視も簡単に実現することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/d39582d7-81fc-6a28-e4a6-5dd8a05550db.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/71c67ec8-252b-63bf-2790-3c6d94691506.png)

Kubernetesクラスタ上のDynatrace Operatorは、コード変更なしでエンドツーエンド、フルスタックの可視性を提供します。次の図では、DynatraceはKubernetesクラスタ、ワークロード、ポッドを監視しています。これは、プラットフォームとアプリケーションの関係を俯瞰し、相関関係を理解することが可能です。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/5451bc0b-34f6-7c1e-ab77-da4cb98589d2.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/7022af2b-9d88-09b0-de88-abf5e98f677e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/a6e87aed-664f-7812-1847-d5322d9a32a6.png)

## AIOpsでクラウドにおけるオペレーションエクセレンスを実現する

オペレーションエクセレンスを実現するには、アラートストームと労力を削減し、運用の失敗を防止してそこから学習する能力が必要です。たとえば、アプリケーション、サービス、プロセス、ホスト、クラスタ、ポッドなどのフルスタックにわたって静的ベースラインを手動で作成することは困難であり、特に多くのリソースが大幅に抽象化されているクラウド環境では設定ミスが発生しやすくなっています。
そこで、これらの課題を克服するために、[DynatraceのAI原因究明エンジン「Davis®」](https://www.dynatrace.com/platform/artificial-intelligence/)が、アプリケーション、サービス、インフラスタックのパフォーマンス異常を自動検出します。Dynatraceが検出した問題は、パフォーマンスの低下、不適切な機能、可用性の欠如などの異常アラートを生成します。
問題の根本原因を特定するために、Dynatraceは、トポロジー、トランザクション、コードレベルの情報など、OneAgentから配信されるすべてのコンテキスト情報を使用して、共通のソースを共有するイベントを見つけます。利用可能なすべてのコンテキスト情報を使用して、Dynatraceは、アプリケーションデリバリーチェーン内の問題の根本原因をピンポイントで特定し、同じ根本原因から発生する単一のインシデントのアラートを劇的に削減します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65441/a2557002-1bae-6bd1-93e0-57f8129086d7.png)

## Dynatraceはクラウド移行戦略を簡素化

[クラウドの移行](https://www.dynatrace.com/news/blog/what-is-cloud-migration/)は、人、プロセス、テクノロジーを含む複雑なものです。しかし、環境の発見、ユーザーパターンの特定、計画、移行、クラウドワークロードのモダナイゼーションを自動化することで、Dynatraceはこれまで以上に簡単に実施することを可能にします。

同時に、クラウドとマネージドプラットフォームソリューションが提供する抽象化により、依存関係、ベースラインのキーコンポーネント、問題を特定することが困難になっています。Dynatrace AIは、プロセスを簡素化し、最も複雑なアプリケーションであっても自動的な根本原因の分析を実行します。