Паттерны отказоустойчивой архитектуры - Александр Кривощёков

  Рет қаралды 19,570

Yandex for Developers

Yandex for Developers

2 жыл бұрын

Перебои и ошибки в работе распределённых систем (будь то Web или IOT) совершенно обычная ситуация. Проблемы в работе с сетью, перебои в работе зависимостей и банальный человеческий фактор - та цена, которую мы платим за общую стабильность системы, лёгкую масштабируемость и гибкость в разработке.
На примере эволюции одного вымышленного (ну, почти вымышленного) сервиса по доставке напитков мы рассмотрим проблемы, с которыми он сталкивался, и решения, которые помогли с ними справиться.
Мы разберём паттерны построения отказоустойчивой системы и примеры их реализации в реальной жизни, которые позволяют нашей системе переживать самые критические моменты. Начав с простейших таймаутов, мы проделаем путь до толстых клиентов и тыкв.

Пікірлер: 26
@Iska369
@Iska369 2 жыл бұрын
Спасибо за доклад, на хайлоаде помню не успел все рассказать, а здесь все целиком, супер
@viktorsemak3303
@viktorsemak3303 11 ай бұрын
Классный доклад! Спасибо!
@MartinXProject
@MartinXProject Жыл бұрын
Спасибо, супер!
@szinner
@szinner 3 ай бұрын
0. "Яндекс.Вода" - 2:38 1. Retry - 4:44 2. Deadlines - 17:15 3. Rate limiting - 24:06 4. Circuit breaker - 33:25 5. Rich client - 40:20 6. Dummy (aka Pumpkin) - 46:24 7. Прочие паттерны - 51:38
@Dimoniada
@Dimoniada Жыл бұрын
Спасибо за первые 2 паттерна)
@Kitchen_Politics
@Kitchen_Politics 9 ай бұрын
Спасибо, очень!
@maximsaloduha1487
@maximsaloduha1487 2 ай бұрын
Молодец! Благодарю!
@sergeysergeev92
@sergeysergeev92 3 ай бұрын
Для deadline propagation нужна высокая точность синхронизации часов на всех включенных в цепочку обработки серверах. В ваших примерах хотя бы где-то в пределах 10 миллисекунд. Как вы этого добиваетесь? Не мешает ли тут географическая удаленность серверов, увеличивая люфт рассинхронизации?
@sergeysergeev92
@sergeysergeev92 3 ай бұрын
Ссылка на презентацию не открывается ((
@sergeymatpoc
@sergeymatpoc 8 ай бұрын
прикольно, пошел к чуваку на репу, а он уже оказывается в Реддите =). Поздравляю.
@kaktusv6
@kaktusv6 Жыл бұрын
Каеф
@hdnn1
@hdnn1 2 жыл бұрын
Ссылки мёртвые?
@alexanderstepanov6034
@alexanderstepanov6034 Жыл бұрын
почти оговорился) "насинячиться")))
@-dubok-
@-dubok- 9 ай бұрын
Думаю, это была намеренная шутка.
@revel8246
@revel8246 7 ай бұрын
Спасибо, очень интересно. Я только не понял о каких ручках докладчик упоминал несколько раз. Вроде речь была о программировании, а тут какие то дверные ручки
@Val-Sfinx
@Val-Sfinx 6 ай бұрын
Это русскоязычный термин для эндпоинтов (endpoint) - это адрес на сервере или сервисе, на который отправляются запросы (requests)
@revel8246
@revel8246 5 ай бұрын
@@Val-Sfinx интересно! А почему именно "ручка"?
@Alexandrhub
@Alexandrhub 4 ай бұрын
@@revel8246 handler - ручка :)
@user-ju6lw2sw8f
@user-ju6lw2sw8f 4 ай бұрын
потому что можно за неё дергать :)@@revel8246
@grebelnik
@grebelnik 4 ай бұрын
@@revel8246 потому что "handler"
@vanyadavidenko
@vanyadavidenko 10 ай бұрын
Книги судя по всему не случилось.
@diatm1506
@diatm1506 Жыл бұрын
Gof and Grasp так я их и не понял как применять на практике и реализовывать))) Иногда кажется что шаблоны и рефакторинг тесно связаны между собой)
@user-oc7ft4yz4f
@user-oc7ft4yz4f Жыл бұрын
Спасибо, очень хороший доклад. Докладчик - крут, но сахарок и белый хлебушек любит
@user-im4jl5wd7l
@user-im4jl5wd7l 9 ай бұрын
доклад отличный p.s. имхо только вот это оперирование счастьем пользователя аж слух режет, мораль это не понятия реального мира в капитализме, в реальности пользователь в следующий раз не купит через еду а закажет через самокат или сбермаркет
@sergeymatpoc
@sergeymatpoc 8 ай бұрын
мораль простая. Фокус бизнеса должен быть на "счастье пользователя" (опять же, это не вырублено в камне, но один из вариантов подхода к ведению бизнеса). Постараюсь объяснить кратко. Можно вести бизнес относительно конкретных задач и целей. Первый вариант - ставить в приоритет какие-то внутренние процессы, например, создание самого безопасного приложения. Вводить ограничения, всякие DMZ, контроль репы (или его отсутствие вообще), только стабильные и современные, обновляемые операционные системы, полное огораживание системы от любых внешних влияний (подключения дисков и других носителей, доступ в интернет итд). Если непонятно - вот например так (по крайней мере раньше) работал Центробанк (РФ). Второй вариант - "код ради кода". Когда приоритет - в "идеальности" кода, т.е. даже если страдает функционал, код написан так идеально что работает на любом железе, даже в ущерб UI, безопасности, функционалу (быстрый, но простой). Из примеров - я бы сказал раньше некоторые разработчики игр этим баловались. Их движки были идеальными, но очень плохо масштабировались и поддерживались, и со временем (и апгрейдом систем) они просто перестали адекватно работать на современном железе. Впрочем, это и есть очевидная проблема - смысла делать "идеально" нет. Третий вариант - "минимализм". Т.е. все траты компании идут сугубо на развитие, например, оффлайн магазинов. А айти оплачивается по остаточному принципу. Тут понятно в каком состоянии будут онлайн составляющая и другие компоненты взаимодействия всей системы в-целом (логистики, магазинов, маркетинга, контроллирующих органов). ... А есть еще один вариант, когда компания ориентируется на пользователя. Т.е. подход к развитию бизнеса с точки зрения конечного пользователя. Т.е. в приоритет ставится именно комфорт пользователя, а не внутренние процессы. И вместо предыдущих вариантов, реализуется методология вокруг качества пользовательского взаимодействия. И с этой точки зрения если подходить - то эти все паттерны четко обретают смысл, т.к. в любых других роли пользователя в принятии решений нет. Зачем фокусироваться на пользователе - ответ тоже простой, именно пользователь приносит доход компании. И какая бы компания идеальная ни была, пока пользователь не счастлив - компания будет терять деньги. Конечно, приоритет зависит от конкретных обстоятельств и ситуации. В демократических обществах, где роль государства сводится к минимуму, у пользователей есть выбор практически во всем. И, конечно, бизнесы (да и некоторые госорганы в условиях конкурентной среды) будут стремиться сделать свой товар лучше чем у конкурентов чтобы получить прибыль. И эта конкуренция делает товары выше качеством (ниже по цене) без вреда конечному потребителю. Если у компании нет цели получить прибыль - тут уже вопрос к компании =).
Что сказать на собеседовании про паттерн Saga?
7:35
Андрей Суховицкий
Рет қаралды 6 М.
Is it Cake or Fake ? 🍰
00:53
A4
Рет қаралды 20 МЛН
ТАМАЕВ vs ВЕНГАЛБИ. ФИНАЛЬНАЯ ГОНКА! BMW M5 против CLS
47:36
Неприятная Встреча На Мосту - Полярная звезда #shorts
00:59
Полярная звезда - Kuzey Yıldızı
Рет қаралды 6 МЛН
Samsung Galaxy 🔥 #shorts  #trending #youtubeshorts  #shortvideo ujjawal4u
0:10
Ujjawal4u. 120k Views . 4 hours ago
Рет қаралды 8 МЛН
APPLE совершила РЕВОЛЮЦИЮ!
0:39
ÉЖИ АКСЁНОВ
Рет қаралды 3,6 МЛН
Secret Wireless charger 😱 #shorts
0:28
Mr DegrEE
Рет қаралды 1,3 МЛН