個人的に最近のマイクロサービスとかサーバーレスとか,FaaSの話題にもやもや感があったのだが,ズバリ明解に書いてある記事を見つけた。
IaaSに戻るのを待ってました - orangeitems’s diary
開発手法も運用も全部様変わりしてまでも、便利さを取ったとしても、結局コストダウンにならない。むしろ利用し続けるためには新しいプラットフォームに慣れ親しんだ技術者を集めるか育てるかしなくてはならず、その上でその技術が世間的に廃れたら、技術的負債の出来上がりです。マイクロサービスに限らずそんな技術はたくさんあります。
そう,マイクロサービスのメリットを説明した記事がいろいろあったけど,
- ECサイト系のWebシステムだったら,そもそもマイクロサービスで開発するぞーって意気込むほど作り込まないのがコツ。アプリ自体は使い捨て。
- 基幹系システムであれば,マイクロサービスなんてやったらDBのパフォーマンスが上がらない。
マイクロサービスは,相互の依存関係が弱いサービスを複数起動して,それぞれ勝手にリリースしていくビジネスモデルで効率を発揮する。AWS本体がやってるようなビジネスモデル。
単一のシステムをわざわざマイクロサービス化するなら,ポイントは一つ。「一切作らない部分を切り出す」のです。そうやってDBや認証周りが分割されてきた。
FaaSに関してはどう考えてもVendor lock inです。
マイクロサービスやFaaSの話は,IT情報発信の中心である米国と,日本との技術背景の違いが大きいとも感じる。
数字で見る 2020年における Java の現状 | The IntelliJ IDEA Blog
JetBrainsの2020年の記事をみると,Javaの使用率はアジアが圧倒的。米国はもっと軽い言語で作っている。米国に合わせるなら,ビジネスの仕方から全部米国に合わせないと効率が悪い。そもそも日本のほとんどの企業は技術的には他社に追随する形になっている。米国企業は新しい技術を周りに振りまくことで情報料をとれる。それを利用する側は情報料を払うのです。
元記事にもあるけど,結局は,「何を作るか」。「要件」に集中しないと,永遠に「同じシステムを別の技術で作り変えました」から抜け出せない。