Какие последние тенденции в архитектуре сервисов вы знаете
Что проверяют
Знаете ли вы, куда движется экосистема .NET, и можете ли оценить подход по цене, а не по моде. Следом спрашивают, что из названного вы внедряли сами и что выбрали бы для конкретного проекта.
Как отвечать
Общие тенденции назовите через инструменты .NET:
- модульный монолит: одно приложение на ASP.NET Core, модули с отдельными
DbContextи явными контрактами между собой. Популярен как ответ на усталость от десятков мелких сервисов и оставляет путь к выделению сервиса позже; - событийная архитектура: обмен через RabbitMQ, Kafka или Azure Service Bus, паттерн outbox для надёжной публикации, идемпотентные обработчики. Уместно заметить, что авторы MediatR и MassTransit перевели новые версии на коммерческие лицензии, и команды пересматривают зависимости;
- .NET Aspire: оркестрация распределённого приложения при локальной разработке, общие настройки сервисов, дашборд с логами и трассами из коробки;
- наблюдаемость: трассировка и метрики в .NET построены на
ActivitySourceиMeterи экспортируются через OpenTelemetry, так что это уже стандартный путь; - облегчённые сервисы: Minimal APIs, gRPC, Native AOT ради быстрого старта и меньшего образа контейнера, что важно для serverless и частого масштабирования;
- serverless: Azure Functions в модели isolated worker, где код функции живёт в отдельном процессе и не привязан к версии рантайма хоста;
- шлюз на YARP: обратный прокси от Microsoft в виде библиотеки, который настраивается кодом и конфигурацией.
Под конец сформулируйте позицию: для небольшой команды модульный монолит с outbox и OpenTelemetry часто выгоднее кластера микросервисов.
Где спотыкаются
Отвечают набором общих слов. На собеседовании по C# «микросервисы и Docker» без инструментов .NET звучит слабо.
Не знают ограничений Native AOT: рефлексия и динамическая генерация кода урезаны, часть библиотек и возможностей EF Core без доработок с ним не работает.
Не отделяют прочитанное от сделанного. Честное «на проде не пробовал, но в пет-проекте поднимал Aspire» лучше общих слов.