AI・セキュリティのまとめのまとめ

サイバーセキュリティ・AI/機械学習の備忘録

DevOpsとSREについて、簡潔にまとめてみた

 DevOpsとSREってよく聞くけど、その違いってなんだっけ、と思っている方は多いのではないかなと思い(私もそのうちの一人です)、その違いについてまとめてみました。

サマリー

・DevOpsはアジャイル型の開発手法の1つで、開発チームと運用チームが連携することで、品質を落とすことなく、開発速度を上げるために用いられる。

・SREは「自動化に費やす時間を確保する」、「顧客へのサービスレベル目標を立て、計測し、それを開発チームと運用チームで共有することで連携を促す」という特徴を持ったDevOpsを実現する手法である。

従来の開発の問題点

 従来、ウォーターフォール型と呼ばれる顧客の要件をきっちりと固め、開発するスタイルが一般的でした。しかし、このウォーターフォール型では、顧客の要望が変化した際に対応できないという問題点があります。この問題点を解決するために、アジャイルと呼ばれる開発手法が採用されるようになってきました。アジャイルでは、「計画→設計→実装→テスト」といった開発工程を機能単位の小さいサイクル(スプリントと呼ばれます)で繰り返すのが最大の特徴です。これにより、顧客の要望に柔軟に対応可能となります。環境の変化が激しい昨今にマッチした開発手法と言えます。

f:id:nakajimeee:20220108045928p:plain

出典:https://www.nec-solutioninnovators.co.jp/column/01_agile.html

DevOpsとは

 DevOpsはアジャイル開発手法の1つで、ソフトウェアやシステムの開発チームと運用チームの連携によって、品質を落とすことなく、サービス改善のサイクルを早めることを目的としています。従来であれば、開発チームと運用チームは分かれて作業することが一般的でした。この障壁を取り除き、1つの統合されたチームとして作業することで、開発スピードを上げようとするのが、DevOpsの基本的な考え方です。

f:id:nakajimeee:20220108050721j:plain

出典:https://www.skygroup.jp/software/mbd/devops.html

SREとは

 DevOpsと似た概念として、Site Reliability Engineering(SRE)という考えが普及してきています。DevOpsはあくまで、「思想」であるのに対し、SREは「その実現方法」と捉えるとわかりやすいかと思います。SREの基本は以下の3つに集約されます。

トイル(Toil)の制限

 トイルとは人手で繰り返し行う自動化の余地がある作業のことです。手作業の時間を「作業時間全体の50%」までに制限して、残りの50%を自動化やサービスの質を向上させるために活用させます。

SLI・SLOによる目標定量

 SLI(Service Level Indicators)顧客へのインパクトをサービス・レベルとして計測するための指標、SLO(Service Level Objective)SLIに基づいて計測されるサービス・レベルの目標値やその範囲を指します。

エラーバジェットの適切な設定

 エラー バジェットは、ユーザーが不満を感じ始めるまでの一定の期間にサービスで累積できるエラーの量です。可用性の目標(SLO)を99.9%とすると、エラーバジェットは0.1となります。このエラーバジェットに達するまで、エラーが許容されます。あまりに高い目標を置きすぎると、そこに時間を無駄に割くことになるので、適切なエラーバジェットを設定することが重要です。そして、エラーバジェットという共通の目標を運用側と開発側で共有することで、協力的な関係を築くことができます。

適用事例

国内での適用事例は以下の通りです。

メルカリ

 個人間でのやり取りが頻繁に発生するアプリのため、ダウンタイムの削減を目的として2015年、SREを導入しています。これにより、チームを横断した管理体制と信頼性の向上、品質改善を可能にしています。

ヌーラボ

 「各サービスを開発する課」とは独立した形で「SRE課」を発足させています。この体制は自らが担当するプロダクトを抱えながらも、他チームとも横断的に連携することを目的として作られました。

参考文献

SREとDevOpsの違い | AIdrops

SREとは何か?DevOpsと何が違う?ガートナーが解説する運用管理変革の現実解 |ビジネス+IT

DevOps とは? - DevOps と AWS | AWS

メンテナンスの時間枠がエラー バジェットに与える影響 - SRE のヒント | Google Cloud Blog

開発・運用環境(DevOps)|Sky株式会社

アジャイル開発 ~顧客を巻き込みチーム一丸となってプロジェクトを推進する~ (前編): コラム | NECソリューションイノベータ

アジャイル開発とは? 特徴とメリット・デメリット、スクラムまで徹底解説 | モンスターラボ DXブログ

Lowe’s が Google SRE プラクティスで顧客の要求に応えている方法 | Google Cloud Blog

日本企業のSRE事例と成功への3つのポイント | sreake.com | 株式会社スリーシェイク