2015年DevOps – 基本的なメトリクスを越えて

この記事はCodeProject.comに掲載されたものです。
2015年です。実運用環境でアプリケーションがどのように作動しているかご存知ですか?サーバーのプロセッサやメモリの使用状況を確認できるように、
いくつかのサーバー・モニタリングにフロントエンド分析のプラグインをインストール、設定されていることでしょう。
懸案:コードが何を行っているか本当にわかっていますか?サーバーファーム全体の時間に標準を合わせたスナップショットを取得できますか?
アプリケーション・サーバーが何を実行しているか、ラインごとに分析できますか?メモリやプロセッサの使用率は、サーバーの正常性を定義する上で素晴らしい基準になります。
しかし、ユーザーエクスペリエンスの正常性に関してはどうでしょうか?ハードウェアによるメトリクスは一部を語ることしかできません。
ビジネスユニットにとって大きな意味があるサーバーの応答時間、バウンス率、セールス転換率などの
重要なメトリクスがウェブ・アプリケーションにはあります。
DevOpsは、ソフトウェア業界ですぐに流行りのバズワードとなり、
多くの開発者やITアドミニストレーター達が快く思わないことを促進させました:コラボレーションです。Wikipediaによると、「DevOpsはソフトウェア開発、品質保証、IT運用は相互に依存していることを認める」

とあります。こういった技術部門の3本の柱を協力して組み合わせることで、業務の効率化によりソフトウェア製品およびサービスを
高品質基準で生み出すことが可能になります。この記事では、いかにしてIT運用が顧客エクスペリエンスを引き締め、
開発担当エンジニアがコード変更をせずに、実運用環境での問題を分離して
ソフトウェア開発をアシストできるのか再確認することができます。AppDynamicsのアプリケーション・インテリジェンス・プラットフォームを使用して、
どのようにこういったシナジーがお客様により良い製品をお届けできるのか説明します。

ウェブ・パフォーマンス – かつてないほどに重要
ウェブ開発者の間でよく言われる言葉があります:パフォーマンスとは機能だ。技術的に精通している方にはシンプルで分かりやすい事ですが、
平均的なビジネス分析家にとっては真実味がない言葉なのです。このフレーズを裏付ける数字を以下に示します:
Googleは、0.5秒遅いページではトラフィックが20%低下することに気づきました – Marissa Mayer 氏、Google IO 2008 Keynote
Amazonは、ページの読み込みが1秒遅れると毎年売上において1.6億円の損害が出ることに気づきました。- Fast Company
あなたの確定拠出型年金(401k)を支払う民間企業、またはあなたが信頼するミューチュアル·ファンドのポートフォリオからの数字と詳細で、
慎重に活動していることが分かります。Googleはページのパフォーマンスを重要視しており、page rankのコンポーネントとしてパフォーマンスを追加しました。
アルゴリズム。
皮肉にも、Googleの分析およびウェブマスターツールは、ページ速度に対する洞察をそれほど多くは提供してくれません。デフォルトのダッシュボードには「ページ/セッション」の数字がに表示されますが、
個々のページ速度に関する表示はありません。

図1 – Google分析ダッシュボード
Googleのウェブマスター・ツールは、あなたのサイトからコンテンツを要求された際に、Googleウェブ・クローラーが何を経験するのかを示すグラフを用いて、
ページのパフォーマンスに関するいくつかの洞察を提供します。どのページの動作が遅いのか、
またはリクエスト中に進行しているその他のイベントで動作が遅いものが不明瞭な場合:

図2 – Googleウェブマスター・ツール – Crawl Stats
より良いパフォーマンス計測のためには、アプリケーション動作内部への洞察を持つものが必要です。もし
Microsoft Azureのようなホスティング・プロバイダー側になれたら、オンラインAzureポータルを通して、
プロセッサやメモリの使用率に関する情報を参照することができます:

図3 – Microsoft Azureパフォーマンス・レポーティング
良かった、CPUに負荷がかかっている場合、メモリが重くなっている場合に発生するアラートを追加できます。次のメトリクスに基づいて、
自動でウェブ・アプリケーションを拡張できるように機能を組み合わせることも可能です:

