SREがより発展していくために
今回は「SREがより発展していくために」についてご紹介します。
関連ワード (ようこそSREの世界、特集・解説等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
前回の記事では、Site Reliability Engineering(SRE)におけるデータを測定する重要さ、データの種類と収集方法、システムの運用での活用についてお話しました。
本連載最終の今回は、SREが抱える悩みである「割り込みタスク」の管理方法、そして、SREがスケールしていくための実装パターンとSRE人材の育成について紹介します。
継続的な運用負荷
システムが稼働する状態を維持するための作業を、「SRE サイト リライアビリティ エンジニアリング」では、運用負荷と定義しています(※1)。運用負荷は、「ページ」「チケット」の2つがあり、ページはオンコールに当たります。チケットはシステムの利用者(顧客)の要求が関係するもので、即時対応が求められる場合もあります。
※1:「SRE サイトリライアビリティエンジニアリング」Chapter 29 – Dealing with Interrupts
運用負荷の内訳はこの2点に加え、前回の記事で紹介したトイル(労苦)も含まれます。これらの運用負荷は予測しづらいものであり、チームの作業を妨げる可能性があります。Google SREチームは、目標として「運用作業(トイル)を各SREの時間の50%未満に保つ」を掲げています。これは残りの50%を、将来に向けた「トイルの改善(ソフトウェアによる自動化など)」「サービス機能追加」に充てるためです。
運用負荷のような割り込みが、残りの50%に該当する生産的作業にどのような影響を与えるのか、どう向き合っていくべきかも同章にて言及されています。人間は、フロー状態(集中している)である時に創造的で積極的に仕事に向き合うことができますが、割り込みが発生するとフロー状態から脱してしまう可能性があります。そこで、目の前のタスクに長時間集中することができるよう、チームで割り込みを管理する方法について提案しています。
それは、ワークスタイルを二極化することです。例えば、複数のタスクをアサインされている場合は、作業時間の割合を「午前と午後」「日にち単位」で区切るなどが挙げられます。切り替えを最小限に抑えることで、対応すべきタスクに長時間集中することが可能になります。
また、割り込みのアサインについては、チーム全体に負荷を分散するのではなく、規則性を持った構成にすることが推奨されています。例えば、ローテーションで割り込みが可能なメンバーをアサインし、負荷を局所化します。割り込み対応メンバーの負荷軽減のためにも、ローテーションの間隔、引き継ぎの有無やそのルールの整備も必要です。