Slide 1

Slide 1 text

SREの理念と原則 デベロッパーアドボケイト 山口能迪 (@ymotongpoo) SREの「人間的」側面 Sep 9th, 2021 SRE Gaps「理論と実践からSREを再考する」

Slide 2

Slide 2 text

⼭⼝ 能迪 (ymotongpoo) 職種: デベロッパーアドボケイト 担当: オブザーバビリティ、 SRE、Go 製品: Cloud Operations suite全般 OpenTelemetry Monitoring Logging Trace Profiler Error Reporting Debugger @ymotongpoo @ymotongpoo

Slide 3

Slide 3 text

「SREの探求」が出版されました 編纂: David N. Blank-Edelman 翻訳: 渡邉 了介 監訳: 山口 能迪 発刊: オライリージャパン 632ページ、全33章 定価5,060円 2021年9月3日 発刊

Slide 4

Slide 4 text

今⽇は細かな技術の話はしません

Slide 5

Slide 5 text

SREとは何をするものか SREはシステムの信頼性を確保するためのシステム開発運⽤⽅法論 =システムの信頼性を揺るがすものを排除‧軽減する

Slide 6

Slide 6 text

何がシステムの信頼性を揺るがすのか 変化や不確実性が信頼性を下げる システム ユーザー 外部環境 開発者・運用者

Slide 7

Slide 7 text

何がシステムの信頼性を揺るがすのか ⼈間は不確実 システム ユーザー 外部環境 開発者・運用者

Slide 8

Slide 8 text

SREとは何をするものか SREはシステムの信頼性を確保するためのシステム開発運⽤⽅法論 =システムの信頼性を揺るがすものを排除‧軽減する たとえば極力「人間に依存しないようにする」

Slide 9

Slide 9 text

SREとは何をするものか ヒロイズムを取り除く "Hope is not a strategy" ‒ Google SREの⾮公式モットー

Slide 10

Slide 10 text

⼈間に依存しないためにどうするか 「⼈間」の何に依存しているのかを考える ● ⼿作業 ● 意思決定

Slide 11

Slide 11 text

⼈間に依存しないためにどうするか 「⼈間」の何に依存しているのかを考える ● ⼿作業 ソフトウェアの問題として解決する ● 意思決定 客観的なルールに基づかせる

Slide 12

Slide 12 text

ソフトウェアの問題として解決する ⼈間に依存しないためにソフトウェアの問題として解決する ● 再現性が高い ● スケールする ● 自動化できる ● 抽象化できる etc…

Slide 13

Slide 13 text

ソフトウェアの問題として解決する ⼈間に依存しないためにソフトウェアの問題として解決する ● トイルの削減 ● ⾃動化

Slide 14

Slide 14 text

ソフトウェアの問題として解決する ‒ トイルの削減 ソフトウェアはもっとも⾝近にある作業代⾏者 ● コンピューターは同じ作業を再現性⾼く繰り返し⾏うのが得意 ● スケールさせることが容易 S: 5章 W: 6章

Slide 15

Slide 15 text

ソフトウェアの問題として解決する ‒ ⾃動化 作業をソフトウェア化すれば⼀歩進めて⾃動化できる ● 継続的インテグレーション ● アラート ● データパイプライン∕バッチ S: 5, 8, 24, 25章

Slide 16

Slide 16 text

共通ルールに押し出す ⼈間に依存しないために数値化や⽂書化された基準で判断する ● 客観性が高い ● 予測が立てやすい etc… ● 再現性が高まる ● 判断が早まる ● 継続的に改善できる etc…

Slide 17

Slide 17 text

共通ルールに押し出す ⼈間に依存しないために数値化や⽂書化された基準で判断する ● SLIとSLO ● エラーバジェット ● インシデント管理 ● 運⽤⼿順書(プレイブック/ランブック)

Slide 18

Slide 18 text

共通ルール ‒ SLIとSLO / エラーバジェット 客観的に注⼒すべき⾏動を判断するための指標と閾値 各コンポーネントの「信頼性」に基づいた指標の策定がポイント ● SLO範囲内 新規開発、トイルの削減 ● SLO違反 システムの安定化 エラーバジェット(予算)によって投資とリスクのバランスを数値化 S: 3, 4章 W: 2, 3, 5章

Slide 19

Slide 19 text

共通ルール ‒ インシデント管理 インシデントに関わる⼈間が⾃律的に動けるようにする ● インシデント指揮者: インシデントの解消をするまでのプロジェク トマネージャー ● 実⾏作業者: インシデントの実対応者 ● コミュニケーション担当者: 外部とのやりとりを担う ● 計画担当者: 上記担当者が担わない記録やファシリティを⾏う S: 12, 13, 14章 W: 9章

Slide 20

Slide 20 text

共通ルール ‒ 運⽤⼿順書(プレイブック/ランブック) 誰が⾏っても対応できるように⼿順書を⽤意する ● 開発者や運⽤者の知識の共有 ● ⾃動化のための指針‧設計書 ● コミュニケーションスキルの向上 W: 8章

Slide 21

Slide 21 text

しかし前提が必要

Slide 22

Slide 22 text

⼈間がパフォーマンスを最⼤限に発揮できるようにする ⼈間がパフォーマンスを最⼤限に発揮できる環境が必要 ● 体力面 ● 精神面 両方において必要

Slide 23

Slide 23 text

体⼒⾯ ⼈間的な⽣活を送れるように、そうでない場合はそれに報いるように ● アラート∕オンコール戦略 S: 10, 11, 28, 29章 W: 5章

Slide 24

Slide 24 text

精神⾯ 障害の復旧やその改善を⾏うのは⼈間が最善の改善策を出せるような奇 譚なき意⾒を⾔える環境づくり ● ⾮難なきポストモーテム S: 10, 11, 29章 W: 5, 10章

Slide 25

Slide 25 text

まとめ

Slide 26

Slide 26 text

今⽇話さなかったこと SREのより技術的な側⾯や複雑な組織論 ● モニタリング戦略‧設計、モニタリングインフラ ● 各種冗⻑化インフラの設計‧構築 ● リリース戦略‧CI/CDパイプライン ● テスト戦略、テストインフラ ● セキュリティ ● 組織論 etc…

Slide 27

Slide 27 text

「⼈間の不確実性」を下げる活動が多くある ● ⼈間の不確実性を避けるために、ソフトウェアやルールで解決 ● ⼈間の確実性を上げるために、最⼤限パフォーマンスが発揮できる ように すべては「信頼性」のため

Slide 28

Slide 28 text

SREの探求 ● 様々な組織のSREの実践に至る苦労が赤 裸々に語られている ● こういった話が広く共有されてほしい

Slide 29

Slide 29 text

SRE関連書籍(和書) Google著 各社

Slide 30

Slide 30 text

GoogleのSRE関連ウェブサイト sre.google ● SRE関連書籍(英語版)の無料公開 ● 各種SRE関連記事 ● 各種ワークショップ資料 cloud.google.com/blog/ja/products/devops-sre ● Google CloudのDevOps/SRE関連のブログポストの⽇本語訳