XXX Reliability Engineeringという職種を良く聞く年だったなと思ったのでまとめてみました。
Site Reliability Engineering
大分普及してきているのでサクッと以下の様な背景で生まれたスキルかなと思っています。
- インフラエンジニアは、構築したら終わりではなく運用し続ける必要がある。
- 運用は作業ではなく、ソフトウェアエンジニアリングである
- 業務、スキルは多岐に渡る
オライリーのSRE本は後続のXREにも必要な概念が理解できると思います。
Customer Reliability Engineering
顧客信頼性エンジニアリング
GCP Japanのブログが有名
https://cloudplatform-jp.googleblog.com/2016/10/google-cre.html
SREの考え方を応用し対顧客に対して信頼性を構築するスキル
クラウドを導入している組織を外から見ていると、非常に不安を感じているのがよくわかります。
その妥当な理由を把握するまで少し時間がかかりましたが、最終的に次のような考えに落ち着きました。
人は、自分の環境を管理したいと進化的に思ってしまうのです。これは、生き抜くための特性として本当に価値のあることです。そのため管理できないと感じると、あまりいい反応を示さなくなります。危険度が高ければ高いほど、管理できないことに対して、より大きく反応してしまいます。
サービス利用者がシステムをコントロールできない事に対して大きな不安がある事が分かったので、
その課題を解決するスキルのようです。
Database Reliability Engineering
データベース信頼性エンジニアリング
もともと、SREチームができ始めた時に、SREと行っても領域が広いので、
OSに強いSRE、リリースエンジニアリングに強いSREなど特性があって、
その中の1つのDBに強いSREがより専門的に特化したスキルなのかなくらいの認識です。
オライリーのDBRE本のamazonのページ行ってみると、
説明には以下の内容が書かれていました。
- サービスレベルの要件とリスク管理
- 運用の可視性のためのアーキテクチャの構築と進化
- インフラストラクチャエンジニアリングとインフラストラクチャ管理
- リリース管理プロセスを促進する方法
- データストレージ、インデックス作成、およびレプリケーション
- データストアの特性と最適なユースケースの特定
- データストアアーキテクチャコンポーネントとデータ駆動型アーキテクチャ
GitLabの採用ページ
Security Reliability Engineering
セキュリティ信頼性エンジニアリング
DBREと同じでセキュリティに特化してエンジニアリングかなと。
丁度、ゼロトラストネットワーク読んでいますがアプリケーションの設計もするし、
機械学習したりとセキュリティ信頼性という目的に対して必要な知識は当然幅広いですよね。
個人的な考え
サービス開発に携わっているソフトウェアエンジニアは、これら言葉ができる前からみんなやっていた事かなと思います。
そこにトップ組織のノウハウをフレームワークとしてまとめたり、共通の言葉として定義できる様にしたのが今かなと思っています。
Site Reliability Engineering 自体は専門性に特化した職種ではなくて、あくまでもスキルという考えです。
そのため、サービス開発するソフトウェアエンジニアだったらどの分野のスキルも必要じゃないかと思っています。