元SEの小名木です。今はIT業界を温かく見守る仕事をしています。

時計から考えるシステムの信頼性

»

●はじめに

 このたび@IT自分戦略研究所 エンジニアライフにコラムを書かせていただくことになりました、小名木 雅史と申します。

 わたしはこれまでシステムを構築し導入するSIer側としての立場と、導入されたシステムを使用するユーザー企業の両方の立場を経験してきました。今回縁があって、@IT自分戦略研究所 エンジニアライフにコラムを書かせていただくお話をいただいたました。エンジニア向けのコラムということで、わたしになにが書けるのか迷いましたが、これまで導入する側・される側の両方の立場を経験し感じたこと、一般向けにサービスを提供する際に感じたこと、などを中心に、これからこの業界を目指す人に知っておいてもらいたいことなどを紹介していきたいと思います。

●システムと信頼性について

 今回第1回目のコラムとしてわたしが紹介するのは、システムと信頼性についてです。

 みなさんがシステムを構築されるときに重要視されているものは何ですか? 納期・要求仕様・価格など色々な要素があると思います。わたしはこれまで関わってきた案件の中では、全体のシステムの中で、新しい導入する部分のシステムの設計を行うといったことを経験してきました。その中でわたしがもっとも心がけていること、システムの信頼性についてお話したいと思います。

●信頼されるシステムとは

 信頼されるシステムとは何でしょうか。システムを設計する際には機能や性能などの要求される項目がありますが、信頼性も考慮されていますか? 人が何らかのものを購入するからには期待されている信頼性があります。

 いくら高機能な製品を購入しても、すぐに壊れてしまっては性能を発揮しているとはいえません。

●F1の車両と信頼性

 たとえば代表的なフォーミュラカーレースF1で、もし車がゴールまで走りきれずに途中で止まってしまった場合、その車両は期待された性能を発揮したとはいえません。レースに出場するからには上位入賞を目指すはずです。F1の車両は、高回転のエンジンを動力とし時速300kmを越える速度で走ります。風圧や、減速時にかかる重力の数倍の力、コーナーでの横向きにかかる力、タイヤの摩耗など、車にかかる負担というのは想像を絶するものがあります。また、ほかの車両とぶつかったりする可能性もあり、故障する要素は様々なものがあります。しかし、それらをクリアしなければゴールはできません。

 従って信頼性の低い車両はゴールまで完走できる可能性が低くなります。

 では、我々が作るシステムではどうやって信頼性を高くするにはどうすればいいのでしょうか、最初の例ではF1の車両を例に挙げましたが、もっと身近なものを例に信頼性を高める工夫について考えてみましょう。

●時計と信頼性

 みなさんが使っている時計はどんな時計を使っていますか? 腕時計・懐中時計・置き時計など様々な形状のものがありますね。時計を動かす動力としても乾電池やボタン電池が入っているもの、ねじ巻きのもの、ソーラーパネルで内蔵電池を充電しながら動かすものなど様々なものがあります。

 わたしが現在使っている腕時計は就職活動時に買った物で、電池式で動くシンプルなものです。ちょうど就職活動を行っていたころは、氷河期は脱したとはいえ、現在のような売り手市場ではなかったため、毎日説明会・一次面接・二次面接でヒーヒー言いながら、走り回っていました。

 時計に求められる信頼とは何でしょうか。わたしは、やはり第一に時計が正確であることをあげたいと思います。もし時計が遅れたり止まってしまったら、試験時間があと何分かもわかりませんし、約束の時間に訪問するのも難しくなってしまいます。

 現在使われている時計のほとんどは、水晶振動式の時計で、Wikipediaによると「一般的なクォーツ時計の誤差は1カ月で15~30秒程度である」となっています。

 水晶振動式の時計が一般的になる前に使われていた、ねじ巻き式振り子時計がわたしの実家にあるのですが、体感では水晶振動式よりずれが大きかったと記憶しています。従って、ずれてきたら時報に合わせてなおしていました。また、ねじ巻き式の時計は放っておくと止まってしまい、気がつくと時計が止まっていることがよくありました。そのため1カ月に1度はねじを巻き、止まらないようにしていました。ねじ巻き式の時計に対し、電池が内蔵された水晶振動式の時計は、数年は電池が持ちます。最近では10年持つものも出てきているようです。

●システムの信頼性の3つのポイント

 時計が止まってしまったり、無視できないほどずれてしまうことをシステムの故障と見立てると、水晶振動式の時計のほうが平均故障間隔が長いといえます。

システムの信頼性のポイント1:平均故障間隔を長くする

 ねじ巻き式振り子時計は止まってしまっても、備え付けのねじ回しで巻くことですぐ動き出します。それに対して電池式の時計は、乾電池式のものは自分で交換できますが、腕時計などで使われているボタン電池を使用しているものは、自分で交換できないため町の時計屋さんにいって電池を交換して貰うことになります。時計が止まってしまってから動き出すまでにかかる時間は、ねじ巻き式の時計のほうが短いと言えるでしょう。

システムの信頼性のポイント2:平均復旧時間を短くする

 平均故障間隔と平均復旧時間から稼働率が計算できます。稼働率は工夫次第で上げることは可能です。ねじ巻き式の時計は、ねじを巻くことを前提で出来ているため、簡単に時計が開けられねじを巻けるようになっています。これが時計のねじを巻くために開けるだけで、10本もねじを外さないと開かないような時計であれば、ねじを巻こうという気にもなりません。そういう意味では、保守性も大事な要素です。

システムの信頼性のポイント3:保守性を高める

 保守性は、大きく2つに分けられます。1つは壊れる前に保守をする予防保守と呼ばれるもので、そろそろ電池が切れそうと思ったらあらかじめ電池を交換してしまうという保守方法です。もう1つは壊れた後に保守をする事後保守で、時計が止まってしまってから保守をするというものです。時計の表示板が薄れてくるなど、電池の消耗がわかるのであれば、あらかじめ止まってしまう前に予防保守を行うことで、障害を未然に防ぐことができます。

 さてわたしが買った時計は高価な物ではありませんでしたが、社会人になっても数年は使おうと思って購入したものでした。みなさんも時計を買うときに、1週間、1カ月動けば十分と期待して買うことはあまりないと思います。5年、10年、もしくは一生その時計を使おうと思って買うことが多いと思います。

 システムを構築する際に必要となる信頼性も同じ事なのです、お客さんが使おうと思ったときに最低でもこれぐらいの間は使いたいと思っている期間があるはずです。その間は性能を発揮できなくてはいけません。

 コンピュータを使ったシステムでは、エラー発生時のリトライ機能、データの整合性チェックなどがソフトウェアで作り込むことも出来ますし、保守作業で必要になる点検用のログの収集も可能です。また、ハードウェアも自動診断機能・エラー通知機能・待機系への切り替え機能を持ったものを利用することで、高信頼性のシステムを構築が可能です。

 今回は、システムの信頼性として基本的なお話をしました。今回紹介した内容が、システムの信頼性を高めるすべての方法では無く、ほかにも様々な手法があります。みなさんが苦労して作ったシステムであれば、お客様に長期にわたり信頼して使っていただきたいものです。今回わたしが信頼性について紹介したことは、いくつかの失敗などから振り返ってこういったシステム作りが必要なのではないかと感じたことがきっかけでした。機会があれば、わたしの過去の反省や王道と思える手法の落とし穴などについても書いてみたいと思います。

Comment(0)