これからのエンジニアに「オブザーバビリティ」が必要な理由とは
現在、エンジニアに求められる"旬"のスキルとしては、DevOpsやマイクロサービス、AIツールなどがあり、それは時代とともに移り変わっていく。一方、それらを支えるための「全体を俯瞰する力」や「ビジネス思考」「コミュニケーション」などの基盤スキルは、AIでの代替が難しく、いつの時代にも求められる普遍的なスキルといえるだろう。そして、山田氏は「その間にある『オブザーバビリティ』こそ、今後求められるキースキルとなる」と語る。
「オブザーバビリティ」とは、比較的新しい用語であり、山田氏もIT分野で耳にしたのは3〜4年前だという。「可観測性」などとも訳され、元々は制御工学などで使われる用語であり、「外部出力によって複雑なシステムの内部状態を理解できること」を表す。つまり、複雑化・巨大化していくソフトウェアを中心としたシステムの中身をしっかり見ようという技術なわけだ。
これまで「監視」「モニタリング」などと対比して語られることが多いが、「旧来の監視」がインフラの運用担当者によってなされるのに対し、「オブザーバビリティ」は内部の行動やアプリケーションの動きも含めて見る必要があるため、開発者も意識する必要がある。
山田氏は、車のダッシュボードの例を出し、「『旧来の監視』は固定の数値を見るメーターのようなもの。ある程度レッドゾーンが示されており、その要因が何かを判断し対策する部分は人が行なう。『オブザーバビリティ』とは、見るところを柔軟に選べ、何か起きたら問題の所在や対策まで示される」と解説する。しかし、だからといってなぜ、オブザーバビリティがこれからのエンジニアにとって必須スキルなのか。
山田氏は「オブザーバビリティ」が重要スキルとして目される理由として、「マイクロサービスアーキテクチャのメリットとデメリットが背景にある」と語る。つまり、マイクロサービスアーキテクチャはもはや開発エンジニアにとって不可避の技術であり、激しく変化するビジネスニーズに対応するためにも拡張性や柔軟性などのメリットは魅力的だ。一方、複雑になり過ぎるために、何か起きた際には原因の究明がしにくいなど、トラブルシュートが難しいデメリットもある。
その複雑さは、まさにスターウォーズに出てくる「デス・スターアーキテクチャ」などとも呼ばれており、ネットフリックスやツイッターなどのシステムも、かつてマイクロサービスを基盤にしながら複雑化した過去がある。つまり、この複雑性をカバーするのが、オブザーバビリティだという。
正確に言えば、オブザーバビリティの機能の一つであるAPM(アプリケーションパフォーマンスモニタリング)だが、広い意味ではオブザーバビリティがマイクロサービスのデメリットをカバーできるといえるだろう。つまり、複雑なマイクロサービスの依存関係を正しく可視化し、その中でどんなリクエストがどう処理されたのかを追跡してくれるわけだ。