電子手帳とKubernetes
2021年09月29日 水曜日
CONTENTS
デジタルデバイス黎明期のソフトウェア事情
今を遡ること30年ほど前、筆者はとある組み込みシステムの開発に携わっていたことがありました。そのシステムは電子手帳と呼ばれたスマートフォンのご先祖様のような製品だったのですが(無線、有線問わず通信機能はありませんけど)、これが今考えるとなかなかしびれる環境で、
- OSは存在しないスタンドアロンシステム
- CPUは聞いたことがない、もしかしたらメーカーオリジナルのもの
- もちろん開発言語など存在しない。アセンブラすら存在しない
- シリーズ製品だったがソフトウェアの資産継承は存在しない。モデルごとにCPUを始めハードウェア仕様が変わるから
という代物でした。
組み込み開発なんてそんなもの、とおっしゃる方もおられましょうが、電子手帳のようにスケジューラやカレンダー、電話帳などなど、そこそこ複雑なアプリケーションがつまったシステムすら組み込みスタイルで開発されていたことには、この種の開発に馴染みがなかった当時の私はだいぶ面食らったものです。もっとも、30年前といえばまだテレビはアナログのブラウン管が当たり前、液晶パネルはまだ小さく、大画面薄型パネルは「夢の壁掛けテレビ」と呼ばれた時代です。インターネットにしてもようやく日本に上陸したばかりで、民生品の通信機器は当然ピーガーうるさいアナログです。身の回りにデジタル機器を置いている人は一部のマニアに過ぎなかった時代であり、電機業界がデジタル化に取り組み始めた頃だったことを考えると、さほど驚くにはあたらないことかもしれません。
ちなみに、組み込み開発の世界にOSがまったくなかったわけではありません。当時でもOS-9やITRONが採用された幸せなプロジェクトも存在したようですが、多くは業務用機器に使われていて、民生品については少なくとも私が見聞きする範囲ではまだOSの概念はなかったように記憶しています。もっとも、時代によらず組み込み開発にOSが存在しないのは珍しいことではありません。なにせ物理的に小規模でかけられるコストも限定的なシステムです。余計なオーバーヘッドは許されません。むしろ、最近のようにテレビはもとよりエアコン、冷蔵庫、無水調理器、掃除機、オーディオ機器、洗濯機などなど、家電がことごとく無線接続され、おそらくはOSが搭載されている時代になろうとは、そのことの方が驚きです。
エッジコンピューティングが進歩すると、もっとコンパクトな思いもよらぬところまでOSが行き渡るのかもしれませんね。
ふと振り返ってKubernetesに思うこと
さて、そんなOSがないことも、開発言語がないことも、それぞれ驚きでしたが、なによりもソフトウェア資産を継承することに興味を持たれていないことが一番の驚きでした。今のソフトウェア開発の規模から考えると極めて小規模なシステムではありますが、生産性が違います。プログラミング言語はC言語が主流でしたし(だから生産性が低いとは言いませんが)、ちょっとした開発にも今とは比べ物にならないぐらい時間をかけていました。テスト技法にしても成熟しておらず、バイナリサーチは複雑でバグるかもしれないからシーケンシャルサーチにしろ!とか言われたのもよい思い出です。
もしかしたら、開発を担当したISVには思うところがあったかもしれません。ですが、発注元のメーカーがソフトウェア資産を継承してより洗練されたアプリケーションを成長させることよりも、単価の安いCPUを都度選定して製造原価を抑える方が重要であると判断すれば、それもまたビジネスです。おそらくソフトウェアの開発費用が製造原価に締める割合は本当に小さかったのでしょう。
それ以上に、OSが存在しない環境ではハードウェアの変更がソフトウェアに与える影響が大きすぎて、都度開発してもさほど変わらなかった可能性もあります。
ところで、Kubernetesはクラウド時代のOSと表現されることがあります。コンピューティングリソース、ストレージ、ネットワークを抽象化し、インフラの規模、仕様、構成が変わっても、統一的なオペレーションで運用を可能にしてくれる存在です。最近、Kubernetesが登場する前の運用スタイルというのは、あの電子手帳のようなものだったのだと感じます。資産として継承されていなかったのはソフトウェアではなく運用ノウハウという違いはありますが。
従来の運用スタイルとあの電子手帳を照らし合わせてみると、とても良く似ています。
- 運用ノウハウを標準化して継承するよりも、人を増やしたほうが安い
- 運用ツールを標準化するよりも、個別最適化した方が合理的
- 優れた運用サービスを購入するよりも、自社の人材を育成する方が有益
- 汎用的なインフラよりも、システムに最適化されたインフラを都度調達するほうが安定的
なんとなく、ようやく当時の電機メーカーの考えがリアルに想像できるようになった気がします。システムが単純であれば、たぶん間違っていないのです。単純なら。
「なぜ電子手帳にOSが必要なのか」と「なぜKubernetesが必要なのか」は、とても似ています。組み込みシステム全てにOSが必要なわけではないでしょう。同じように、すべての運用にKubernetesが必要ではありません。しかし、電子手帳はその後発展してPDAと呼ばれるようになり、市場が急速に拡大するにつれ製品として複雑化し、それに応じたPalmやザウルスといった製品が市場を席巻していきました。ニーズの複雑化と市場の高度化に対応するには、やはりOSが必要で、ソフトウェアを資産継承していく必要があったということでしょう。対応できなかった製品は競合との競争に勝てず、限定的な市場にとどまることになりました。
我々はとどまることなく、成長を続けていきたいものです。