#c# #architecture #microservices
#c# #архитектура #микросервисы
Вопрос:
В последнее время я читал о микросервисах, и я действительно начинаю увлекаться этим. Я хотел бы перенести приложение на использование микросервисов, но есть одна часть нашей системы, которая, я не уверен, действительно соответствует шаблону.
Приложение, которое мы разрабатываем, позволяет пользователям запускать длительные симуляции, которые могут выполняться неделями. Симуляции обрабатываются данными в реальном времени и требуют больших ресурсов (на мощном рабочем столе может выполняться 2 или 3 симуляции одновременно). Один пользователь может запускать несколько симуляций, и многие пользователи могут получать доступ к результатам и просматривать их по мере их развития. Симуляции должны продолжать выполняться, даже когда пользователи вышли из системы.
Как что-то подобное вписывается в шаблон микросервиса?
Комментарии:
1. я бы сказал, что одна служба для управления симуляциями и одна служба для их запуска — в идеале с автоматическим масштабированием, поэтому вы запускаете один экземпляр службы для каждого моделирования и удаляете его после завершения и экспорта результатов. хотя я бы сказал: если моделирование достаточно сложное , оно не будет микросервисом по определению.
2. Я был просто поражен, запустив демонстрационный проект eShopOnContainers в Visual Studio и увидев, что все зависимости, sqlserver, mongdb, redis и более 10 других сервисов просто запускаются и запускаются одним щелчком мыши. Я просто подумал: «Я хочу этого!» Сегодня мы тратим сумасшедшее количество времени на то, чтобы настроить среду разработки. То же самое в производстве. Мы тратим слишком много времени на развертывание на новых серверах. Автоматическое масштабирование всего этого кажется мечтой. Пока это не анти-шаблон, и мы не стреляем себе в ногу, я в порядке, если это не микросервис, скажем.
3. это не программная проблема, которую вы описываете, а культурная. ни одно техническое решение не окажет на это никакого влияния, кроме строгого перехода на CI / CD. после настройки развертывание выполняется нажатием одной кнопки. но больше всего вам хочется обеспечить соблюдение документации в вашей команде.