クラウドに基幹を移行して5年超経過

もう5年か、まだ5年というべきかちょっと判断に迷う。大抵の業務系のシステムがクラウドを始めるのは現実的には今年来年以降になるので、今の自分達の状況は多分、今後の業務系システムをクラウド移行したユーザの近未来になると思う。ので、予想的にまとめておく。本格的にクラウドを利用した業務アプリケーションの5年がどうなるかの一つの指針になるかと。

以降は別に統計データでもなんでもなく5年間を眺めてみて自分の印象。

・障害:大規模は5年で2-3回程度。一度は業務に影響が出て客先にお詫びに行った。AWSだったけど、サポートからは「もう回復してるのでチケットクローズね」みたいな話だったと記憶している。その後は大体四半期に一回程度のN/W障害。障害は普通に起きているし、オンプレと比べてどうか、という比較では細かい障害件数は減った気はしていない。ただし、「ドカンと来るでかい障害」は確実に減った。

・データ増加対応:問題ない。物理容量が足りませんということはあまりなく、単純に予算があれば普通にデータ増加には対応できている。もちろん作りの問題はあるので、計算時間がデータ量に対して非線形に増えるようなケースではアウトだと思うけど、別にそんなnewbな作りはしないので、この辺は本当に無問題。

・パフォーマンス:向上している。これはクラウドは「間接的」に寄与していると思う。自分たちだと稼働基盤をHadoopからSparkに変更しているところが大きい。Asakusaの最大のメリットであるポータビリティの高さによると思う。裸MapReduceとかHiveあたりで無理やりやっていたら、即死か移行コストが青天井だったと思う。(そもそも業務系バッチ中心のシステムなので裸MRとかHiveはありえないのだが、この期に及んで未だにMRだとか錯乱気味のプロジェクトはある)その意味ではあんまりクラウドは関係ないけど、同コストでそれなりパフォーマンスがでる環境に移行が容易というのはクラウドならでは。

・アプリケーションの寿命:確実に伸びた。後述するが、ハードサポート切れという「寿命を切るトリガー」がないので、ソフトウェア自体の耐用年数は実質的には長くなったと思う。特に機能にあまり変化のないものについては、自分たちのケースだと例えばEDIだとかは業界の共通プロトコルが変わらない限り、真面目に今後20-30年は保つのではないかと思う。

・コスト、特にTCO
特にTCOは間違いなく低減した。だいたい20%程度はオンプレに対して人件費を含めたトータルのコストは減少している。クラウド移行のメリットはコストであることは、この5年で明確になった。ただしこれはシステムの性格やクラウドの使い方によるところが大きい。割と頻繁に手を入れるシステムで、細かい障害対応が必須であれば、クラウドのメリットは低い。これは相対的なもので、単純に開発/運用人件費の人件費の総工数に対する割合が高いことによる。機能変更・追加があまりなく、障害対応も最悪リトライでなんとかカバーできるというシステムについてのみコストが下がる。ただし、別に半減するとかそういう感じではなく、20%-30%程度の低減になる。

一部の「クラウド推進派」はコスト削減がクラウドのメリットではないと言っているが、プラグマティックな主張とは言えない。割と明確にコストが下がることが明確に見込まれるものについて、ちゃんと見積もってクラウドに移行することが正しい。現状のクラウド移行は一種の「政治利用」の側面の方が強いが、これはエンジニアリングでもなんでもない。その意味で一部の「クラウド系意識高い系エンジニア」はエンジニアは廃業して政治家になった方が良いと思う。

・DevOpsとかは関係ない
海外はともかく日本では関係ない。ユーザのシステムの「実装主体」がユーザのプロパーでない限りはどんなに頑張ってもDevOpsはできない。現状のユーザ環境は優秀なエンジニア(リサーチャではない)にとっては、特にそのキャリアパスから見て魅力的ではないので、優秀なエンジニアはユーザ企業に定着することはない。したがって、クラウド環境だからDevOpsとかそういう話はあまり関係ない。

□大きな印象:以下はあくまで自分の印象。極端だなという意見もあると思うが、割と悲観的に見てる。

やはり、大きなと感じるのは「ハード保守期限切れトリガー」によるSIは確実に減るということだ。これは今後のクラウドに業務系システムが本格的に移行するのであれば、SI市場には影響があると思う。

1.クラウド化によるハード保守期限切れからの解放は、システム自体の寿命を伸ばす。そして「それに纏わるいろんなもの」の寿命も伸ばす。

クラウド化はハード保守期限切れによる強制システム更改を事実上なくす。結果、クラウドに乗ったシステムに対する大規模SIの機会は間違いなく減少する。その結果はいろいろな余波を生む。

ハード・リプレースは往々にしてシステム全体の刷新の良くも悪くもチャンスであり、表に出なかった不都合もそのまま「闇から闇に葬る」ことが可能であった。これは別段システムそのものの話だけではなく、システムに纏わる人の在り方、組織の在り方にも当てはまる。

IT投資は全てがクリーンという訳ではない。いわんや、従前よりも複雑化し、理解するために習得すべき技能も格段にレベルアップした現在のITでは、ユーザから見たときのシステムのブラックボックス化・不透明さは格段に増している。その中に押し込んだ、技術選択の機微から始まってユーザ社内の政治まで含めて、「大人の事情」はいくらでもある。システム更改はそういったものをうまく洗い流す機会であることは間違いない。そういう機会は減って行くだろう。

