[[Software Reliability Engineering Process]]より - [[Software Reliability]] - Engineering discipline - Measure, predict, manage reliability - Statistical modeling - Customer perspectives - failures vs faults - meaningful time vs development days - customer operational profile ## Papers - [[2024__IEEE Reliability Magazine__Forty Years of Lessons Learned in Software Reliability]] - [[2024__IEEE Reliability Magazine__Insights From the Software Reliability Research Community]] - [[2019__arXiv__The First 50 Years of Software Reliability Engineering - A History of SRE with First Person Accounts]] - [[2007__FOSE__Software Reliability Engineering - A Roadmap]] ## SREとの違い from [[ChatGPT]] "Software Reliability Engineering"(ソフトウェア信頼性工学)と"Site Reliability Engineering"(サイト信頼性工学)には共通点と差異があります。以下にそれぞれを詳述します。 ### 共通点 1. **目標**: - 両者ともシステムの信頼性を向上させることを目的としています。 - エンジニアリングのアプローチを使用して、システムの高可用性、高パフォーマンス、および高信頼性を実現します。 2. **プロセス**: - 故障の予防、検出、修正、そして耐障害性を重視します。 - 継続的なモニタリングとフィードバックループを使用して、システムの改善を行います。 3. **測定**: - 信頼性の指標(例えば、MTBF、MTTR、[[SLO]]など)を使用して、システムの性能を評価します。 - 定量的なデータに基づいた意思決定を行います。 4. **ツールと技術**: - 自動化ツール、テストツール、モニタリングツールなどを活用します。 - データ分析とモデリングを使用して、将来の故障や性能問題を予測します。 ### 差異 1. **フォーカスの範囲**: - **ソフトウェア信頼性工学**: 主にソフトウェアの設計、開発、テスト段階における信頼性を確保することに焦点を当てています。ソフトウェアシステムの内部品質やバグの防止、検出、修正を重視します。 - **サイト信頼性工学**: 運用段階におけるシステム全体の信頼性と可用性を確保することに焦点を当てています。インフラストラクチャ、ネットワーク、アプリケーション、サービス全体の運用と保守を管理し、実際の運用環境での問題解決を重視します。 2. **役割と責任**: - **ソフトウェア信頼性工学**: ソフトウェア開発者やQAエンジニアが中心となります。開発サイクル全体での信頼性向上活動が主な責任です。 - **サイト信頼性工学**: SREチーム(Site Reliability Engineers)が中心となり、DevOps文化に根ざした運用エンジニアリングを実践します。運用中のシステムの安定性とパフォーマンス維持が主な責任です。 3. **アプローチ**: - **ソフトウェア信頼性工学**: フォーマルな手法やモデル、統計的な手法を用いてソフトウェアの信頼性を評価・予測します。例えば、信頼性成長モデル(SRGM)などが使用されます。 - **サイト信頼性工学**: 実践的な運用手法や自動化ツール、インシデント対応プロセスを使用して信頼性を維持・向上させます。例えば、インシデント管理、ポストモーテム分析、SLI/SLO管理などが含まれます。 4. **対象となるシステムの範囲**: - **ソフトウェア信頼性工学**: 個々のソフトウェアアプリケーションやそのコンポーネントに焦点を当てます。 - **サイト信頼性工学**: サイト全体、つまり、ソフトウェア、ハードウェア、ネットワーク、サービス全体にわたるシステムに焦点を当てます。 ### 結論 ソフトウェア信頼性工学とサイト信頼性工学は、どちらも信頼性向上を目指すエンジニアリング分野ですが、そのフォーカスやアプローチには明確な違いがあります。ソフトウェア信頼性工学はソフトウェア開発プロセスに深く根ざし、設計からテストまでの信頼性を重視するのに対し、サイト信頼性工学は運用段階でのシステム全体の信頼性と可用性を管理・維持することに焦点を当てています。