HOME > 活動報告 > イベント報告 > JaSST'22 Niigata
2022年7月8日(金) 於 オンサイト開催(新潟県新潟市)+オンライン開催
当イベントは2年ぶりのオンサイトとオンラインによるハイブリッド開催となった。
久しぶりの対面での交流を期待して筆者は現地に赴き、人生初である新潟の地を踏んだが、当日の新潟は東京や大阪と変わらない気温で、初夏の日差しは思った以上に強かった。
オンサイト会場のNINNO(ニーノ)は「新潟+イノベーション」の拠点として名付けられた施設である。外光を取り入れた空間の明るさや横長の大型スクリーンが特徴的で、当イベントも奥行きを取らずに座席を設置しており、参加者はどの位置でもモニタが見やすいよう考慮されていた。
今回のテーマ「可観測性・Observability」の説明があった。
ライフサイクルの複雑性が増している中、運用と監視の視点が抜けていると感じたことが、テーマの発端になっている。
講演の概要は以下の通りである。
Observability(オブザーバビリティ/可観測性)は、Observe:観察する+Ability:~できること、から来ている。
元々は機械の制御理論において使われていた。
ソフトウェアにおいては、システムの振る舞いや内部の把握、またはそれらを高めるための取り組みもオブザーバビリティと呼ばれることがある。
この5年で急激に使われるようになった概念である。
「監視」・・・システムが外からみてどうか。コンポーネントやイントラネットに着目。
「オブザーバビリティ」・・・アプリケーションサーバの中身やソフトウェア、振る舞い、データベースの状態といったシステムの内部の把握
"オブザーバビリティが高い" とは?
監視は既知の状況に対処する(監視はオブザーバビリティを高めるための手段でもある)。
オブザーバビリティは未知の状況に対応できる。
そして、この2つは対立するものではない。
マイクロサービスの普及やコンポーネントの増加により問題が発生するパターンが増え、監視の追加による対応では難しくなってきた背景がある。
ネットワークにおいてもサービスメッシュなど仮想化・抽象化され、監視には厳しい状況になっている。
マルチテナント化やユーザができることの多様化が複雑なアクセスパターンを発生させている。
どういったコンポーネントがマイクロサービスをどう通りレスポンスが返されるか、"点"ではなく"線"で見ないとわからない。
ビジネス上の価値の高さで軸足が変わってくる。
オブザーバビリティの「3つの柱」について
未知の問題に必要な情報は何かを念頭に考える。
「Observability-driven development」
テスタビリティを実現する要素としてオブザーバビリティがある。
これはシステムの品質を高めるために欠かせない要素である。
恥ずかしながら講演を聞くまでは知らない概念だったが、今後の開発においての重要性を認識することができた。
QAとして今後の要件や設計レビューに、オブザーバビリティの「3つの柱」の視点を盛り込むなど、引き続き理解を深めていきたい。
freee社で行われた全社障害訓練の話である。
これは年1回10月に行われており、2021年の実施が大きな話題となった。
障害訓練は以下のシナリオで行われた。
上記はすべて人間としての問題行動である。
結果、期待していた観測事象は訓練の時間内には間に合わなかった。
センサーをたくさん配置しても有効活用できておらず、オブザーバビリティのためには、まず人間を鍛えなくてはならないという結論になった。
全社訓練の前に、もっと地道な取り組みが必要である。
小規模な組織における問題解決を誰でもできるよう、いわゆるソフトウェア開発のユニットテストと同じことが人間の組織にも必要なのではないか。
部門単位でできている前提でそれらを統合し、そこで全社的な問題が出ないかを確認するのが正しいステップではないか。
さらに訓練に際しては以下のポイントを考慮する。
ただ氏も話されていたが、セキュリティの全社訓練の考察がテストのカルチャーと共通する点が興味深かった。
人間を鍛えるためには、訓練と意識付けを組織的な理解を得ながら継続していく必要性を感じた。
講演の最初に、オブザーバル(可観測量/観測可能量)をスイカに例える説明があった。
スイカを叩くと時間の経過(スイカの水分量の変化)で音が変わる。この音からスイカの食べ頃を知ることができるが、この"どうやったら中身を知ることができるのか"がオブザーバビリティなのではないか。
本発表で話したいことは、オブザーバビリティの一歩前に立ち戻ることが、逆にオブザーバビリティを開発全体で進めることであり、それによりQAは安心領域ができる、ということである。
私たちが知らない動作が起こりうる、ということに対して明らかにしていくことがオブザーバビリティである。
QAとSREは結託して役割分担していかなければならない。
プロダクトが複雑化すると組織も人の観点でも複雑化する。いわゆる「認知負荷」が起きる。
プロダクトが増えていき、各プロダクトにそれぞれSREがいるような複雑な体制になると、役割を決めて監視しないと大変なことになるようなインシデントも発生してくる。
SREが監視に追われる状態になり、5プロダクトにもなると認知負荷の限界を迎えることになる。
認知負荷の高まらない構造を取っていくこと(例えばマイクロサービスアーキテクチャ化)が理想である。
性能改善はしているが、性能ネックが特定のデータ量に依存している問題があった。
これはすぐ直せないため、観測するところから始めることになったが、SRE側は何を検知してよいか、どういうタイミングか、誰に、いったところで揉めた。
監視体制としてSREとQAは互いの押し付けあいに問題があり、それらを考慮して最初から監視できていれば簡単な話だった。
認知負荷が増えていくプロダクトの実装環境において、どのような体制が最も認知負荷を抑制するのか。どれが開発効率を上げ、どれが顧客に価値を与えるのかを考えることが重要である。
これらを踏まえ、検知できるようにネックになりそうなAPIや処理に閾値を設定した。
上記はシンプルな話だが、以下の3つがないと実現できない。
オブザーバビリティを1プロダクトの話ではなく「認知負荷」というワードを用いて、組織的に考えなければいけない問題として話している点で視野が広がった。
また、SREとQAの連携にあたっての具体的な数多くのヒントを得ることができた。
内容がそれぞれ異なる3講演であったが、共通点が幾つもあったように思う。
良いオブザーバビリティの実現には、役割を越境したコミュニケーションや、プロダクト単位から組織的活動へといった、スコープを拡げて考える必要がありそうである。
今後さらに複雑化するプロダクトへの準備として、良い事例と知見を頂けた。
本シンポジウムは例年よりテーマを絞ったチャレンジングなものであったが、その分、満足度が高く、今後のJaSSTのテーマ選定にも参考になりそうである。
記:堀川 透陽 (ASTER)