Спроектируем твою первую систему вместе!
В проектировании все пестрит словами, которые ты мог до этого не знать. Разложим по полочкам все MAU/DAU/RPS/NFR и много чего еще. Чтобы дальше ты уверенно понимал любой design doc
Мы не будем ограничиваться одним серверов и посмотрим, как наша система будет работать в рамках распределенности
Не умеешь считать нагрузку на чтение и запись? Или же не уверен, а что вообще нужно считать еще? Разберем все по полочкам, чтобы не упускать особенности системы
Спроектируем твою первую систему вместе!
Kafka — самый популярный message broker современности. Им пользуются PayPal, LinkedIn и многие другие BigTech. Разберем на примере из практики пошаговое внедрение и улучшение
А вместе с паттернами микросервисов очень даже. Изучим, как их применять вместе для создания системы с нагрузкой 10k RPS/write
Покажу, как незнание особенностей БД может привести к проблемам при росте нагрузке и как этого избежать
Все Big Tech компании держат системы в разных кластерах. Посмотрим, как данные перетекают из одного в кластера в другой и как здесь участвует Kafka
Kafka — самый популярный message broker современности. Им пользуются PayPal, LinkedIn и многие другие BigTech.
Без понимания данного процесса невозможно выстроить масштабируемую систему. Именно здесь будут наши первые шаги, чтобы выстроить надежную систему, которая будет справляться с нагрузкой и адаптироваться под разные формы нагрузки
Многие считают, что сети ушли в прошлое. Но без этого знания ты не сможешь построить систему, которая работает на несколько континентов. Также сети лежат в основе балансировки. А еще нам нужно понимать, что важнее: скорость (UDP) и надежность (TCP)
Именно от правильной балансировки будет зависеть распределение нагрузки на твой backend. А еще благодаря autoscaling ты сможешь учитывать увеличение реплик приложения
Бывает, что нагрузка на систему выше, чем мы закладывали. Именно тогда вступает в силу rate limiting и load shedding
Без понимания данного процесса невозможно выстроить масштабируемую систему.
Микросервисы — они везде. Без понимания, как их строить, когда они нужны, а когда нет — невозможно представить современного senior разработчика
При разработке распределенных систем важно понимать правила, по которым они работают. Нормально ли, что часть системы будет содержать неактуальные данные. А стоит ли нам закрывать систему на запись, если произошла авария в ДЦ
В реалиях современной разработки обычный REST over HTTP далеко не всегда подходит. Разберем с тобой другие формы коммуникации, а также посмотрим на их сильные и слабые стороны, так как не бывает ультимативного оружия
Микросервисы — они везде. Без понимания, как их строить, когда они нужны, а когда нет — невозможно представить современного senior разработчика
Без хранения данных невозможно представить практически никакую систему. И здесь кроются детали: как выбрать наиболее правильный формат, как работа с индексами может помочь нам. А еще есть кеширование, которое позволит оптимизировать IO нагрузку на систему
БД это такой же сервис, который делится на слои. Для отладки и тонкой настройки нам нужно понимать, где и как происходят процессы внутри этой системы
Ненастроенная БД без всяких настроек может и вывезет MVP, но при высоких нагрузках нам нужно применять дополнительные подходы: индексирование, пулы соединений, партицирование и шардирование — все это разберем, чтобы ты мог проектировать системы от 10k RPS
Большинство систем, которыми ты пользуешься, под капотом держат кеш для оптимизации работы. Но недостаточно поставить кеш и забыть. Нужно продумать политику очистки кеша, ограничить его объем
Без хранения данных невозможно представить практически никакую систему.
Событийная архитектура идет рука об руку с микросервисами. Большая часть паттернов и подходов связана именно с ней
Для работы с "событийкой" нам необходимо понять элементы системы. Также у данного подхода огромное число особенностей, не зная которых можно сделать некачественную систему
Посмотрим с тобой, как устроены паттерны поверх базовой "событийки". А также как их стоит сочетать с остальной архитектурой
В распределенных системах ты не можешь все делать в рамках одной транзакции. Нам нужны новые способы настройки этого механизма. Посмотрим, как это делается и в каких системах можно применить
Событийная архитектура идет рука об руку с микросервисами. Большая часть паттернов и подходов связана именно с ней
Надежность и прозрачность текущего состояния системы — must-have. Без это тебя не пустят в production.
Работа с надежностью и здоровьем системы — обязанность каждого разработчика. Мы вооружимся всем необходимым для этого: SLO, postmortem, RED и много чего еще
Нужно понимать базовые принципы обеспечения безопасности системы. А также какие механизмы существуют
Netflix разработал собственный CDN для хранения контента. Это необходимый механизм, без которого Spotify, Pinterest не смогли бы работать
Надежность и прозрачность текущего состояния системы — must-have. Без это тебя не пустят в production.