オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

アプライアンス開発は楽しい!?

»

今日は久しぶりに1日会社にいました。開発仕事でたまっているものがたくさんある中、昨日のクーポンの集い(?)で、急遽7月頭にバンコクに出張することになり、それまでにある製品を仕上げなければ、ということで、優先順位を変更し(ほとんど毎日変更している気がしますが・・・)、アプライアンス開発です。

A1
なんとも、バランスが悪い積み上げなのですが、アプライアンスを2〜3個同時に開発しているとこんな感じになります。。

アプライアンスでも、普通にハードディスクを入れて、標準的なOSを起動して、という製品ももちろんありますが、大抵はフラッシュメモリー(CF,SD,オンボードなどハードによっていろいろ)に、コンパクトな状態でOSやプログラムを格納し、RAMディスクで稼働させることが多いのことが特徴です。理由はいくつかあるのですが、

・ハードディスクは壊れる心配がある
・単機能なので容量はそれほど要らないことも多い
・価格を下げるため
・消費電力

という感じでしょうか。インテル系のCPUを使う場合に比べ、ARMなど組み込み向けのCPUを使う場合はますますハードディスクを使う割合は減る感じでしょう。

製品を使うときにはハードディスクを使っていないことは、振動の心配などが減るため、気楽に使えますし、ハードディスクを使わない製品は大抵、電源を簡単に切ることができるので、便利です。ところが、開発をする際には意外と不便なのです。。

ハードディスクが使える場合は、開発中は開発環境も丸ごと入れて、簡単に「ソースの修正・コンパイル・動作確認」を繰り返すことができます。ハードディスクを使わない環境では、開発環境を入れることは容量の問題でまず無理で、別のコンピューターで「ソースの修正・コンパイル」を行い、それをRAMディスクにコピーして確認するか、あるいは、フラッシュメモリーにOSごと格納し直して、動作確認をする感じになります。フラッシュメモリーにOSごと格納し直すのは、容量にも寄りますが、意外と時間もかかり、さらに、OSから再起動も必要ですので、ちょっとした修正が面倒です。

そこまで苦労してでもアプライアンスを開発する理由があります。ソフトウェア製品は、汎用のパソコンなどにインストールしてセットアップする必要があります。OSや環境との相性の問題も起きやすく、稼働するまでのサポートが大変です。もちろん、当社でいえばProDHCPなどのように、データセンターできちんと構築して、あとは連続稼働を続けるようなタイプの製品はソフトウェア製品のメリットもあり、たとえば仮想環境で簡単に丸ごと移動ができたり、ハードの更新で性能向上ができたりします。しかし、不正接続検知システムのIntraGuardian2のようなシステムでは、セグメントごとにソフトウェアのインストールが必要となると導入がとても大変になってしまいますし、信頼性も下がってしまう恐れがあります。他にも、回線シミュレータのEthdelayシリーズのように、ネットワークポートが複数必要なシステムも、アプライアンスなら機材の準備の心配が不要です。

まあ、ビジネス的な理由だけでなく、開発者としては、アプライアンスの環境をいかに作るかなど、腕の見せ所も増えますし、こういうことが好きな人にとってはとても楽しいのです。今日も詳しいメンバーにサポートしてもらいながら、環境を作って綺麗に形になっていくの感じながら作業をするのはとても楽しいものでした。実は当社では、既存のシステムを、ハードディスクを使わないで運用できるようにするような仕事もやっていたりします。

アプライアンスに使えるようなハードウェアがなかなか普通に販売されていないため、一般の人には手を出しにくいところが残念です。秋葉原とかで簡単に買えると、自宅用とかでもいろいろ構築できるのですけどね。

Comment(0)