信頼性エンジニアリングとは

完了

サイト信頼性エンジニアリング (SRE) によって、ソフトウェア開発者が、運用環境におけるアプリケーションの日常的な運用を管理できるようになります。 その目標は、継続的に出荷する必要がある開発チームと、運用環境の信頼性について責任を負う運用チームとの間のギャップを埋めることです。 サイト信頼性エンジニアリングでは、運用の信頼性の責任が開発チームの SRE に移行されます。

通常、サイト信頼性エンジニアは、最大 50% の時間をアプリケーションの信頼性を維持する毎日のタスクに費やし、その他の時間をソフトウェア開発に費やします。

ソフトウェア信頼性エンジニアのカギとなるスキルは、アプリケーションを深く理解していることです。 これには、コード、アプリケーションの実行方法、構成方法、スケーリング方法に関する知識が含まれます。

サイト信頼性エンジニアの一般的な役割を次にいくつか示します。

  • 予防的にアプリケーションのパフォーマンスの監視と確認を行う。
  • オンコールおよび緊急時のサポートを担当する。
  • ソフトウェアのログ記録と診断が適切であることを確認する。
  • 運用 Runbook を作成して管理する。
  • エスカレートされたサポート チケットのトリアージを支援する。
  • 機能の要求、欠陥、その他の開発タスクに取り組む。
  • 製品のロードマップ全体に貢献する。
  • ライブ サイトのレビューを実行し、システムの障害に関するフィードバックをキャプチャする。

サイト信頼性エンジニアリングと DevOps

DevOps では、運用スタッフと開発チームの間に健全な仕事上の関係を構築します。 その二者の間でサイロを分解することにより、DevOps ではより堅牢で信頼性の高い製品が生成されます。

SRE と DevOps はどちらも、運用環境の管理方法に対する組織のニーズに応える方法論です。 前のモジュールで学習したように、DevOps のフィードバック システムでは、問題を特定し、開発者にアラートを送信することができ、その後開発者が問題を解決します。 SRE では、開発チームのメンバーがサイトの信頼性に関する問題を毎日探し、おそらくそれらの問題の解決も行います。 DevOps チームは通常、絶対に必要でない限り、運用環境を変更しないままにしておくことを選択しますが、SRE は変更を加える可能性があります。

サイト信頼性エンジニアリングのスキル

必要なスキルの種類は、アプリケーション、デプロイの方法と場所、および監視方法によって異なります。 たとえば、サーバーレス テクノロジを使用している組織では、Windows または Linux のシステム管理に関する詳しい知識を持ったメンバーは必要ありません。 しかし、これらのスキルは、デプロイにサーバーを使用するチームにとっては非常に重要です。

優れた SRE にとって重要となるその他のスキルは、アプリケーションの監視と診断に重点を置いたものです。 SRE には、Application Insights などのアプリケーション パフォーマンス管理ツールの使用経験が必要です。 また、アプリケーション ログのベスト プラクティスと例外処理についても理解しておく必要があります。