APMソフトがDevOpsツールになるワケ
AppDynamicsは、アプリケーションパフォーマンス管理(APM)ソフト「AppDynamics」を提供する企業だ。Wily Technology(現CA)出身のJyoti Bansalが2008年に設立した。米国、英国、フランス、ドイツに拠点を持ち、顧客は、Netflix、FOX News、コーネル大学、米連邦刑務局、Intuit、Staplesなど、ワールドワイドで850社超。国内でもネットサービスを展開する企業など、10数社に採用されている。
APMソフトという言葉からは、サービスの監視やパフォーマンスボトルネックの検出、Webアプリのトラブルシューティングなどを想像しがちだ。しかし、近年では、そうした利用よりも、ビジネスサービスをすばやく提供できるようにするためのツールとしての利用が広がっているという。背景にあるのは、企業内のシステム環境の複雑化し、DevとOpsがそれぞれの問題を把握できなくなったことだ。
「SOA(Service Oriented Architecture)やハイブリッドクラウドの採用、ウォーターフォール開発とアジャイル開発の混在、ビッグデータ分析を支える新技術の導入など、企業内の分散環境はさらに広がった。開発者と運用担当者がサービスのリリース状況を把握する以前に、システムの全体像がどうなっているかまったくわからないという状況だ。そんななか、全体を可視化しながら、サービスのリリースを自動化できるDevOps支援ツールとして利用されるようになった」(エイブラムス氏)
たとえば、ビデオ配信サービス最大手の事業者では、サービス提供基盤をAWS上のJava(AMI>ベース)で構築しており、JVM(Java仮想マシン)の数は1万5000を超える。また、複数の開発者チームが開発したサービスをAPIで緩やかに結びつけるSOAに基づいたアーキテクチャを採用する。AWS以外にもほかのホスティング環境とデータセンターを利用している。こうした複雑な分散環境で、AppDynamicsを使って、サービスリリースの自動検出や監視の自動化、ビジネストランザクションのアラートなどを処理している。
DevOpsツールと言うと、開発者がレシピや設定を行い、運用を自動化できるようにするツールを指すことが多い。だが、社内外のシステムを含めた大規模な環境を管理しようとすると、こうしたツールだけでは要件を満たせないケースがでてくるという。エイブラムス氏は、その課題としてまず、複雑なプロダクション(本番)環境を自動的に可視化し、問題を発見できるかという点を挙げる。
「テスト環境でテストして、問題がなかったらプロダクション環境にデプロイするといったアプローチでは対応できなくなっている。複雑化が進んだことでプロダクション環境とまったく同じテスト環境を作ることができないからだ。デプロイ後に発生する問題をテストでは発見できないのだ。そこで、プロダクション環境で問題を発見するというアプローチが重要になってきた」(同氏)
このことは、開発と運用の役割分担にもかかわってくる。そもそも開発と運用が同じ問題を把握できなけば、スムーズなコラボレーションはできない。複雑化した環境でDevOpsを実現していくためには、本番環境での問題をタイムリーに発見することが大前提になるということだ。そのうえで、エイブラムス氏は、AppDynamicsの最大の特徴がプロダクション環境で使うことを前提に設計された製品であることをアピールする。
「監視対象のサーバ(JVM、インスタンス)ごとにエージェントをインストールする方式だが、非常に軽く設計されている。一般的なAPMツールのエージェントが10%の負荷をかけるとしたら、AppDynamicsでは2%程度の負荷しかかからない。IBMやHP、CAなどが提供する"APM1.0"ツールとのいちばんの違いはそこだ。AppDynamicsはテスティングツールではない。実際に、Netfixをはじめ、顧客の80%近くはAppDynamicsをプロダクション環境だけで利用している」(同氏)