Микросервисы с нуля / Семен Катаев (Авито)

preview_player
Показать описание
Приглашаем на конференцию HighLoad++ 2024, которая пройдет 2 и 3 декабря в Москве!
--------
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем
17 и 18 мая 2021. Москва, Крокус-Экспо

Тезисы и презентация:

Мой доклад осветит набор основных инструментов из экосистемы cloud native compute fundation для перехода к микросервисной архитектуре. Я расскажу, что важно не забыть сделать при таком переходе и какие могут появиться проблемы: от изменений в оргструктуре компании до смены парадигм в разработке.
...

Рекомендации по теме
Комментарии
Автор

коротко - несколько раз подумайте, прежде чем идти в микросервисы

SergeiCherkai
Автор

коротко:
- рантайм для контейнеров (goto cncf);
- квоты в рантайма контейнеров (goto cncf);
- свой контейнер реджистри;
- api gateway (goto cncf);
- писать sdk для своих микросервисов;
- кодогенерация клиентов для микросервисов;
- выбрать протокол (goto cncf);
- service proxy (+ envoy контейнер; goto cncf);
- jaeger для трейсинга;
- service mesh (goto cncf);
- свой шаблон сервисов (см. доклад Александра Лукьянченко);
- kafka & pulsar для eventual consistency.

OstretsovArtem
Автор

Прикольно звучит. Набрали туеву хучу инженеров и думаем, чем бы их занять? А, точно, микросервисы же!!!

WarbeastMr
Автор

Монолит проверен временем, найти по нему специалиста программиста несложно+недорого по цене, достаточно иметь сис.админа для обслуживания. А вот микросервисы это новый подход требующий высокой квалификации архитектора, которого сложно будет найти+дорого содержать ДевОпса которые тоже на дороге не валяются и тд. Вся эта чехарда с новыми технологиями разработки не оправдана, а лишь усложняет работу программистов и тех-менеджеров.

maksimivanov
Автор

Часто забывают, что наверное самой крутой фитчей микросервисов является Version delivery. Это когда ты можешь баллансировщиком указать долю нагрузки поступающую на новую версию сервиса одновременно продолжая эксплуатировать стабильную версию. Этот подход работает и при переходе от монолита к микросервисам, чертим карту-план перенаправления функционала в микросервисы и поехали.

sodz
Автор

Пипец 1К микросервисов в авито. Что там может быть такого на сайте объявлений? Современное программирование превращается в какой-то нелепый аттракцион для усложнения себе жизни с последующим его героическим преодолением.

alexeybobr
Автор

Говорит используйте кирпичики готовые, только мы сделали везде самопис))6

Илья-фгы
Автор

Напоминает какое-то сравнение agile vs waterfall
да никто никогда не писал монолиты, который запускается единым процессом и все статически линкуется.
Точно также раньше в деплое была пачка всевозможных компонент, которые имели свой релизный цикл и все свое, другие команды просто ходили туда по API
По авито складывается ощущение, что микросервис = класс(или небольшой набор классов), но потом постоить цепочки вызовов кто в какой сервис ходит становится мегапроблематично.

SlavaVy
Автор

А не лучше ли использовать DDD подход? При прямых связях между сервисами получается, по-сути, всё тот же монолит, так как вызовы прямые и сервисы обязаны знать друг о друге. Это порождает кучу межсервисных взаимодействий, прокси и прочего барахла. Такое должно быть тяжело поддерживать. Я считаю, что лучше изпользовать событийно-ориентированную архитектуру. Событие — это сообщение без указания адресата. При такой архитектуре каждый сервис связан только с шиной событий и больше ни о чём не знает. Это выглядит куда проще и, на мой взгляд, правильнее.

-dubok-
Автор

3:17 контейнеры не используются в продакшнне. К чему тогда был весь этот доклад с примерами докер контейнеров

millkiway
Автор

22:48 не работал с микросервисами, но secure breaker - что-то новое, слышу впервые, но про circuit breaker слышал

sergeypoprygin
Автор

В докладе мотивацией перехода на микросервисы была проблема "падение производительности одного разработчика", в самом докладе не раскрыто была ли решена эта проблема.

olegneumyvakin
Автор

3к репозиториев! Клоните себе все зависимости?

evtuhovdo
Автор

Это не микросервисы(по определению микросервисов), это SOA. Я понимаю что не так модно звучит, зато более жизнено.

sodz
Автор

Может кто-то объяснит мне когда идет autoscale и downscale что происходит с данных из баз данных когда происходит downscale?

valk
Автор

Спасибо большое, интересно было узнать о технических моментах работы Avito.
В докладе говорилось, что в Avito разрешены только 4 шаблона микросервисов: Go, Node, PHP, Python. Интересно, почему сюда не включили Java? Слишком медленная?

niknt
Автор

каждые выходные авито стоит колом. не знаю, что там криво у вас.

Covid__
Автор

Выступление отличное. Но в целом Авито как проект имеет серьезные изъяны для конечного потребителя. Решайте проблемы здесь, на Земле, а не летайте на Марс.
Нужно больше микросервисов! Ведь у нас все плохо только потому, что их мало, а не потому, что с точки зрения потребителя решение в целом неудачное. Дойдите до 3000 тысяч микросервисов, тогда все станет замечательно. Увеличьте штат ИТ ещё в 2 раза, чтобы уж наверняка.
Нагрузка неравномерная? Надо больше мошностей. Но зачем их оптимизировать по регионам и по времени суток, верно? Можно же просто взять и добавить ещё.
Микросервисов никогда не бывает много. У нас их 1500, но про пару сотен мы ничего не знаем. Значит надо добавить ещё! И да, учите Go, на нем все микросервисов написаны.

ГеоргийТрубецкой-йй
Автор

39:25 что-о-о? "Денацифицировать зал" ? О май гад!

PlayGameToday
Автор

Базы данных микросервисов в PaaS в контейнерах работают в PROD-е? Какая система хранения используется? Ceph или отдельные ZFS?

voothi-it