マイクロサービスアーキテクチャ は、アプリケーションが小さく、孤立したサービスから構成されるソフトウェアシステムを構築するアプローチであり、各サービスは特定のビジネス課題に対して責任を持ち、他のサービスとは独立して開発およびデプロイされます。
利点:
欠点:
Python (Flask)によるマイクロサービスのRESTスケッチの例:
from flask import Flask, jsonify app = Flask(__name__) @app.route('/user/<int:user_id>') def get_user(user_id): return jsonify({"user_id": user_id, "name": "Ivan"}) if __name__ == "__main__": app.run(port=5001)
重要な特徴:
マイクロサービスは同じデータベースで動作できますか?
これはモノリスからの移行段階では許可されますが、各サービスが依存関係を最小限に抑え、開発の独立性を保つためにデータを独自に保持するべきという理念に反しています。
マイクロサービスアーキテクチャにDockerを使用する必要がありますか?
いいえ、Dockerは展開と隔離を容易にしますが、マイクロサービスはコンテナ化なしでも実現できます。例えば、仮想マシンや別の物理サーバーを使用することができます。
サービス間のAPI契約が壊れた場合、CI/CDパイプラインで全てが緑の場合はどうなりますか?
API契約の障害はサービス間のインタラクションにエラーを引き起こしますが、これは統合テストを通じてしか検出できません。CI/CDでの緑のビルドは、異なるサービスのバージョンが互換性があることを保証しません。