Что такое микросервисная архитектура

«Что такое микросервисная архитектура» — вопрос из категории Архитектура, который задают на 58% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Микросервисная архитектура — это подход к разработке ПО, где приложение разбивается на небольшие независимые сервисы, каждый из которых выполняет одну бизнес-функцию.

Ключевые особенности:

  • Автономность: каждый сервис работает в своём процессе, имеет свою БД и API.
  • Гибкость: можно использовать разные технологии (языки, фреймворки) для разных сервисов.
  • Масштабируемость: сервисы масштабируются независимо.
  • Отказоустойчивость: падение одного сервиса не ломает всю систему.

Пример:

# Сервис "Пользователи" (FastAPI)
from fastapi import FastAPI

app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id, "name": "John Doe"}

Недостатки:

  • Сложность мониторинга и управления.
  • Накладные расходы на межсервисное взаимодействие.

Подходит для сложных, быстроразвивающихся систем, где важны гибкость и масштабируемость.