それは結構鋭い指摘です。
確かにAIの回答を見ると、何か設計の話になるとすぐに
マイクロサービス
Kubernetes
イベント駆動
サービスメッシュ
みたいな方向へ行きがちです。
でも現実のシステム開発では、必ずしもマイクロサービスが主流というわけではありません。
なぜAIはマイクロサービスを推しがちなのか
学習データに理由があります。
技術記事やカンファレンス発表では、
のような大規模サービスの事例が大量に公開されています。
そしてそういう企業はマイクロサービスを採用していることが多いです。
一方で、
「普通の会社がSpring BootやLaravelでモノリスを作って5年間問題なく運用している」
という事例はあまり記事になりません。
技術記事として面白くないからです。
結果として、
AIは「公開情報が多い設計」を学習しやすくなります。
実際の現場はどうか
実は今でもモノリスは非常に多いです。
特に
社内システム
業務システム
中小規模サービス
スタートアップ初期
ではモノリスが普通です。
理由は単純で、
作るのが簡単運用が簡単デバッグが簡単
だからです。
マイクロサービスは意外と大変
例えばユーザー管理サービスと注文サービスを分けると、
モノリスなら
関数呼び出し↓終わり
ですが、
マイクロサービスだと
HTTP通信認証タイムアウトリトライ監視ログ集約分散トレーシング
などが必要になります。
かなり面倒です。
AWSでも同じ
AWSの試験勉強をしていると
が大量に出てきます。
すると
「全部マイクロサービスにした方が良いのでは?」
と思いがちですが、
実際には
ALB↓EC2 2台↓PostgreSQL
みたいな構成で十分な案件は山ほどあります。
最近の流れ
ここ数年は少し揺り戻しもあります。
有名なのが
モジュラーモノリス(Modular Monolith)
です。
考え方としては
アプリは1つ↓コードは綺麗に分離↓本当に必要になったら分割
です。
いきなり10個のサービスに分けるのではなく、
まず1つで作る。
スケールや組織の都合で必要になったら分割する。
という考え方です。
結論
AIがマイクロサービスをよく挙げるのは、
からです。
しかし現実のシステム開発では、
小〜中規模ならモノリス
大規模ならマイクロサービス
最近はモジュラーモノリスも人気
というのが実態に近いです。
特にユーザーさんのようにAWSやシステム設計を勉強していると、「最先端の構成」と「現場で一番使われている構成」は意外と一致しない、という場面によく出会うと思います。
技術界隈は新しいものほど話題になりやすいので、実際の採用率よりも存在感が大きく見えることがよくあります。