Что выбрать для дипломного проекта — монолит или микросервисы?

Здравствуйте!

Являюсь студентом 3-го курса бакалавриата, хочу в качестве дипломного проекта сделать веб-приложение. В будущем хочу работать как backend-разработчик.

Не могу определиться с архитектурой приложения: монолит или микросервисы? С одной стороны, монолитная архитектура позволит быстро создать приложение, с другой – популярность сейчас имеет микросервисная архитектура. Если сделать на микросервисах, то я тогда смогу изучить что-то новенькое для себя. К тому же будет что показать в портфолио.

Писать данный проект, к сожалению, буду я один. Это накладывает некоторые ограничения по сложности проекта.
В одной статье я прочитал, что микросервисы не стоит использовать в маленькой команде, тем более, с них начинать создавать проект.

Тогда встаёт вопрос: стоит ли для портфолио и в качестве дипломного проета делать веб-приложение, основанное на микросервисной архитектуры? Или это будет слишком сложно для одного человека, а для его портфолио вполне себе сойдёт монолит?

Проект планирую выложить в Github.
Планирую использовать стек:
Монолит: Python / Django
Микросервисы: Python / Flask или GoLang. Транспортные протоколы пока не выбирал.
  • Вопрос задан
  • 1171 просмотр
Решения вопроса 1
Микросервисы, в некотором роде, представляют из себя рефакторинг архитектуры монолита. Тюнинг, так сказать. Дело в том что выявление узких мест - непростое и не всегда можно определить в каком месте оно выявится.
Я советую начать с монолита, чтобы смочь завершить проект вовремя. Если останется время, то тогда можно еше поэкспериментировать и определить какую функциональность можно отделить в качестве самостоятельной единицы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Immortal_pony
@Immortal_pony
Если сервис разрабатывает команда из 30+ человек, то тогда имеет смысл подумать о том чтобы разделить его на микросервисы.
Это не ваш случай, спокойно пишите монолит.
Ответ написан
Комментировать
Amffore
@Amffore
студент, учу c#
Начни с простого. Сделай минимально рабочий проект, а уже потом экспериментируй. А то можешь остаться и без проекта и без времени.
Ответ написан
Комментировать
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Я не соглашусь с Immortal_pony. Монолит проще, несомненно, особенно если с нуля, но всегда есть популярный ныне Serverless (AWS/Azure/GCP). Все зависит от сложности приложения, которое вы собираетесь делать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы