前田 (2011年5月20日 17:07) 流通システム部 / システム設計 / 運用・保守
システム開発を請け負うにあたって、 可用性について検討することがよくあります。
可用性とは、端的にいえば、「利用者が使用できること」という意味で、 英語でいうと「Availability」といいます。
システムの信頼性を表す指標として「RAS」という指標がありますが、 これは、 ・Reliability(信頼性) ・Availability(可用性) ・Serviceability(保守性、サービス性) の3つの性質を総称したものです。
この中で、特に可用性は、ほかの性質によって左右される要素でありながら、 別の方法で代替できる性質といえます。
例えば ハードウェアの性能が低く、障害が発生しやすいが、 冗長構成を取っているため、メイン機器が使用できなくなっても 代替機器が動作するため、 利用者にとっては、使用できる状態を維持できる というようなことです。
可用性を考える場合には、 まずどの範囲で稼動を保障する必要があるのかを決める必要があります。 当然24時間365日稼動を維持する必要のあるシステムもありますし、 社内のシステムで、営業日の営業時間内だけ動作すればよいというシステムもあります。
その運用要件に基づいて 例えば、 ・バックアップはいつどのように取るのか ・障害があった場合どのように回復するのか ・定期メンテナンスはいつ行うのか など いろいろなケースを想定して求められる可用性を担保する設計を行う必要があります。
もちろん、高性能なハードウェアを何台も同時に導入できるならば それに越したことはありませんが、 最小限のコストで求められる最大の可用性を維持するための工夫や知恵もシステム会社に求められます。
また、弊社はアプリケーション開発をメイン業務として行っていますが、 このアプリケーションの要件にも可用性の維持と そのためのインフラ構成などの仕組みが深く関わってきます。
クラスタリングなどのソフトウェアの仕組みで冗長構成をとる場合は、 もちろん、その構成に沿ったアプリケーションの仕組みが必要になるかもしれませんし、 実際にメイン機器が倒れて、代替機器に入れ替わることを想定し、 入れ替わるタイミングの動作や、入れ替わった後の運用についても 具体的に検討、検証した上でアプリケーションを設計する必要があります。
現在可用性を保つための技術としては色々なものが既に世に出回っています。 ただ、どのような技術を採用しても、 結局は、利用者が利用したいタイミングでシステムが利用できる状態が いかに維持できるかということにつきます。 重要なのは、利用者がどのような使い方をしたいのか、 システム運用のためにどのような可用性を損なう要素があるのか、 また、どのような仕組みにどれぐらいのコストがかかるのか、 これらのことを明確にお客さまに提案できることが重要です。
「バックアップしなくちゃいけないから夜間は使ってもらっては困ります」 「障害が発生したら翌営業日に対応するので復旧までは使えません」 もちろん間違った選択ではありませんが、 正しくコストと品質のバランスを考慮したうえで検討し、 お客さまとコンセンサスを得ているのかが重要なのです。
システム会社の常識はお客さまにとっては非常識なのかもしれません。 「可用性について考える」というタイトルからは少し話が広がりますが、 プロとして、正しくお客様に提案し、説明ができ、納得して同意していただける そんなシステム開発ができる会社でありたいということを思います。
可用性について考える
前田 (2011年5月20日 17:07)
流通システム部 / システム設計 / 運用・保守
システム開発を請け負うにあたって、
可用性について検討することがよくあります。
可用性とは、端的にいえば、「利用者が使用できること」という意味で、
英語でいうと「Availability」といいます。
システムの信頼性を表す指標として「RAS」という指標がありますが、
これは、
・Reliability(信頼性)
・Availability(可用性)
・Serviceability(保守性、サービス性)
の3つの性質を総称したものです。
この中で、特に可用性は、ほかの性質によって左右される要素でありながら、
別の方法で代替できる性質といえます。
例えば
ハードウェアの性能が低く、障害が発生しやすいが、
冗長構成を取っているため、メイン機器が使用できなくなっても
代替機器が動作するため、
利用者にとっては、使用できる状態を維持できる
というようなことです。
可用性を考える場合には、
まずどの範囲で稼動を保障する必要があるのかを決める必要があります。
当然24時間365日稼動を維持する必要のあるシステムもありますし、
社内のシステムで、営業日の営業時間内だけ動作すればよいというシステムもあります。
その運用要件に基づいて
例えば、
・バックアップはいつどのように取るのか
・障害があった場合どのように回復するのか
・定期メンテナンスはいつ行うのか
など
いろいろなケースを想定して求められる可用性を担保する設計を行う必要があります。
もちろん、高性能なハードウェアを何台も同時に導入できるならば
それに越したことはありませんが、
最小限のコストで求められる最大の可用性を維持するための工夫や知恵もシステム会社に求められます。
また、弊社はアプリケーション開発をメイン業務として行っていますが、
このアプリケーションの要件にも可用性の維持と
そのためのインフラ構成などの仕組みが深く関わってきます。
クラスタリングなどのソフトウェアの仕組みで冗長構成をとる場合は、
もちろん、その構成に沿ったアプリケーションの仕組みが必要になるかもしれませんし、
実際にメイン機器が倒れて、代替機器に入れ替わることを想定し、
入れ替わるタイミングの動作や、入れ替わった後の運用についても
具体的に検討、検証した上でアプリケーションを設計する必要があります。
現在可用性を保つための技術としては色々なものが既に世に出回っています。
ただ、どのような技術を採用しても、
結局は、利用者が利用したいタイミングでシステムが利用できる状態が
いかに維持できるかということにつきます。
重要なのは、利用者がどのような使い方をしたいのか、
システム運用のためにどのような可用性を損なう要素があるのか、
また、どのような仕組みにどれぐらいのコストがかかるのか、
これらのことを明確にお客さまに提案できることが重要です。
「バックアップしなくちゃいけないから夜間は使ってもらっては困ります」
「障害が発生したら翌営業日に対応するので復旧までは使えません」
もちろん間違った選択ではありませんが、
正しくコストと品質のバランスを考慮したうえで検討し、
お客さまとコンセンサスを得ているのかが重要なのです。
システム会社の常識はお客さまにとっては非常識なのかもしれません。
「可用性について考える」というタイトルからは少し話が広がりますが、
プロとして、正しくお客様に提案し、説明ができ、納得して同意していただける
そんなシステム開発ができる会社でありたいということを思います。