グーグルが提唱したIT技術者の新たなポジションであるSREとは?

SREは、Site Reliability Engineeringの略であり、Googleが提唱したエンジニアの役割の定義です。2018年に本が無料で公開されて、日本でも数社がいち早くSREチームを発足しています。世間への浸透はこれからといった感じですが、SREはITプロジェクトを成功に導く方法として期待されています。

SREの実際の仕事

SREの役割は、リライアビリティという単語の通り、システムの信頼性に焦点を置いています。SREチームは、サービスの可用性、遅延、パフォーマンス、効率、変更管理、監視、緊急対応、および容量計画を担当します。SREは、ソフトウェアエンジニアでもあり、運用も担当する人です。

元来、開発者視点ではリリースサイクルを可能な限り早めて、新しいサービスを提供していきたいのに対して、運用者の視点ではサービスの安定性向上が優先すべき目的となり、文化的な対立が発生していました。その後、DevOpsという考えが世の中に浸透していますが、SREは双方の意見を取り入れ、必要であれば、開発者として、システムの改善・効率化も担当します。

SREは社内において開発と運用を繋ぐ重要なポストですが、開発がSREチームに依存してしまう事態は望ましくありません。開発チームが自律して動ける仕組みやツールを提供する事も、SREにとっての重要な使命になります。

Toil (トイル)

Toilとは、反復的、手動などのサービスの実行に直接関連する作業です。SREは、このToilを自動化することによって、反復的作業を取り除くことが求められます。

Systems Engineering

一度の作業で永続的な改善が得られるように、実動システムの構成、構成の変更、またはシステムの文書化が含まれます。例としては、セットアップと更新の監視、負荷分散構成、サーバー構成、OSパラメーターの調整、ロードバランサーのセットアップなどがあります。システムエンジニアリングには、開発者チーム向けのアーキテクチャ、設計、および生産化に関するコンサルティングも含まれます。

Software Engineering

関連する設計および文書化作業に加えて、コードの記述または変更が含まれます。例としては、自動化スクリプトの作成、ツールまたはフレームワークの作成、スケーラビリティと信頼性のためのサービス機能の追加、「Infrastructure as Code(IaC)」の変更による堅牢性の向上などがあります。

IaCとはインフラ構成をコードとして書き残しておく事を指します。従来、クラウドソリューションを利用するとき、システム構成などは人間が手動で行っていました。IaCではこうしたインフラ環境をコードとして書き記しておき、設定を一から行う際に生じるヒューマンエラーの可能性を未然に防げまず。

Overhead (その他諸々)

サービスの実行に直接結び付けられていない管理作業。例としては、採用、人事事務処理、チーム/会社の会議、バグキュー消化、断片的作業、peer reviewsと自己評価、トレーニングなどがあります。

SREエンゲージメントの割り当て

SREのエンゲージメントは多岐にわたるため、GoogleではSREの運用作業(toilなど)を時間の50%に制限しています。各SREの時間の少なくとも50%は、将来の労力を削減するか、サービス機能を追加するengineeringプロジェクトの作業に費やす必要があります。機能開発は通常、信頼性、パフォーマンス、または使用率の向上に重点を置いており、2次効果として頻繁にtoilを削減することができます。キャパシティーを超えた場合は、運用作業を製品開発チームにリダイレクトします。

Googleは非難のない文化の下で運営されています

システムに問題が発生したときに、誰がその問題を引き起こしたのかの犯人探しをしません。これによって、後々、気づいた問題などを、エンジニアが後ろめたさの余りそのままにしてしまうという問題を解決します。

リスクを受け入れるのも大事

99%の信頼性のスマートフォンを使用しているユーザーは、99.99%と99.999%のサービスの信頼性の違いを区別できません。これを念頭に置いて、サイト信頼性エンジニアリングは、単に稼働時間を最大化するのではなく、利用できないリスクと迅速なイノベーションと効率的なサービス運用の目標とのバランスを取り、機能、サービス、パフォーマンスを含むユーザーの全体的な幸福を最適化することを目指します。

SREになるには?

まだ、世間への浸透がされていないポジションなので、採用枠は限られていますが、技術者として今後その道を極めていきたい方のキャリアステップとしても注目したいポジションです。SREの役割は、インフラ技術、アプリケーション技術、セキュリティ知識、コミュニケーション能力と、ある意味、IT技術の中で最高峰のポジションと捉えることもできます。なかなかのスーパースター人材で、探すのに苦労しそうです。

今回は、GoogleのSRE公式サイトにある、「Site Reliability Engineering」という無料で公開されている本を自分なりに解釈して概要を要約したものになります。Googleが世界中の莫大なアクセスをさばいているシステムの仕組みも紹介されていて、Googleの中を垣間見ることができます。

日本語版はこちら。

SRE サイトリライアビリティエンジニアリング Googleの信頼性を支えるエンジニアリングチーム

Amazonで見る 楽天で見る

サムネイル提供:Cartoon vector created by vectorjuice – www.freepik.com