先月のContinuous Lifecycle Londonで、InforのクラウドアーキテクトであるLee Fox氏は、今日の複雑なシステムとインフラを理解するのに役立つツールと手法について語った(ビデオ、スライドのPDF)。Fox氏はソフトウェア考古学という分野と同様に、これをDevOps考古学と呼んでいる。その中心にある考えは、(アプリケーションやインフラの)コードを分析・視覚化し、プロダクションシステムの振る舞いや、(たいていの場合、もはやその組織で働いていない人によって)過去に下された判断の背景や理論的根拠を見抜くことだ。
今日の高度に相互接続されたシステムを掘り下げるのに役立つツールについて、Fox氏は様々なカテゴリに言及している。例えば、ネットワークスニッフィング(Charles Proxyなど)、モニタリング(Amazon CloudWatchなど)、ログ集約(ELK stackなど)、テストおよび監査・分析(AWS Trusted Advisorなど)といったものだ。どのツールを使うにせよ、与えられた疑問に対する答えを仮定し、実験を行い(コードの分析)、結果が仮説を裏付けるか否かを検証する、という科学的アプローチに従うことを彼は推奨する。
ツールの成果物は分析のための豊富なデータを提供するが、はっきりと視覚化することで、より明確になる場合もある。Fox氏は、コードベースの進化を視覚化するGource、Webサーバーのトラフィックを視覚化するLogstalgiaといったツールが、関連するイベントを明らかにするのにいかに有用かを強調した。こうしたイベントを掘り下げることで、「なぜ、この日にソースファイル数が急増したのだろうか?」「なぜ、仮想マシンのサイズがこうなったのだろうか?」といった疑問を提起することができる。
Logstalgiaのスクリーンショット
こうした分析を実行するため、あらゆるもの(コード、設定、スクリプトなど)をバージョン管理するのは基本だ。Fox氏は、コードを"digging"するための独立したブランチを作成し、開発による変更を定期的に統合することを妨げることなく、所定の実験を行うことを推奨する。
DevOps考古学をバリューストリーム活動に統合するという観点から、Fox氏はあらゆるエンゲージメントの開始時にこうした分析を実行することを強く推奨しているが、プロダクションシステムに関する継続的学習活動としても推奨する。Fox氏は、ツールを使うこと加えて、人とプロセスの面を検討する必要がある組織において、それはDevOpsの歴史を十分理解することにつながると話を締めくくった。それが、この分野における彼の次の冒険、「DevOps考古学」のフォーカスだ。
Rate this Article
- Editor Review
- Chief Editor Action