
Ля-ля-фа
ТОП организатор
- Сообщения
- Монеты
- 0.0
- Оплачено
- 55
- Купоны
- 0
- Кешбэк
- 0
- Баллы
- 0
- @Skladchiki
- #1
Складчина: [Algocode.io] Проектирование систем. Тариф База
- Ссылка на картинку
-
Курс для тебя, если:
0 неделя: Мини-курс по Kafka
- Имеешь базовые знания в проектировании систем
- Хочешь уйти с галеры и работать в Big Tech
- Желаешь избавиться от страха перед проектированием
- Проектируешь высоконагруженные системы и грамотно выбираешь между разными подходами
- Готов к System Design секции в Big Tech
- Являешься востребованным специалистом на рынке
- Без прочтения тонны литературы
- Без десятка проваленных секций
- С четким маршрутом, который сделает проектирование кристально понятным!
- Термины, термины, термины
В проектировании все пестрит словами, которые ты мог до этого не знать. Разложим по полочкам все MAU/DAU/RPS/NFR и много чего еще. Чтобы дальше ты уверенно понимал любой design doc - Масштабирование системы
Мы не будем ограничиваться одним серверов и посмотрим, как наша система будет работать в рамках распределенности - Расчеты — база для проектирования
Не умеешь считать нагрузку на чтение и запись? Или же не уверен, а что вообще нужно считать еще? Разберем все по полочкам, чтобы не упускать особенности системы
0 неделя: Мини-курс по Kafka
- Почему это важно
Kafka — самый популярный message broker современности. Им пользуются PayPal, LinkedIn и многие другие BigTech. Разберем на примере из практики пошаговое внедрение и улучшение - Одна Kafka в поле не воин
А вместе с паттернами микросервисов очень даже. Изучим, как их применять вместе для создания системы с нагрузкой 10k RPS/write - Kafka + DB = много проблем
Покажу, как незнание особенностей БД может привести к проблемам при росте нагрузке и как этого избежать - Вездесущая кросс-кластерная синхронизация
Все Big Tech компании держат системы в разных кластерах. Посмотрим, как данные перетекают из одного в кластера в другой и как здесь участвует Kafka
- Почему это важно
Без понимания данного процесса невозможно выстроить масштабируемую систему. Именно здесь будут наши первые шаги, чтобы выстроить надежную систему, которая будет справляться с нагрузкой и адаптироваться под разные формы нагрузки - Разберемся в сетях
Многие считают, что сети ушли в прошлое. Но без этого знания ты не сможешь построить систему, которая работает на несколько континентов. Также сети лежат в основе балансировки. А еще нам нужно понимать, что важнее: скорость (UDP) и надежность (TCP) - Выбираешь правильный способ балансировки — где-то важнее скорость, а где-то умное распределение
Именно от правильной балансировки будет зависеть распределение нагрузки на твой backend. А еще благодаря autoscaling ты сможешь учитывать увеличение реплик приложения - Учитываешь возможные скачки нагрузки
Бывает, что нагрузка на систему выше, чем мы закладывали. Именно тогда вступает в силу rate limiting и load shedding
- Почему это важно
Микросервисы — они везде. Без понимания, как их строить, когда они нужны, а когда нет — невозможно представить современного senior разработчика - Разберем CAP теорему и модели консистентности
При разработке распределенных систем важно понимать правила, по которым они работают. Нормально ли, что часть системы будет содержать неактуальные данные. А стоит ли нам закрывать систему на запись, если произошла авария в ДЦ - Виды интеграций
В реалиях современной разработки обычный REST over HTTP далеко не всегда подходит. Разберем с тобой другие формы коммуникации, а также посмотрим на их сильные и слабые стороны, так как не бывает ультимативного оружия
- Почему это важно
Без хранения данных невозможно представить практически никакую систему. И здесь кроются детали: как выбрать наиболее правильный формат, как работа с индексами может помочь нам. А еще есть кеширование, которое позволит оптимизировать IO нагрузку на систему - Будешь понимать, что БД — не черный ящик
БД это такой же сервис, который делится на слои. Для отладки и тонкой настройки нам нужно понимать, где и как происходят процессы внутри этой системы - Оптимизация работы БД
Ненастроенная БД без всяких настроек может и вывезет MVP, но при высоких нагрузках нам нужно применять дополнительные подходы: индексирование, пулы соединений, партицирование и шардирование — все это разберем, чтобы ты мог проектировать системы от 10k RPS - Кеширование как база в современных системах
Большинство систем, которыми ты пользуешься, под капотом держат кеш для оптимизации работы. Но недостаточно поставить кеш и забыть. Нужно продумать политику очистки кеша, ограничить его объем
- Почему это важно
Событийная архитектура идет рука об руку с микросервисами. Большая часть паттернов и подходов связана именно с ней - EDA или event driven architecture
Для работы с "событийкой" нам необходимо понять элементы системы. Также у данного подхода огромное число особенностей, не зная которых можно сделать некачественную систему - CQRS, event sourcing, transactional outbox — лишь вершина айсберга
Посмотрим с тобой, как устроены паттерны поверх базовой "событийки". А также как их стоит сочетать с остальной архитектурой - SAGA — те же транзакции, только для микросервисов
В распределенных системах ты не можешь все делать в рамках одной транзакции. Нам нужны новые способы настройки этого механизма. Посмотрим, как это делается и в каких системах можно применить
- Почему это важно
Надежность и прозрачность текущего состояния системы — must-have. Без это тебя не пустят в production. - SRE — 3 буквы, за которыми стоит uptime систем
Работа с надежностью и здоровьем системы — обязанность каждого разработчика. Мы вооружимся всем необходимым для этого: SLO, postmortem, RED и много чего еще - Security не только в ИБ
Нужно понимать базовые принципы обеспечения безопасности системы. А также какие механизмы существуют - CDN или как улучшить UX клиента
Netflix разработал собственный CDN для хранения контента. Это необходимый механизм, без которого Spotify, Pinterest не смогли бы работать
Показать больше
Зарегистрируйтесь
, чтобы посмотреть авторский контент.