Technology14. 信頼性
アプリケーションの信頼性と保守性は、サービスの可用性に影響を与えます。アプリケーションの信頼性とは、アプリケーションに起因する問題でサービス停止が起こらない確度ですが、役割によってアプリケーションの信頼性向上に貢献する手段は異なります。次の3つの役割を通じて、アプリケーションの信頼性について考えてみます。
- アプリケーション・アーキテクト
- アプリケーション設計者および開発チーム
- 運用設計者
アプリケーションのアーキテクチャを検討する技術者をアプリケーション・アーキテクトと呼ぶことにします。このアプリケーション・アーキテクトは、アプリケーションが採用する基盤技術を決定します。信頼性向上のためにアプリケーション・アーキテクトが注目するのは、堅牢で柔軟性に富んだアプリケーション・ プラットフォームです。信頼性の高いアプリケーションを構築するために、今日ではアプリケーション・サーバを採用した3層構造のアーキテクチャが採用されることが多くなりました。このような基盤技術の選択は、アプリケーションの信頼性を大きく左右します。
アプリケーション設計者は、選択された基盤技術を用いたアプリケーションを設計します。開発チームはその設計書に基づいてアプリケーションを構築します。信頼性向上のためにアプリケーション設計者が考慮するのは、アプリケーションの構造化や、実績のあるコードの再利用、例外イベントに対する適切な措置などが考えられます。また、仕様に忠実なアプリケーションを構築できるスキルを持つ開発チーム、そして十分な検証プロセスが必要です。
さらに、運用設計者がいます。インフラストラクチャの各構成要素の冗長化を図り、コンポーネントの障害によるシステム停止の可能性を低減します。インフラストラクチャの異常をツールなどを利用して検出し、計画外のサービス停止を予防します。アプリケーション操作の自動化によって人的ミスを排除します。このような技術の組み合わせによって、運用設計者はサービスの信頼性向上を図ります。
- 堅牢で柔軟性に富んだアプリケーション・アーキテクチャ
- 質の高いアプリケーションの供給
- 適切な稼働環境と運用手順の構築
組織の内で誰がその役割を担うかに関しては様々なケースが考えられますが、いずれの活動もアプリケーションの信頼性向上にとって不可欠な要素と言えます。