はじめに
株式会社スタディスト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チームは、「サービスの可用性」「レイテンシ」「パフォーマンス」「効率性」「変更管理」「モニタリング」「緊急対応」「キャパシティプランニング」に責任を持ちます。
- 引用:Chapter 1 - introduction(Google - Site Reliability Engineering)
SREの責務から考える必要なスキルセット
前述した責務を一つずつ丁寧に分解していくと、必要な思想・スキルの輪郭が見えてきます。
例えば「サービスの可用性」を保つには、冗長構成を設計および実装できる必要があるでしょう。パブリッククラウドを利用している場合は、利用するサービス自体の可用性を考慮するために仕様の深い理解が求められるケースもあります。システム運用に取り組まれている方にとっては、馴染みある内容ではないでしょうか。
次に、「パフォーマンス」を向上させるためには、どのようなスキルが必要でしょうか。例えば、データ構造やアルゴリズムをふまえ、非効率なプログラムの改修を行えば、パフォーマンスは改善できそうですね。他にも、パフォーマンスの向上のため、キャッシュ層をどう活用するかを考える必要もあるでしょう。普段、サービス開発をしている人はこのような業務に取り組まれているかもしれません。
最後に「変更管理」についても考えてみましょう。変更管理は、システムに対する変更内容を管理することです。例えば、ミドルウェアのconfigファイルの変更を行った際には、変更内容をどこかに記録しますね。
もちろん、変更内容をExcelシートに1行ずつ記録しても構わないのですが、「SREは、ソフトウェアエンジニアに運用チームの設計を依頼した時にできあがるもの」なので、できればプログラマブルに管理をしたいです。そこで、DevOpsの文脈でよく語られるIaC(Infrastructure as Code)を実践することが重要となるでしょう。
このように、SREはシステム運用とサービス開発の思想・スキル双方が必要です。また、責務を満たすために扱うツール群も多く、かつ、それらを協調させることが求められます。SREのスキルは、非常に広範囲にわたるのです。
SREが使うツール
先ほど、「責務を満たすために扱うツール群も多く」と書きました。SREが具体的にどういったツールを業務で扱うかにご興味がある方は、筆者が「SRE がよく利用するソフトウェアの理解と分類講座」というタイトルで講演した際の資料をご参考ください。
本資料では、SREが業務で一般的によく使うようなツール群をカテゴリごとに分類しています。
注意
本資料の内容は、あくまでも筆者の自社における例ですので、他社と理解や分類が異なっている可能性があります。お含みおきください。