проект Интернет-магазин (не банальный)
Мне нужно спроектировать приложение с микросервисной архитектурой. Основное приложение хочу написать на C#, а все остальные микросервисы на Golang. Общение между сервисами будет происходить по протоколу gRPC, а клиент будет обращаться к приложению по GraphQL. Так же необходимо иметь несколько БД для основных данных PostgreSQL, для логирования ClickHouse, а так же для кэширования данных использовать Redis или Kafka. Необходимо в некоторых сервисах организовать потоковую передачу данных с помощью Kafka Streaming и ksql. Необходимо использовать HTTP 2.0
Что скажете по задумке? Может что посоветуете)
Заранее благодарю за помощь!
А микросервисы точно нужны?
в моем случае, да, т.к. я логику когда описывал там выходит порядка 9 сервисов отдельных по смыслу и по работе с бд. Да и к тому же хочется попрактиковаться с микросервисами, понятно что в контексте пэт проекта это излишне для решения этой задачи, но все же)
Наоборот, микроскрвисам в пет проджектах и место) чисто потренироваться
В чем смысл, если скорее всего будет неправильное разделение
Чтобы понять, когда их избегать в реальных проектах
Почувствовать боль без реальных дизастеров которые съедят бабло)
Начинать надо с монолита, а разделение на микросервисы это второе дело, до него может и не дойти никогда
ну это пет-проджект, там другие правила
https://highload.ru/moscow/2019/abstracts/5626 вот я послушал его, изучил презентацию и хочу что-то подобное сделать, в контексте большого приложения eCommerce, естественно у меня намного больше чем 9 сервисов выйдет в конечном итоге
это я тоже неплохо понимаю, можно и на soa остаться и ок работать будет, но вакансии на которые я хочу попасть там везде микросервисы и highload проекты)
А ты кем хочешь попасть? Архитектуром чтоль?) В среднестатичстической микросервисной компании обычного разраба сажают в команду какого-нибудь микросервиса, и он там работает, может даже не особо вникать в то, как это в целом работает. Я к тому, что незнание устроиться тебе может не помешать.
А мне очень интересно не только сама разработка, но и значение архитектур для себя, это как читать художственную литературу для общего кругозора)
Ну так ты устройся и там интересуйся и инициативу проявляй. Так и прокачаешься.)
а сколько моков дизайн интервью ты смотрел?)
мой опыт 3+ года в разработке, я уже на разных проектах кроме highload поработал, но так и не потыкал сам все((
не совсем понял про что ты
во всякие там гуглы и прочие манго (в прошлом фаанги), один из этапов собеса может быть system design interview, где тебе дают задание типа составить архитектуру приложения спотифай или инстаграмма. И ты там в реальном времени этим и занимаешься
Кстати, что такое "Основное приложение хочу написать на C#"? Имеется в виду десктоп-приложение?
ты щас пхп продавать будешь, да?)
что-то типо того, я до конца не решил, все на стадии проектирования, может быть даже на ларке быстро сделаю общение с клиентом
в таком случае не так много
Не, я хотел предостеречь, что если это какой-то центральный "core" сервис, то проект уже неверный. Сметило слово "основное".
а что посоветуешь для core сервиса?
Его отсутствие.)
практика с микросервисов - это про то как тебе 9 команд организовать что бы могли автономно работать. Это очень важно и это то ради чего микросервисы в целом стоит рассматривать. Помни об этом когда играешь в распределенные системы
сore сервис это что?
про то для чего микросервисы в бизнесе я понимаю, в платежных системах работал ранее, там и были "разные" команды под каждый микросервис
core слово я повторил за Валентином, и так приложение которое будет общаться с клиентом и решать далее в какой сервис ему дальше идти с этими данными
а зачем? вставляешь какой-нибудь graphql mesh или прочие graphql federation, или api gateway/bff
а, ну это api gateway "по правильному" )
А в чем проблема этой архитектуры? Да, она далеко не всегда нужна, но есть кейсы, когда она дает очень хорошую гибкость системе.
Слушай, вот тут спорно. На питоне смотрел - где-то в половине вакансий хотят микросервисность. При этом лиды даже спросить ничего по ним не могут. Максимум про пару паттернов типа gateway и сагу. Ни про разделение на домены, ни про связность и связанность никто ничего не спрашивает. Просто блядь сектантство какое-то.
или карго культ)
И да, мне прямо в глаза говорили что не хотят меня брать потому что опыта микросервисов не было.
При этом в одной конторе "лид" показал мне каркас одного из микросервисов. Я посмотрел на этой поделие и понял что не хочу у них работать.
если в задании "придумка" есть микросервисы — значит нужны
Обсуждают сегодня