Тёмный

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

HighLoad Channel
Подписаться 82 тыс.
Просмотров 35 тыс.
50% 1

Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: vk.cc/cuyIqx
--------
--------
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем
17 и 18 мая 2021. Москва, Крокус-Экспо
Тезисы и презентация:
www.highload.ru/spring/2021/a...
Мой доклад осветит набор основных инструментов из экосистемы cloud native compute fundation для перехода к микросервисной архитектуре. Я расскажу, что важно не забыть сделать при таком переходе и какие могут появиться проблемы: от изменений в оргструктуре компании до смены парадигм в разработке.
...
--------
Нашли ошибку в видео? Пишите нам на support@ontico.ru

Опубликовано:

 

3 окт 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 66   
@SergeiCherkai
@SergeiCherkai Год назад
коротко - несколько раз подумайте, прежде чем идти в микросервисы
@OstretsovArtem
@OstretsovArtem 2 года назад
коротко: - рантайм для контейнеров (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.
@konstantin5021
@konstantin5021 Год назад
Cncf это что?
@vladimirmakarov6344
@vladimirmakarov6344 Год назад
@@konstantin5021 cloud native computing foundation
@valk9819
@valk9819 2 месяца назад
Чисто по факту брат
@user-fr9nn6zm9c
@user-fr9nn6zm9c Месяц назад
Спасибо тебе.
@sodz5144
@sodz5144 Месяц назад
Часто забывают, что наверное самой крутой фитчей микросервисов является Version delivery. Это когда ты можешь баллансировщиком указать долю нагрузки поступающую на новую версию сервиса одновременно продолжая эксплуатировать стабильную версию. Этот подход работает и при переходе от монолита к микросервисам, чертим карту-план перенаправления функционала в микросервисы и поехали.
@voothi-it
@voothi-it 2 года назад
Интересный доклад
@mikhailanazarov
@mikhailanazarov Год назад
Хороший доклад
@SlavaVy0
@SlavaVy0 5 месяцев назад
Напоминает какое-то сравнение agile vs waterfall да никто никогда не писал монолиты, который запускается единым процессом и все статически линкуется. Точно также раньше в деплое была пачка всевозможных компонент, которые имели свой релизный цикл и все свое, другие команды просто ходили туда по API По авито складывается ощущение, что микросервис = класс(или небольшой набор классов), но потом постоить цепочки вызовов кто в какой сервис ходит становится мегапроблематично.
@sodz5144
@sodz5144 Месяц назад
Это не микросервисы(по определению микросервисов), это SOA. Я понимаю что не так модно звучит, зато более жизнено.
@maksimivanov8728
@maksimivanov8728 8 месяцев назад
Монолит проверен временем, найти по нему специалиста программиста несложно+недорого по цене, достаточно иметь сис.админа для обслуживания. А вот микросервисы это новый подход требующий высокой квалификации архитектора, которого сложно будет найти+дорого содержать ДевОпса которые тоже на дороге не валяются и тд. Вся эта чехарда с новыми технологиями разработки не оправдана, а лишь усложняет работу программистов и тех-менеджеров.
@vr29645
@vr29645 2 месяца назад
это усложняет разработку для двух десятков программистов которые делают платформу, для остальных все элементарно
@millkiway3682
@millkiway3682 7 месяцев назад
3:17 контейнеры не используются в продакшнне. К чему тогда был весь этот доклад с примерами докер контейнеров
@niknt
@niknt 5 месяцев назад
Спасибо большое, интересно было узнать о технических моментах работы Avito. В докладе говорилось, что в Avito разрешены только 4 шаблона микросервисов: Go, Node, PHP, Python. Интересно, почему сюда не включили Java? Слишком медленная?
@-dubok-
@-dubok- Год назад
А не лучше ли использовать DDD подход? При прямых связях между сервисами получается, по-сути, всё тот же монолит, так как вызовы прямые и сервисы обязаны знать друг о друге. Это порождает кучу межсервисных взаимодействий, прокси и прочего барахла. Такое должно быть тяжело поддерживать. Я считаю, что лучше изпользовать событийно-ориентированную архитектуру. Событие - это сообщение без указания адресата. При такой архитектуре каждый сервис связан только с шиной событий и больше ни о чём не знает. Это выглядит куда проще и, на мой взгляд, правильнее.
@AgentFire0
@AgentFire0 10 месяцев назад
А какая принципиальная разница между микросервисом, являющимся мастер-хранилищем информации о сущности N, и некоей абстрактной доменной моделью (куда можно обратиться), представляющей эту же сущность N, но под капотом реализуемой, скорее всего, таким же одним микросервисом? Допустим такую ситуацию, где сервису нужно сходить за информацией об объекте N. 1. В случае со знанием "куда идти", мы делаем синхронный запрос в целевой микросервис (= имеем знание о нём, как об "ответчике" на такие запросы) 2. В случае с событиями, мы делаем асинхронное событие "хочу инфу по объекту N", и терпеливо ждём событие-ответ с нужными данными. (=имеем знание о том, что событие-запрос обязательно формирует событие-ответ) Имхо, оба варианты примерно эквивалентны.
@-dubok-
@-dubok- 10 месяцев назад
@@AgentFire0 микросервисы - это разбиение по функциям (службам, сервисам), а DDD - разбиение по предметным областям. Функции могут использоваться разными другими микросервисами для какой-то своей непонятной логики, а предметные области чётко делят приложение на независимые части. Функциональное разбиение делает приложение очень связным, и это прямые связи всегда. Короче, тот же монолит, но разбитый на отдельные, связанные по сети, части. А в предметной области большая часть происходящего (иди даже вся) независима от других предметных областей. В DDD какие-то функции могут повторяться в разных микросервисах, потому что главное - это независимость предметных областей, а не разделение труда по функциям. В DDD проще реализовать событийную архитектуру и именно она там и должна использоваться, а в микросервисах так не получится, потому что они заточены на прямые вызовы и очень зависимы друг от друга.
@voothi-it
@voothi-it 2 года назад
Базы данных микросервисов в PaaS в контейнерах работают в PROD-е? Какая система хранения используется? Ceph или отдельные ZFS?
@TheMMgo
@TheMMgo 2 года назад
Как правило базы вне k8s живут. На отдельных контейнерах на bare-metal
@sergeypoprygin2670
@sergeypoprygin2670 2 года назад
22:48 не работал с микросервисами, но secure breaker - что-то новое, слышу впервые, но про circuit breaker слышал
@f00b4r123
@f00b4r123 Год назад
Я думаю что имелось в виду SSL termination.
@alexeybobr4537
@alexeybobr4537 2 года назад
Пипец 1К микросервисов в авито. Что там может быть такого на сайте объявлений? Современное программирование превращается в какой-то нелепый аттракцион для усложнения себе жизни с последующим его героическим преодолением.
@PlayGameToday
@PlayGameToday 2 года назад
Просто не научились оптимизировать, и это далеко не "современное программирование", а "программирование в Авито", лол )))
@namesurname3533
@namesurname3533 2 года назад
Дело не в том, что есть на сайте, а в нагрузке. Представь сколько людей, каждую секунду заходит на авито
@timur2887
@timur2887 2 года назад
Типичная ситуация для большого количества разработчиков: никто не в состоянии удержать в голове всю систему, она превращена в помойку
@agentdaun5699
@agentdaun5699 Год назад
@@timur2887 Так для этого микросервисы и нужны. Разработчику рекомендательный системы не нужно знать что там в поиске. 1000 это не микросервисов, а инстансов.
@timur2887
@timur2887 Год назад
@@agentdaun5699 да какая разница, помойка есть помойка)
@valk9819
@valk9819 2 месяца назад
Может кто-то объяснит мне когда идет autoscale и downscale что происходит с данных из баз данных когда происходит downscale?
@WarbeastMr
@WarbeastMr 4 месяца назад
Прикольно звучит. Набрали туеву хучу инженеров и думаем, чем бы их занять? А, точно, микросервисы же!!!
@uralk434
@uralk434 6 дней назад
могут себе позволить))
@evtuhovdo
@evtuhovdo Год назад
3к репозиториев! Клоните себе все зависимости?
@kolabaka6851
@kolabaka6851 Месяц назад
Когда разработчик говорит, что в продукте 1к микросервисов что он имеет в виду? 1000 уникальных микросервисов или напоимер 250 x, 250 y и 500 z микросервисов? Это же полный идиотизм, если всё идёт по первому сценарию!!!!
@sodz5144
@sodz5144 Месяц назад
3:02 АТОМАРНОСТИ
@olegneumyvakin3595
@olegneumyvakin3595 2 года назад
В докладе мотивацией перехода на микросервисы была проблема "падение производительности одного разработчика", в самом докладе не раскрыто была ли решена эта проблема.
@anton6643
@anton6643 Год назад
10000 микросервисов нахуярили, 200 неизвестно кто и нахуя сделал. Судя по всему производительность выросла просто пиздец )))
@user-gw6df6ns7e
@user-gw6df6ns7e 11 месяцев назад
Не думаю. Теперь там у них монолит только распределённый по множеству репозиторий и машин.
@user-zv7hb6cd1f
@user-zv7hb6cd1f 11 месяцев назад
Да, теперь есть падение производительности не одного, а сотни разработчиков)
@millkiway3682
@millkiway3682 7 месяцев назад
По-моему вопрос отлично раскрыт. Все кто прослушал доклад понял что микросервисы делаются для микросервисов т.е. разработчики занимаются распилом, а менеджмент занимается распилом
@Covid_19_23
@Covid_19_23 Год назад
каждые выходные авито стоит колом. не знаю, что там криво у вас.
@PlayGameToday
@PlayGameToday 2 года назад
39:25 что-о-о? "Денацифицировать зал" ? О май гад!
@dm.vortex4171
@dm.vortex4171 Год назад
дезинфицировать от пэхапэшников надо главное. святая миссия
@timur2887
@timur2887 2 года назад
Ну в общем авито заросло легаси кодом, который ещё и частично мёртвый, верно?)
@anton6643
@anton6643 Год назад
Половину которого написал неизвестно кто и неизвестно нахуя.
@user-vb2vx3ds2j
@user-vb2vx3ds2j Год назад
Выступление отличное. Но в целом Авито как проект имеет серьезные изъяны для конечного потребителя. Решайте проблемы здесь, на Земле, а не летайте на Марс. Нужно больше микросервисов! Ведь у нас все плохо только потому, что их мало, а не потому, что с точки зрения потребителя решение в целом неудачное. Дойдите до 3000 тысяч микросервисов, тогда все станет замечательно. Увеличьте штат ИТ ещё в 2 раза, чтобы уж наверняка. Нагрузка неравномерная? Надо больше мошностей. Но зачем их оптимизировать по регионам и по времени суток, верно? Можно же просто взять и добавить ещё. Микросервисов никогда не бывает много. У нас их 1500, но про пару сотен мы ничего не знаем. Значит надо добавить ещё! И да, учите Go, на нем все микросервисов написаны.
@kraken645
@kraken645 11 месяцев назад
россия богатая страна, денег не жалко.
@kremen1571
@kremen1571 Год назад
ну, Авито конечно говно)
@nikitasid4947
@nikitasid4947 5 месяцев назад
Слабое связывание это называется. Класть, а не "ложить". ЭтоГО избежать. Throttling не начинается, а срабатывает. тОкен, а не токЕн. Русский язык, бл., как обычно. --- Тем временем, Авито, как ни зайдешь, вечно в дауне.
@PlayGameToday
@PlayGameToday 2 года назад
Вот когда научитесь произносить PHP как "Пи Эйч Пи", а не "Пэ Ха Пэ", тогда и зовите!
@dm.vortex4171
@dm.vortex4171 Год назад
скоро вообще никак не будут называть, ибо все забудут как это звучит и что это такое)
@kalmurza
@kalmurza Год назад
Это русский суровый IT: пэхэпэ, аштимель, шедулер ))
@anatoly-k
@anatoly-k Год назад
@@kalmurza и это прекрасно.
@-dubok-
@-dubok- Год назад
Да кому ты нужен?
@constantinegeist1854
@constantinegeist1854 9 месяцев назад
PHP - "персонал хоум пейдж". Поэтому Пэхэпэ тоже логично :)
@tertiumorganum5665
@tertiumorganum5665 7 месяцев назад
полдоклада ниочем, еще бы рассказал из чего компьютер
Далее
Что такое Kubernetes?
7:48
Просмотров 128 тыс.
WOW... WHAT A FIGHT!!!!! 📣 #ufc302
00:48
Просмотров 1,2 млн