💻 ITパスポート | テクノロジ系
マイクロサービスとは?
アプリケーションを「小さな独立したサービス」の集まりとして設計するアーキテクチャ。各サービスは独立して開発・デプロイ・スケールができる。
🎬 こんなシーンを想像
大手ECサイトのDさんのチーム。「商品検索」の機能を改修する際、昔は全機能が一体になったシステムを全部テストしてリリースしていた。今は「検索サービスだけ」を改修して独立リリースできる。
…これがマイクロサービスが生んだ「独立して動かせる」世界。
🏗️ モノリシック vs マイクロサービス
✅ マイクロサービスの主な利点
① 独立デプロイ(部分リリース)
「決済サービスだけ更新」が可能。全体を止めなくていいので、リリース頻度を上げられる。継続的デリバリー(CD)と相性が良い。
▼
② 障害の局所化(影響範囲を絞る)
「注文サービス」が落ちても「商品検索」は動き続ける。モノリシックなら全体が止まる。
▼
③ 独立スケール(必要な部分だけ増強)
「決済サービスだけ」繁忙期にサーバーを増やせる。全体を増強する無駄がない。コスト効率が高い。
⚠️ ひっかけ注意ポイント
モノリシックアーキテクチャと混同する
モノリシックは「全機能が一体のアプリ」。マイクロサービスは「機能ごとに独立した小サービスに分割」。正反対の設計思想。
マイクロサービスは常に優れている?
小規模システムでは複雑になりすぎて逆にコストがかかる。「サービス間の通信管理・監視・テスト」が増える。大規模・頻繁な変更が必要な場合に効果的。
コンテナ・DockerとAPIの混同
マイクロサービスはアーキテクチャの設計思想。コンテナ(Docker)はそれを実現する技術の一つ。「マイクロサービス=Docker」ではない。
SOA(サービス指向アーキテクチャ)との混同
SOAもサービスに分割する考え方だが、マイクロサービスはより小さく・軽量・独立性が高い。SOAは大きめのサービス単位で分割する。
🧠 覚え方(無理やりゴロ)
マイクロサービス = マイ(自分だけの)クロ(小さい)サービス
「マイ(自分)の小っちゃいサービスが集まって一つのアプリ」
小さい・独立・バラバラ → これがマイクロサービス
モノリシック=大きな一枚岩 / マイクロ=小石の集まり