SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

結局、SRE って僕たちに関係あるんですか?

SREって何? これまでのシステム運用やDevOpsとは何が違うの?

結局、SRE って僕たちに関係あるんですか? 第1回


従来のシステム運用のデメリット

 次に、従来のシステム運用のデメリットについて考えましょう。SRE本では、従来のシステム運用のデメリットについて「直接的」「間接的」の2つに分けて論じています。

直接的なコスト

 前述したシステム運用を手作業で行っていた場合、システムが大きくなればなるほど、比例して作業量が増加します。ユーザーが増えれば、それに伴い管理するサーバは増えるでしょうし、開発に関わるソフトウェアエンジニアが増えれば、変更頻度が増えることにより障害発生頻度も増加するでしょう。それにより、システム管理者をたくさん雇用しなければなりません。

間接的なコスト

 従来のシステム運用では、DevとOpsが、時に対立的にならざるを得ない場面があります。開発した修正を次々にリリースしたいDevに対して、安定してシステム運用するために変更頻度を減らしたいOpsとでは、修正変更を行うことに対するスタンスが真逆です。そのため、時に利害関係解消のための、コミュニケーションコストが発生することがあります。これをSRE本では、間接的なコストと呼んでいます。

SREと従来のシステム運用との違い

 SREの話に戻ります。SREは従来のシステム運用が抱える これらのデメリットを解消するための方法論を持っています。

 まず、システム運用に伴う作業の多くをエンジニアリングによって効率化・自動化を行います。エンジニアリングによって効率化・自動化された作業には、人手による作業を削減・もしくは撲滅することができます。ですので、システムが大きくなることに伴う直接的なコスト(人件費)の増加速度を低減させることができます。

 また、SREでは、エラーバジェット(エラー予算)の考え方を採用することで、前述した対立構造を解消します。エラーバジェットとは文字通り、エラーの発生を予算のように扱う考え方です。エラーが発生すると予算が減り、予算がなくなりそうになると、Devは新しい変更をリリースせずに、既存のエラーに優先対応します。こうすることで、DevもOpsもエラーバジェットという共通目標に向き合うことで、協力的な関係が生まれます。

 ここまでで、SREが従来のシステム運用の考え方に対して、どのようなメリットがあるかをご紹介しました。SREは、従来のシステム運用と完全に異なる概念ではなく、これまで存在していたシステム運用における問題を解消するための、延長線上にある考え方だとお分かりになると思います。「SREは、ソフトウェアエンジニアに運用チームの設計を依頼した時にできあがるもの」という言葉の意味を少しでも感じ取っていただければ幸いです。

SREとDevOpsは何が違うの?

 さて、ここまで読みながら「運用作業の自動化は、私たちの会社でもすでに実践している」や、「そもそも、それってDevOpsと何が違うのですか? DevOpsもDevとOpsの関係性に焦点を当てた考え方で、同じものではないですか?」といった感想をお持ちの方もいらっしゃるのではないかと思います。

 たしかに、前述したような運用業務の効率化・自動化や、DevとOpsの連携については、DevOpsという文脈で散々議論されてきました。

 例えば、以下に紹介するのは、Flickerのエンジニアが2009年に発表した、DevOpsの原典とも呼ばれる資料です。 まさに本記事で書いたDevとOpsの対立をどのように解消するかについて述べられています。

 10枚目のスライドに「Dev's job is to add new features」「Ops’ job is to keep the site stable and fast 」と書かれています。この描写は、前述した、従来のシステム運用業務が抱える間接的なコストと同じです。どうやら、SREとDevOpsは非常に近い問題意識を持つ用語だと言えそうです。ここで、「なーんだ、似たような用語か、じゃあなんとなく分かったからいいや」で終わらせてはいけません。専門用語の曖昧な理解は、専門家間での溝をつくることになりかねません。

次のページ
SREとDevOpsの違いに対するGoogleの解説

この記事は参考になりましたか?

結局、SRE って僕たちに関係あるんですか?連載記事一覧

もっと読む

この記事の著者

北野 勝久(株式会社スタディスト)(キタノ カツヒサ)

 印IT企業でインフラ・ミドルウェアエンジニアとして勤務した後、スタディスト入社。マニュアル作成・共有プラットフォーム「Teachme Biz」の新規機能開発を担当の後、SRE チームの立ち上げを行う。信頼性に関わる一連の実装、運用を担当する。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11002 2019/05/07 14:20

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー