Руководство крупного интернет магазина у которого постоянно растёт пользовательская база и количество заказов рассматривает возможность переделки своей внутренней ИТ системы на основе микросервисов.
Вас пригласили в качестве консультанта для оценки целесообразности перехода на микросервисную архитектуру.
Опишите какие выгоды может получить компания от перехода на микросервисную архитектуру и какие проблемы необходимо будет решить в первую очередь.
Переход на микросервисы позволит сократить время, увеличить частоту выкладки и сократить время на роллбек (в случае ошибок не выявленных на стадии тестирования).
Переход на микросервисную архитектуру позволит гибко горионтально мастшабировать продукт следуя за требованиям бизнеса.
Выше надежность. Компоненты автономны, соответсвенно могут бы лучше покрыты тестами.
Тем не менее, переход связан и с рядом проблем. Переход повлечет изменение текущих процессов внутри компании и между сотрудниками в процессе разработки ПО.
Переход потребует разработки системы мониторинга и логирования, т.к. отладка продукта в противном случае будет крайне затруднена.
Также всплывает вопрос оркестрации и развертывания сервисов на требуемую зону (прод, тест). Более полное тестирование микросервисов потребует дополнительного ресурса для команды разработки.
Взаимодейтсвие между сервисами наиболее веротяно потребует авторизации между ними при взаимодейтсвии для обеспечении требуемого уровня безопасности.
Работа с микросервисами отчасти развязывает руки разработчикам в части выбора инструмента, что в конечном счете может привести к зоопарку языков, фреймворков и технологий. С другой стороны, в некоторых кейсах, это может являться и плюсом. Например переход на более "подходящий" язак програмирования для достижения нужной производительности исполнения кода. Здесь, на мой вгляд, нужен разумный контроль со стороны менеджера продукта/проекта.
Учитывая плюсы и минусы микросервисной архитектуры и определяется целесообразность перехода учитывая план и цели развития продукта.