Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
SREに入門しよう 株式会社ユニクエスト 長谷川広樹 github.com/hiroki-it @Hiroki__IT
Slide 2
Slide 2 text
自己紹介 ▼ お仕事 最近:クラウドインフラ、IaC、CICD、... 以前:DDD ▼ 関心のある技術領域 ・クラウドインフラ ・IaC ・DDD github.com/hiroki-it @Hiroki__IT 長谷川 広樹 (はせがわ ひろき) 株式会社ユニクエスト
Slide 3
Slide 3 text
目次 ■ SREとは ■ (僕が思う)SREに必要な思想と技術 ■ Goによる厳格なルールに基づいた基盤実装 ■ モニタリング ■ オンコールとインシデント対応 ■ SLI/SLO ■ エラーバジェット ■ ポストモーテム ■ まとめ ■ カンファレンス
Slide 4
Slide 4 text
SREとは SRE:Site Reliability Engineering(サイト信頼性エンジニアリング) Googleによって提唱されたシステム運用や自動化に関連する開発 Site Reliability Engineering by Betsy Beyer, Chris Jones, Niall Richard Murphy, Jennifer Petoff
Slide 5
Slide 5 text
SREとは SREは何をすればよいのか...?
Slide 6
Slide 6 text
(僕が思う)SREに必要な思想と技術 ■ 稼働し続けられるシステム作り ・Goによる厳格なルールに基づいた基盤実装 ・モニタリング ・オンコールとインシデント対応 ・SLI/SLO ・エラーバジェット ・ポストモーテム ・クラウドインフラによるマネージドなインフラ(今回は割愛) ・セキュリティ(今回は割愛) ・Production Readiness Review(※マイクロサービスで使用されるルールのため割愛),など... ■ スケーラブルなアプリケーション開発を生み出す環境作り ・マイクロサービス,Kubernetes,CI/CD,IaC,トイル撲滅,など...(※今回は割愛)
Slide 7
Slide 7 text
Goによる厳格なルールに基づいた基盤実装(1) ■ Goのメリット ・データ型の扱いに非常に厳しく,開発時にバグを検出可能. ・ブラックボックスになりにくく,可読性が高い. ・処理速度が速い. ・同期処理と並列処理を簡単に書き分けられる(※非同期処理との違いに注意). ・他の静的型付け言語(Java,C)よりも学習コストが低い. など... 堅牢なバックエンドを実装できる(例:決済系など)
Slide 8
Slide 8 text
Goによる厳格なルールに基づいた基盤実装(2) Goの導入を実現させる! 一緒にGoに挑戦していきましょう! 僕一人だと力に限界があります(切実)! 知見を共有し合って,お互い爆速成長したい! 僕も勉強中なので,知見共有させていただきます! 僕のリポジトリ:https://github.com/hiroki-it/notify-slack-of-amplify-events
Slide 9
Slide 9 text
モニタリング ■ モニタリングすべき4大シグナル ・レイテンシー(リクエスト到達まで+処理終了からレスポンス到達まで) ・トラフィック(とあるネットワーク地点でのスループット) ・明示的エラーと暗黙的エラー (400/500系異常レス + 後述するSLO未達やAPI仕様不一致の正常レス) ・サチュレーション(システムの利用率の飽和度.「サチる」はよく使う) 4大シグナルは注視しよう!(自戒)
Slide 10
Slide 10 text
オンコールとインシデント対応 ■ オンコールとインシデント対応とは 何らかのインシデントをチャンネルに通知するようにし,通知を受けて対応すること. 当番制にしている会社もある. ■ インシデントとは エラーを含むシステム的に良くない事象のこと. 参考:https://backlog.com/ja/blog/on-call-system-for-backlog-developers/ 明示的エラーと暗黙的エラーのオンコールは必須!
Slide 11
Slide 11 text
SLI/SLO(1) ■ SLIとは:Service Level Indicator サービスレベルの指標とするメトリクスのこと. ・サーバ稼働率 ・データベース稼働率 ・レイテンシー ・レスポンスタイム ・レスポンスのステータスコード率
Slide 12
Slide 12 text
SLI/SLO(2) ■ SLOとは:Service Level Objective SLIとして採用した指標の目標値のこと. ・サーバ稼働率(日当たり0.1%のダウンタイム発生) ・データベース稼働率(日当たり0.1%のダウンタイム発生) ・レイテンシー(日当たり0.1%までのレイテンシー増加) ・レスポンスタイム(日当たり0.1%までのレスポンスタイム増加) ・レスポンスのステータスコード率(日当たり99.9%の200レス)
Slide 13
Slide 13 text
エラーバジェット ■ エラーバジェットとは ・前述したSLI/SLOを決めたうえで設定. ・年間や月間のエラーやダウンタイムがSLOに達するまでは, これらが起こることを許容できる. 参考:https://www.redhat.com/ja/topics/devops/what-is-sre ダウンタイムをどの程度発生させてよいかの目安になる. ビジネスより技術を優先するときの意思決定が早くなる.
Slide 14
Slide 14 text
ポストモーテム ■ ポストモーテムとは 障害報告書とは異なり,原因特定とシステム改善に重きを置いた報告書のこと. (タイトル・日付・担当・原因と対応・システム的/収益的な影響・幸運だったこと・仕組みの改善策・タイムライン) ■ 留意すること ・作成に当たり,担当者を絶対に責めない.障害は誰のせいでもない. (★最重要であり,必ず守ること) ・対策は「以後は注意する」ではなく,再発しない仕組み作りになるように. ・多くの人に情報を共有すること. 参考:https://qiita.com/an_sony/items/0565ad980f9097c76d11 エンジニアリングの心理的安全性を高めて挑戦しよう!
Slide 15
Slide 15 text
まとめ 今すぐ使えそうなSRE用語は どんどん使って SREチームさらにはシステム課全体の 共通言語にしていきましょう! (「サチる」はすぐに使えます)
Slide 16
Slide 16 text
カンファレンス ■ SRE Lounge:https://sre-lounge.connpass.com/ ■ SRE NEXT:https://sre-next.dev/
Slide 17
Slide 17 text
最後に 改めてGopherくん 超かわいい!!! by Takuya Ueda (https://twitter.com/tenntenn) The Gopher character is based on the Go mascot designed by Renée French.