コンテンツにスキップ

SREing:Site Reliability Engineering@DevOps

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. SREingの用語集

SREingとは

▼ 引用:サイトリライアビリティエンジニアリング

サイトの信頼性向上を目的としたエンジニアリング手法のこと。

DevOpsというインターフェースを実装したエンジニアリング手法でもある。

Platform Engineeringとは異なり、サイトの信頼性向上からDevOpsを実現する (出典は俺)。


サイトの『信頼性』とは

▼ 引用:サイトリライアビリティエンジニアリング

信頼性とは、『システムが求められる機能を、定められた条件下で、定められた期間にわたり、障害を発生させることなく実行する確率』のこと。

▼ 引用:SRE実践の手引

SREerの具体的な行動を明確にするためには、サイトの信頼性を表す指標 (SLI) と、指標の具体的な目標値 (SLO) を定義する必要がある。

エラーバジェットの残量を考慮に入れ、リスクを取りながら、サイトの信頼性の維持に努める。

▼ 引用:SREの基本と組織への導入

ソフトウェアの最も重要な機能は信頼性であり、信頼性の程度はサイトのユーザーによって決められるべきである。

ユーザーは、SLIを信頼性の指標とし、SLOに至った場合に信頼できるサイトと見なす。

▼ 引用:組織の信頼性のマインドセット

プロダクトの信頼性は、そのシステムのアーキテクチャ/プロセス/文化/開発組織のマインドセットによって決まる。


02. SREingが有用な業態

人命に関する安全性を担保しなくてもよい業態

SREingが信頼性を向上させるソフトウェアは、サイトやそれに類似するサービスである。

原子力発電所、航空機、医療機器、その他安全性が極めて重要なソフトウェアなどの信頼性については考えない。


システム構築後に機能改善作業がある業態

SREingには、継続的な改善によって、システムの信頼性を向上させようとする思想がある。

そのため、アジャイル開発を採用できないシステム (例:人命にかかわるようなシステム) を扱っている業態や、サイトを扱っていても納品後に改善作業がないような業態 (例:受託会社) では、有効に動作しない。


03. SREingの組織モデルの種類

プロダクトチーム内フルスタックSREer型 (Embedded SRE)

特定のプロダクトの信頼性を高めるために、アプリケーションチームと同じチームにSREerが参画し、フルスタック的にSREingする。


フルスタックSREerチーム型

様々なプロダクトの信頼性を高めるために、SREer自体をチームとして定義し、SREerチーム全体としてフルスタック的にSREingする。

SREerチームは、T字型のスキルを持った様々なエンジニア (例:アプリエンジニア、インフラエンジニア、ネットワークエンジニア、など) から構成される。

各SREerがフルスタックな人材である必要はなく、各SREerが得意分野を1個持っている。

お互いが得意不得意を補い合うことにより、SREerチーム全体としてフルスタック的にSREingできるようになる。


ツール開発SREer型

様々なプロダクトの信頼性を高めるために、SREerがアプリケーションチームを支援する自前ライブラリを開発する。


プラットフォームSREer型

様々なプロダクトの信頼性を高めるために、SREerがアプリケーションチームやチーム内SREerを支援するインフラを開発する。


Enabling SREer型 (CCoE)

前者にSREのプラクティスを広める。


04. スキルセット

L4 ~ L7

SREerは、L4 ~ L7を領域として業務する。

そのため、インフラだけでなくアプリでもスキルが必要である。

一方で、SREerチーム全体としてL1 ~ L3を補完するために、少数の専門的なインフラエンジニアが必要になる。


求人から見る

▼ Wantedly

SREチームのValueから、SREerに必要な技術がわかる。

▼ 3-shake、Topotal

提供しているサービスから、SREerに必要な技術がわかる。


ニュース

▼ SREウィークリー