特に構築という意味では、クラウド化したところで、ユーザのSI屋依存と、IT業界のSIビジネス依存の共依存の構造には変化が起きているわけではない。基本的にはハード調達のあり方が変化したに過ぎない。結果として、そのままユーザ・ベンダー双方の関係もそのまま残るだろう。仮にそれが一種のもたれ合いだった場合には溜まる澱もそれなりに増える。

逆説的だが、ユーザのSI屋依存と、IT業界のSIビジネス依存の共依存の構造は「クラウドでむしろ強化」されるだろう。いいか悪いかは色々ある。「もたれ合い」と「コミュニケーションの容易さの確保」は表裏一体だ。が、ハード・リプレースの外圧的な変更要素の減少は、まかり間違うと腐った温床をいい塩梅に隠蔽することになるのは間違いない。

2.広い意味での「ミドル/環境」サポートが目につくようになる。

ハードの次にサポート問題になるのは果たしてミドルウェア/ソフトウェア環境になる。今ままではハードサポートが切れてハードをリプレースするタイミングで、ミドルや環境も「ついでに入れ替え」ていたのであまり顕在化しなかった。今後は「ミドルも次のハード・リプレースまで頑張って持たせろ」というゴリ押しが効かなくなる。

現状のSI屋のR&D投資余力は底をつきかけていて、ミドルウェアの開発はOSSにシフトしている。加えて、ユーザも「OSSでコストが安くなる」という幻想を持っているので、OSSの業務系への採用が進んでいる。OSSのvupのスピード感や下位互換性への無愛想さは、通常のプロダクトでは比にならない。もちろんOSSの下位互換サポートを売りにするSI屋も出てくるが、当然高コストになる。(そういうSI屋のエンジニアのモチベーションは置いておく)

クラウド化とOSSの普及はユーザにミドルサポート・環境まわりの「賞味期限」に目を向けさせるようになるだろう。例えばセキュリティパッチだったり、メニーコア対応のAPI変更だったり、従来のフレームワークのサポートのdepreciatedだったり、JVMのversionだったり、ユーザからすると「なんでそんなことの変更でシステムの変更になるの?」という今まであまり目立たなかったところが徐々に目につくようになるだろう。

その結果はアプリ側としてどれだけポータビリティを持たせるべきか?ということにもなる。これはアプリの資産性確保にどれだけ投資するか、ということに最後はつながる。ソフトは「ハードのおまけ」の慣習から抜けきれないところはこのコスト負担には承服しかねるだろう。ハード・リプレースSIのコストに埋没していた「ソフトウェアのコスト」がフリーランチではなくなる。どう考えるかユーザの考え方次第だろう。

3. 曖昧にしていたIT投資のあり方が問われる。
単純に「シャチョウ〜、もうハードがサポートできないとファミ通が言っております!仕方がないので一からつくり直さないとまずいっす。(なので金くれ)」攻撃ができなくなるということだ。運用投資や再構築投資の影に隠れたR&Dは基本的にやりづらくなる。さらに現状では、日経ビジネスあたりに「シニア世代を生かせ!」みたいな記事が出ておりまして、IT投資での効率化より、シニア層でピラミッド作った方が効率良い、という主張も容易になってしまっている。こうなってくると「効率向上のため」のIT投資のROIが真面目に問われるようになる。

実験的なITに、より金をかけての本番投入は減るだろう。おもしろいものを本番に投入していくということがゲリラ的にできなくなる。IT投資でリターン「だけ」を錦の御旗には現実はなかなか厳しい。ハード・リプレースの後押しは強力だった。・・・不思議なもので本来クラウドは小規模スタートを手軽にやるということが最大のメリットだったわけだが、ハード・リプレースの欠如によるシステムの延命化は、硬直した組織構造と相俟って「冒険のコスト」をさらに押し上げ、そのメリットを消し去るかのようだ。山のようなPoCは行われるが、本番にいざ使いますという壁はより高く、いつの間にかビックウォールと化す。

4.「現行」クラウドの位置付けがより明確に見えるようになる。
クラウド化は本来拡張性を担保する仕組みではあったはずだが、現状の日本ではまず間違いなく「既存システムの延命措置」としての機能する方が、残念ながら「効率が良い」ということになりそうだ。拡張性や今後の方向性という意味ではやはり、コストや仕組みも含めてエンプラでのシステムあり方そのものから見直さないとクラウドでの「システムの拡張性」は生かせないように思う。

クラウド・ネイティブって言い方はもはや語弊しかないので、良い言い方ではないが「クラウドでしかできない仕組み」を作って初めてエンプラシステムのクラウド化のメリットが取れたと言える気がする。既存を「徐々にクラウドに移行して行きます」というのは、そう言っているその時点でアウト。単なる延命措置に終わるだろう。クラウドという最新に思われた技術がむしろシステムの刷新の壁になるというのは皮肉なものだが、まぁ世の中そんなものかもしれない。

クラウド環境は確かに拡張性が高く、いろいろなトライができる最適な環境といえる。特に開発環境を簡単に構築・パージできることはITへの試行錯誤の機会を大幅に増やすことが可能になる。ただしこれは、「どう試行錯誤するか?」について明確なイメージを事前にもっていることが前提で、そうでなければ、クラウド環境は実は既存システムの「非常によくできた生命維持装置」として機能するにとどまるだろう。

まぁ当たり前の話だが、システムに投資するなら「ハード・リプレース」という隠れ蓑は使わずに、ちゃんとリターンが客観的にわかる形で行いなさいよ、とこうなるわけだ。経済が右肩さがりの状況で、思い切った投資がさてできますか? クラウド化したシステムからはこういう試金石が投げ返されることになる。日本の高齢化はシステムの高齢化であり、クラウドはどうやらその流れを加速させるかのようだ。はてさて。