Микросервисная архитектура — подход к построению программных систем, где приложение состоит из небольших, изолированных сервисов, каждый из которых отвечает за определённую бизнес-задачу, разрабатывается и деплоится независимо от других.
Преимущества:
Недостатки:
Пример REST-макета микросервиса на Python (Flask):
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 pipeline всё зелёное?
Сбой в API контракте приведёт к ошибкам взаимодействия между сервисами, которые можно выявить только интеграционными тестами. Зеленый билд в CI/CD не гарантирует, что разные версии сервисов совместимы между собой.