Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

SREをはじめるには、まずどうすればいいですか? SREに必要なスキルと取り組み方

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 近年、何かと話題に上がるSRE(Site Reliability Engineering)。しかし、「自分たちのチーム・組織に関係する話なのかよく分からない」「具体的に何をやればいいの?」といった感想を持つ方は多いのではないでしょうか。本連載では、そういった方に向けて、SREの考え方をご紹介します。連載の後半では、SREをいち早く取り入れた企業に導入背景などもインタビュー形式でお伝えする予定です。第2回となる本記事では、自社でSREチームの立ち上げを行ってきた筆者の経験をもとに、SREをはじめる際のポイントをご紹介します。

目次

はじめに

 株式会社スタディストSREチームの@katsuhisa__です。連載第1回「SREって何? これまでのシステム運用やDevOpsとは何が違うの?」では、SREの概観について皆さんにお伝えしました。今回は、より具体的にSREのはじめかたについてご紹介をします。

  • SREに必要なスキルセット
  • SREに取り組むために
  • サービス信頼性階層

 本記事では、SREのプラクティス以外にも、SREを実践するために必要な要素についても述べたいと思います。最後までお楽しみください。

SREに必要なスキルセット

 前回記事にて、「SREは、ソフトウェアエンジニアに運用チームの設計を依頼した時にできあがるもの」というBen Treynor氏(Google社 VP of Engineering:SREの考案者)の言葉を紹介しました。では、これまでシステム運用者として仕事をしていた人は、一体何を身につければSREを実践できるのでしょうか。

 ここでは、SREの責務からSREに求められるスキルセットについて考えます。

SREの責務

 SREの責務は、Site Reliability Engineering(サイト信頼性エンジニアリング)という言葉からも分かる通り、サイトの信頼性を守ることです。では、サイトの信頼性は、具体的にどうすれば保つことができるのでしょうか。

 書籍『Site Reliability Engineering』のChapter 1の中で、「SREがすべきこと」(Tenets of SRE)について紹介されています。SREの責務を具体的に理解するために丁度よいため、以下に引用します。

 In general, an SRE team is responsible for the availability, latency, performance, efficiency, change management, monitoring, emergency response, and capacity planning of their service(s).

筆者訳

 一般的に、SREチームは、「サービスの可用性」「レイテンシ」「パフォーマンス」「効率性」「変更管理」「モニタリング」「緊急対応」「キャパシティプランニング」に責任を持ちます。

SREの責務から考える必要なスキルセット

 前述した責務を一つずつ丁寧に分解していくと、必要な思想・スキルの輪郭が見えてきます。

 例えば「サービスの可用性」を保つには、冗長構成を設計および実装できる必要があるでしょう。パブリッククラウドを利用している場合は、利用するサービス自体の可用性を考慮するために仕様の深い理解が求められるケースもあります。システム運用に取り組まれている方にとっては、馴染みある内容ではないでしょうか。

 次に、「パフォーマンス」を向上させるためには、どのようなスキルが必要でしょうか。例えば、データ構造やアルゴリズムをふまえ、非効率なプログラムの改修を行えば、パフォーマンスは改善できそうですね。他にも、パフォーマンスの向上のため、キャッシュ層をどう活用するかを考える必要もあるでしょう。普段、サービス開発をしている人はこのような業務に取り組まれているかもしれません。

 最後に「変更管理」についても考えてみましょう。変更管理は、システムに対する変更内容を管理することです。例えば、ミドルウェアのconfigファイルの変更を行った際には、変更内容をどこかに記録しますね。

 もちろん、変更内容をExcelシートに1行ずつ記録しても構わないのですが、「SREは、ソフトウェアエンジニアに運用チームの設計を依頼した時にできあがるもの」なので、できればプログラマブルに管理をしたいです。そこで、DevOpsの文脈でよく語られるIaC(Infrastructure as Code)を実践することが重要となるでしょう。

 このように、SREはシステム運用とサービス開発の思想・スキル双方が必要です。また、責務を満たすために扱うツール群も多く、かつ、それらを協調させることが求められます。SREのスキルは、非常に広範囲にわたるのです。

SREが使うツール

 先ほど、「責務を満たすために扱うツール群も多く」と書きました。SREが具体的にどういったツールを業務で扱うかにご興味がある方は、筆者が「SRE がよく利用するソフトウェアの理解と分類講座」というタイトルで講演した際の資料をご参考ください。

 本資料では、SREが業務で一般的によく使うようなツール群をカテゴリごとに分類しています。

注意

 本資料の内容は、あくまでも筆者の自社における例ですので、他社と理解や分類が異なっている可能性があります。お含みおきください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

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

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

バックナンバー

連載:結局、SRE って僕たちに関係あるんですか?
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5