図4 – Microsoft Azureウェブ・アプリ・スケーリング設定
再度言いますが、その言葉は忘れかけていた事を呼び起こしてくれました:顧客たちは良い経験をできているのだろうか?ページへのリクエストは
適切な応答となっていますか?IT運用担当の方々が真剣に取り組んでいるサーバーの正常性だけモニターすることができます。サーバーへの負荷は、
閲覧者の増加によるものですか?または、ソフトウェア・エンジニアによる調整不足が原因なのですか?

完全な画像を取得しましょう。
組織にとってアプリケーションの完全な画像、またはアプリケーションの全体的なビューを入手することがミッションクリティカルな場合、
AppDynamicsのアプリケーション・インテリジェンス・プラットフォームのような、アプリケーションのプラットフォームのモニターに専念する必要があります。このアプリケーション・モニタリング・プラットフォームは、
以前取り上げられた、稼働させるためにアプリケーションのソースコードを変更する必要がない別のツールに
類似しています。この記事で取り上げられている機能の全てがコードラインを変更することなく利用することができます。購入してすぐに
ご利用いただけます。
ホスト全体、またはアプリケーションへの1つのリクエストに関する情報でさえ露出するこれまでの例とは違い、
アプリケーション・インテリジェンスはインタラクションを完全なビジネストランザクションとして計測します。この計測のきめ細かさにより、
明瞭なシステムのダッシュボードでプラットフォーム全体に渡る各インタラクションの影響をレビューすることができます。

図5 – AppDynamicsダッシュボード
このダッシュボードでは、迅速にアプリケーションの平均応答時間をレビューでき、さらに実運用環境にあるサーバー内で、
遅延を起こしているいかなる運用の要素も赤くハイライトされるため、すぐにレビューすることができます。このアプリケーションの完全な説明により、
IT運用者は即座に標準サーバーのパフォーマンスを特定し、
アプリケーション内の顧客の経験の始まりを示すことが可能になります。
なぜ、いくつかのサービスが遅延しているとして特定され赤色にハイライトで表示されているのですか?このツールがもたらす利点として、
アプリケーションに対する顧客エクスペリエンスのベースラインを自動で計算して、それに対して計測を行うという点があります。この動的に計算されたベースラインは、
顧客が訪問するたびに同様の経験をするという検証をする上で鍵となります。
アプリケーションが標準のパラメーターを外れて作動しているとオペレーターが気づいた場合、このダッシュボードから調査を開始することができます。
このビューにより、特定のトランザクションへドリルダウンを行い、プラットフォーム全体からそのデータがどのように外れているのか確認することができます:

図6 – プラットフォーム全体を通してのトランザクションのデータフロー
このレベルでトランザクションを参照する場合、完了するまで16秒以上を要する 右下にあるPaymentWSノード からのADO.NETトランザクションで、
データベースとのインタラクションにおける大幅な遅延を簡単に確認できるようになります。オペレーター達はPaymentsWSノード上の
「ドリルダウン」インジケーターをクリックでき、より詳細にインタラクションをレビューすることができます:

図7 – SQLデータベースのチェックアウトのインタラクション詳細
接続をオープンするステップにほぼ5秒かかっており、ExecuteNonQueryのコールでは5秒以上かかっているという2つの事を
このビューで確認することができます。次の分析可能なポイントは、
このツールで最も興味深い点です:正確なSQLステートメントを検査することができます:

図8 – SQLコードのレビュー
これが実に興味深い点なのです:今ではデータベース・アドミニストレーターと一緒に、コードに対して実際にアクションを行うことができます。このクエリのパフォーマンス、
そして、それがプラットフォーム内でどのように使用されるかという具体的なメトリクスを保有しています。この点において、開発者およびデータベース・アドミニストレーターはアプリケーションのパフォーマンスを改善するために、
このクエリを最適化するか、またはデータベースのインデックスを最適化するか決定することができます。
さらに、クレジットカード処理の「visa.com」に対するHTTPコールのパフォーマンスも確認することができます。 (注意:これは架空のアドレスでVISAと関連するものではありません。
例示目的でのみ記載されているものです)「MovieProcessingRole Drill Down」ボタンをクリックすると、
HTTPコールにおよぶ完全なスタックのトレースを行います:

図9 – HTTPコール向けのコールスタック
UploadValuesおよびServiceBusの送信で遅延が生じていることを明確に確認することができます。UploadValuesコールの検査は、
データをアップロードするためのHTTPコールへも反映されます:

図10 – HTTPトラフィックの調査
現在、シンクロナスHTTPのトランザクション処理がほぼ3秒遅れているという明瞭な画像を持っています。
この情報により、ネットワークのインタラクションへの影響を最小にするために、アーキテクチャを変更するアクションを行うかどうか決定することができます。

