登録は簡単!. 無料です
または 登録 あなたのEメールアドレスで登録
SREの使命と業務 により Mind Map: SREの使命と業務

1. SREへの期待

1.1. サイトの信頼性を保証しながら、サービスの拡大で作業量(開発、テスト、運用)が増えたとしても、自動化でカバーしてほしい

2. Googleの事例

2.1. 1.SRE組織と方針

2.1.1. 自動化できるにもかかわらず、手作業で行う運用作業にかける労働時間を「全体の50%まで」

2.1.2. 残りの時間で、自動化を目指すコーディングやサービスレベル向上に関連するプロジェクトに対応

2.1.3. 上記の割合で業務を進めなければ、SREへの期待(サービスが拡大しても作業量を増やさない)には応えられない

2.1.4. 四半期に一度のペースで、運用にかけた時間の棚卸しを行い、50%以上の時間を要しているのであれば、組織の編成、方針を再検討する必要がある

2.2. 2.サービスの可用性を下げず、開発速度の最大化を追求

2.2.1. サービスレベルの範囲内で開発(改善)速度の最大化に取り組む

2.2.2. 可用性を99.9%に設定しているのであれば、残りの0.1%がエラーバジェット(サービスを止めても良い時間の合計)となる

2.2.3. 商況を鑑みて、可用性が下がるリスクを理解した上で、メンテナンスや早期リリースに利用するなど エラーバジェットを超過しない範囲でできるだけサービス改善を行う

2.2.4. https://image.itmedia.co.jp/l/im/enterprise/articles/1803/19/l_ki_sre02.jpg

2.2.5. エラーバジェットを決めておくメリット

2.2.5.1. 「ビジネス上の事情によっては、可用性を下げてでもリリースを優先する」といった判断がしやすくなる

2.2.5.2. バジェットを使い切ることが目標になれば、素早く新技術の検証に取り組むモチベーションに

2.3. 3.サービスに異常が起きたときの早期検知

2.3.1. アーキテクチャで冗長化などを実現できたとしても、機器の故障による可用性の低下や、アプリケーション変更による性能劣化などは発生し得る

2.3.2. こうした異常を素早く検知するためには、可用性の数値以外にも、サービスのレイテンシ、エラー率、システムのリソースなどを、定期的に監視するシステムが必要

2.3.3. Googleの監視分類

2.3.3.1. アラート

2.3.3.1.1. サービスダウンの検知など、即時対応が必要なもの

2.3.3.2. チケット

2.3.3.2.1. 「リソース使用量の増加傾向」など、即時対応が必要ではない状況。この場合は、リソース増強などを検討して対処することになる

2.3.3.3. ロギング

2.3.3.3.1. 普段は確認する必要がなく、詳細の分析や追跡の際に利用する

2.3.3.4. https://image.itmedia.co.jp/l/im/enterprise/articles/1803/19/l_ki_sre03.jpg

2.4. 4.サービス異常時の早期復旧

2.4.1. Googleではサービス異常時の復旧も可能な限り自動化し、人為的なミスを防ごうとしているが、 全てを自動化するのは難しいため、障害対応をシミュレーションする取り組みを行っている

2.4.2. 具体的には、訓練用としてシステムの障害連絡を受けたら、疑似障害の対応を実施し、対応の振り返りを行う。

2.4.3. その際に早期復旧のためにやるべきだったことを確認することで、不足しているドキュメントがあれば作成し、自動化できる部分があれば対応するきっかけが得られる。

2.4.4. https://image.itmedia.co.jp/l/im/enterprise/articles/1803/19/l_ki_sre04.jpg

3. 参考記事: https://www.itmedia.co.jp/enterprise/articles/1803/19/news016.html

4. 以上の前提を踏まえて以下記事のような、どういった要件に対して どういった技術を使うかということを考えるべき https://infra-note.net/sre-engineer/

4.1. SLA、SLO

4.1.1. 監視ツール

4.1.1.1. Zabbix

4.1.1.2. Nagios

4.1.1.3. Datadog

4.2. 障害対応、リリース時間短縮

4.2.1. コンテナ

4.2.1.1. kubernetes

4.2.1.2. Docker

4.3. リソースの自動化 【AVC+ではある程度形になっている】

4.3.1. CI/CD

4.3.1.1. Jenkins

4.3.1.1.1. https://www.kagoya.jp/howto/it-glossary/develop/cicd/

4.4. インフラのコード化 【AVC+ではある程度形になっている】

4.4.1. laC

4.4.1.1. Ansible

4.4.1.1.1. https://proengineer.internous.co.jp/content/columnfeature/20537

4.4.1.2. Terraform