orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

世の中には2種類のシステムがある

 

世間から見たら、同じコンピューターシステムでくくられてしまうんだろう。しかしインフラエンジニアから見たら、厳然と違う2種類のシステムがある。

 

1)不特定多数のユーザーをリアルタイムにさばくシステム

2)限られたユーザーをリアルタイムにさばくシステム

 

この他にも、定期バッチ、監視、バックアップなどシステムのために存在するシステムもあるがこれは世間から見えていないので除外する。

本当にこの2つである。

私は前者に数年携わった経験があるが、これがしんどい。不特定多数が読めないと準備しようになく、昨今のクラウドの登場で物量作戦を取ることが可能になったが、かなり精神力も技術力も必要な分野だ。

先進的な技術発表をする技術系企業はだいたいこの(1)のパターンだ。おお、この著名なサービスはこういうアーキテクチャーになっているのかぁ、と技術者として感心する。

巨大なサービス要求を安定的にこなす(1)のようなシステムは、設計もアクロバティックであったり、最新の技術分野に手を出していることも多く、業界全体のフラグシップのような存在にもなりがちだ。

ところがである。世の中のシステムは(2)のほうが断然多い。仕事の種類が千差万別で、それぞれにシステムを構築するケースが大変多いからだ。業界ごとに仕事の仕方をきっちり全部揃えられれば、汎用的なSaaSなどが登場するのだろうが、特に日本の企業は自社のワークフローにポリシーがあり、なかなか仕事の仕方をシステムに合わせることはしない。むしろシステムが仕事に合わせろとなる。そうなると、会社ごとに(2)が無数に作られるということになる。

(2)の場合は複雑な設計は不要となる。負荷も利用背景もかなり限定されるので、多少余裕を持って設計してやれば5〜10年単位でほぼ問題ない。どこやらの有名システムが採用しているような先進的な仕組みなど無用。それより安定して動けばいいので、かなり古めかしいシステム構成で十分なのだ。

 

技術志向で、いつも鉄火場にいたいと思うインフラエンジニアは(1)に向かうだろう。または、派手な場所がいい、技術者が主役になれる場所であれば向いているだろう。

ところが、いざワークライフバランスやビジネスを考えると(2)のほうが良い。なぜならば安定しているからだ。そして安定しているシステムを保守すれば、定収入が得られる。また、断然、システムの数も多いから市場も大きい。

ベンダーが先進的な事例を発表したり、有名なサービスの中の人がアーキテクチャーをドヤるたびにモヤモヤするのである。それはすごい。実装できて動いているのはすばらしい。

ただ、自分の仕事にするのは勘弁かな、と。

(1)は、誰かに任せておきたい。それで散々戦った後にできた成果物で「この構成にしたら大丈夫だよ」みたいなテンプレートを世間の誰でも使い出したときに、やっと(2)に取り入れるか、みたいな世界で生きていたい・・。

横目で有名なサービスがエンタープライズな超最先端構成を誇っている横で、マイナーなたくさんのシステムの横でのほほんと生きるインフラエンジニアに、私はなりたい。