技術ブログ
技術ブログ
2017年03月17日
このエントリーをはてなブックマークに追加

アジャイル開発(CI/CD)におけるNew Relicの活用

アジャイル開発では1週間のうちに何度もリリースを行います。リリース頻度は年々高まる傾向にあり、先端のデジタルビジネスでは一日に何度もリリースが行われています。

リリースを継続的に行うメリットは、

  1. 開発中も常に動く状態のアプリケーションが参照できること
  2. 変更箇所を他の開発者もすぐ取り込むことが出来ること
  3. 変更に伴う例外発生にすぐに気がつけること
  4. マネージャや顧客が常に進捗を確認できること

などなど

ウォータフォール開発はテストも大変ですし、問題が発生した際、どの箇所に問題があるかの範囲を調べることが大変です。バグの修正に掛かる時間の大半を占めるはバグの調査時間になります。数日かかって調査したバグが、1行のコード修正で終わってしまうこともよくあります。

細かく継続的にリリースをすることで、問題が発生した場合にそのコミットの中に不正なコードがあったと気がつくことが出来ます。1つのコミットは特定の機能や修正の変更に限定されたものなので、調査範囲はその範囲で済むことになります。そして何よりもブランチの期間が短くなり、ブランチ作業中にマスターから他のブランチが作成されるケースも少なくなり、マージに伴う不整合や調整作業を極力少なくすることができます。

New Relic APMをアジャイル開発における結合テストツールとして活用することで、リリース時のサービス影響やルートコーズ分析を迅速化および省力化でき、リリース頻度をさらに高めることができるようになります。

何らかの問題が発生すると開発担当者が変更したコードから吐かれるログ全般を調査しバグの特定を行うことが一般的ですが、New Relic APMを活用することで、これまでログ分析に頼っていたバグの調査が、リアルタイムなメトリクス監視で可能となります。新しくリリースされたコードに起因する影響をリアルタイムに検知し、そのルートコーズを即座にアプリケーションのコード・レベルまでドリルダウンし、バグの箇所が迅速に特定できるようになります。これにより、開発担当者はトラブルシューティングに費やすログの調査時間が削減され、コード開発に専念できるようになります。開発時のログ設計やそれに伴うコードも簡素化できます。

Stack Trace

Stack Trace:トランザクションの何処にボトルネックがあるかが可視化され、コードレベルまで即座にドリルダウン可能

またこれまでは、テスト、ステージング、プロダクションといった各工程で、それぞれ異なるテストツールや分析ツールが使われる傾向にありました。New Relic APMを各工程共通のツールとして活用することで一貫した性能分析が可能となり、開発、QA、運用といった各工程の担当者間における情報の共有化と相互理解が進み、それぞれでの重複した作業も削減でき、開発作業の効率化が図れます。

さらにNew Relic BROWSER / MOBILE / SYNTHETICSを活用すると、顧客体験への影響をリアルタイムに把握することも可能になります。リリース時のサービス影響やルートコーズ分析のリアルタイム化と担当者間における情報の共有化および相互理解が進むことで、顧客への影響が顕在化する前にロールバック等の対処が可能となり、プロダクション環境を用いたA/Bテストやカナリー・デプロイメント等の展開も効率化できます。ユーザ行動分析に基づく試行錯誤的なアプリ変更の重要性が増してきていますが、リリース時の顧客体験への影響が即座に把握できるようになることで、より迅速で適確な対応が可能となります。サーバサイドだけでなくフロントエンドアプリを含めた包括的な性能分析が可能となり、迅速なトラブルシューティングだけでなく、どこにボトルネックがあるかが可視化されることで、アプリケーションコードの最適化が図れ、顧客体験を向上させることができるようになります。

このエントリーをはてなブックマークに追加

この記事を書いた人

HironoriIchiki
HironoriIchiki 社内フリーランスとして組織横断的にあれこれ活動中!

PROプランのすべての機能を
30日間無料でお試し

新規無料登録いただくとPROプランのすべての機能を
30日間無料でお試しいただけます。
クレジットカードなど決済情報の登録は不要です。

各プランの詳細はこちらからご確認ください。