こんにちは、SREチームの三森(共同執筆:小川)です。 前期からメディアドゥにもSREチームができましたので本日はその紹介をさせていただきます!
SREとは
Googleで培われたシステム管理とサービス運用の方法論で、Site Reliability Engineering(サイト信頼性エンジニアリング)の略です。 そしてSREチームは、サイトやサービスの信頼性向上に向けて様々な取り組みを行っていきます。
詳細はSRE本が出ているので是非読んでみてください! (英語版は公開されています!)
サイトの信頼性は SLI / SLO によって計測することができます。 そしてSRE本の第1章によると、SREチームの責務は以下のようなものが挙げられています。
- availability(可用性)
- latency(レイテンシ)
- performance(パフォーマンス)
- efficiency(効率性)
- change management(変更管理)
- monitoring(監視)
- emergency response(緊急時対応)
- capacity planning(キャパシティプランニング)
つまり、SREチームはサービスに対して上記の項目について責任を持ち、信頼性向上に向けてサービス監視、運用自動化、インフラコード化、障害対応などの活動していくことになります。
SLI(サービスレベル指標)とは
サービスのレベルの性質に関して定義された計測量です。例えばこんなSLIが考えられますね。
- リクエストのレイテンシ:リクエストに対するレスポンスを返すまでにかかった時間
- 可用性:サービスが利用できる時間の比率。全体のリクエスト数に対する処理に成功したリクエスト数の比較で計測されることが多い
- システムスループット:単位時間あたりに処理できる量。例えば毎秒のリクエスト数
SLO(サービスレベル目標)とは
SLI で計測されるサービスレベルのターゲット値、あるいはターゲットの範囲 (SLI ≦ ターゲット
あるいは 下限 ≦ SLI ≦ 上限
のような形式)
。
SLO を利用してエラーバジェット運用することで、Reliability と Agility のどちらを優先するか、意思決定ができます。
エラーバジェットとは
エラーに対する予算であり、SLOに基づき算出される損失可能な信頼性です。SLOが99.9%であれば0.1%分は障害が起きても構わないという考え方をします。
上記により、エラーバジェットがまだ残っていれば、新機能リリースが可能。でなければ、SLOを維持するための改善を行います。
メディアドゥSREチームの取り組み
SREとしては、各サービスごとにSLI / SLOを運用し、SLOの達成に向けて運用自動化や、アラート・障害の管理などを行っていきたいのですが、現状のメディアドゥにはこんな課題があります。
現状のメディアドゥの課題
現状のメディアドゥだとサービス単位でチームが分かれており、使っている技術やモニタリング方法がそれぞれのチームで異なっています。
インフラ周りだけざっとあげてもこんな感じ!
インフラ: Linux / Oracle ExaData / ISILON Storage / VMware / Cisco / FortiGate / Akamai / AWS etc...
モニタリング: Mackerel / Xymon / Grafana / UptimeRobot / Kibana / Datadog
IaC: Terraform / Ansible / Shell Script / CloudFormation
プロダクトの種類も電子書籍取次の管理システム、電子書店WEBサービス、コンテンツ配信API、CMSサービス、電子書籍Viewerなど、業務特性が異なるプロダクトが多数あるため、それぞれに最適な監視方法、計測項目を検討していく必要があります。
加えて、サービスレベルの計測水準が統一されていないので、現状のままだと適切なSLI / SLOの運用ができないチームもあります。。。
さらに、実際に開発チームに話を聞いてみると、「サービスの可用性を定量的に計測したい」、「現在開発中のプロダクトがリリースされたら、エラーバジェット運用したい」、「Log分析をやりやすくしたい」など、まさにSREとして解決していくべき課題が沢山あることがわかりました。
こうやっていく!
そこでSREチームの出番です!SREチームは今期から以下の取り組みを行うことで適切なSLI / SLOの設定ができるようにしていきます。
- 各チームにヒアリング → 現状の監視方法、障害管理方法などの把握
- チーム横断的な障害管理方法提案
- ログ収集 ・モニタリングの強化、統合監視基盤作成
- SLI / SLO設定
- SLI / SLOの運用、改善
また上記を行う上で必要になってくる組織全体のセキュリティ強化や運用作業の自動化も併せて行っています。
具体的にはAWSのIAMポリシー/ロールのTerraform管理、CloudTrail / GuardDutyなどを用いたセキュリティの標準化、日々のリソースチェックの自動化、そのほかにも作業効率を上げるためのツールの開発を行っております。詳細な開発内容は今後当ブログで紹介していきますのでお楽しみに!
そして、これらの活動は開発チームの協力が不可欠です!
メディアドゥでは社内の技術部総会などでSREチームの目的やサイト信頼性の重要性を説明したり、各チームとコミュニケーションの場を多く設けることで、技術部全体へ啓蒙活動を行っています。
さいごに
SREチームは、ほとんど全ての技術チームとコミュニケーションを取る機会がある素敵なチームだなと感じました。責任も大きいですが、感謝されることも多いチームです。
メディアドゥではSREを募集しています!
また、SREチームに関わらずエンジニア大募集中ですので、もしご興味のある方はぜひ、ページ下部の採用リンクを覗いてみてください!