リアル・ビジネス指標
顧客経験が最適化されモニターされてからは、IT運用チームはメモリやプロセッサの使用率が正常なメトリクスで、
サーバーが正常に実行している事を容易に知ることができます。しかしながら、アプリケーションから収集したいメトリクスや測定値に関しては、
まだ終わりではありません。
本当のビジネスのメトリクスは、コストや収益の循環をケアします。多くのビジネスに焦点を合わせたアプリケーションはアプリケーションの販売数や使用状況を表示するために、
既にバックオフィス・アプリケーションで利用できるレポートを持っています。しかし、標準的なセールスレポートにすぐには表示されないような、
その他の失われた機会に関してはどうでしょうか?「購入」ボタンをクリックしなかった、
または期待通りにアプリケーションを使用しなかったアプリケーションへの訪問者の分析に関してはどうでしょう?
アプリケーションのビジネスサイドを構築しているマーケティングおよびセールスグループにとってこれらの追加的なメトリクスは必要ですが、
掘り出しを行うのは難しいことです。どのアクションがアプリケーションに取り入れられていないか、どのように追跡するのですか?Googleアナリティクスのビジター・フロー機能を使って
こういった情報を確認することができます:

図11 – Googleアナリティクスのビジター・フローによる国別の初期分析
それは興味深い開始点を与えてくれますが、さらに良くすることができます。AppDynamicsには、
こういったカスタムメトリクスのタイプを正確に収集できるように設計された機能があります。一般的なビジネスユーザーは、ソースコードへドリルダウンをしたがらず、
ビジネス意思決定のためにデータを抽出するデータベースがどこにあるのかも把握していません。彼らは一般的に、検索している重要なメトリクスを実証する
クイック・ビュー・ダッシュボードを探しています。たとえば、セールスグループが収益のキャプチャに極めて重点をおいている場合、
家電小売業者へに最適なダッシュボードは次のようになります:

図 12 – カスタムメトリックスに基づいたダッシュボードにフォーカスした収益
一見良く見えますが、営業員が素早くまとめられたような感じがしません。開発者の友人の力を少し借りるだけで、
プロセスに収益カスタムメトリックスを追加することが出来、追跡したり提示したりすることができます。カスタムメトリックスは、あらゆるパブリックメソッドから読み込むことが出来ます。
あなたのコードを呼び出し、値を傍受、録音しますが、更にWindowsイベントログメトリックスを加える必要がありません:

図 13 – カスタマーが「チェックアウト」する度にカスタムメトリックスを作成します。
この値はすでに収集されているので、私たちのアプリケーションに対する訪問者について既に収集された他のメトリックスに対し、マッピングすることができます。 この場合、私たちは
カスタマーにチャージされている合計金額とカスタマーが支払いをしている通貨を収集しています。
時間に対して、取引に関し収集された追加情報と共に、他の既知の訪問者に関するメトリックスを使い、私たちは
興味深いトレンドが発展しているのを観察し始めることができます。ダッシュボードの右下角に、曲面テレビが
フラットスクリーンテレビに対し2倍の売上を示していることに気付くでしょう。 ウェブサイトのレイアウトを変えて、旧型の
在庫のフラットスクリーンテレビを販売促進させるとともに、曲面スクリーンテレビを発注するタイミングが来たようです。

概要
DevOpsは、2015年の新たな果敢なる世界です。私たちは協働し運用する独自の開発チームを作る必要があり、
私たちのウェブアプリ生産のスムーズな運営を保証しなければなりません。しかし、私たちの経験からするとスムーズな運営と高利益事業は
開発と運用だけの問題ではありません。AppDynamicsのような高度システムマネジメントツールを使用して、ビジネスアナリストは
アプリのビジネスパフォーマンスを改善するために適切な決定を下す際に必要なメトリックスを手に入れることが出来ます。一日の終わりに、ポテトチップスがテーブルの上に置いてあったとしたら、
問題のアプリを稼働させる時間ではなく、ウェブアプリ上で投資に戻るべきなのです。
高度なメトリックスとアナリティクスは2015年、ビジネス目標を達成する為の標準ツールになるでしょう。
高度メトリックスをご自身でお試しになられたいですか?今すぐAppDynamicsの無料お試しをチェックしてみてください!