Архітектура високих навантажень
Опануйте сучасні практики з хайлоаду та системного дизайну, щоб ваші ІТ-системи витримували наплив трафіку ≥1 млн користувачів.
Ярослав Літус
Staff Software Engineer у
про курс
- Дата:
27.05.24 — 01.08.24
- Тривалість:
27 занять
- Курсовий проєкт:
розробка хайлоад-системи
Спочатку ви дізнаєтеся, що лежить в основі легкомасштабованих та відмовостійких систем. Далі розберетеся в перевагах і недоліках технологій, моделях передачі, зберігання й структуризації даних. А потім навчитеся працювати з розподіленими даними, пакетами й потоками та проєктувати відповідні вимогам рішення.
У підсумку ви створите систему, здатну витримати щоденний трафік в ≥1 млн користувачів та масштабуватися.
для кого
до програми курсу входять
-
01
ТЕХНОЛОГІЇ HIGHLOAD
Дізнаєтесь, які технології лежать в основі масштабованих і відмовостійких систем. Навчитеся застосовувати й адаптувати сучасні highload-практики.
-
02
РОЗРОБКА СИСТЕМИ
Зрозумієте важливість правильної архітектури на реальних кейсах. Навчитеся проєктувати й розробляти системи, здатні витримати ≥1 млн користувачів щодня.
-
03
Q&A-сесії
На 9 онлайн-зустрічах лектор відповідатиме на запитання стосовно програми навчання, даватиме рекомендації та пояснюватиме нюанси розробки хайлоад-систем.
-
04
ФІДБЕК ВІД МЕТОДИСТА
Методист курсу ― В’ячеслав Конашков, Solution Architect / Tech Lead у TripleA, має 20+ років досвіду в IT. Він перевірятиме домашні завдання та консультуватиме у Slack і на Q&A-сесіях.
-
04
КАР’ЄРНИЙ БУСТ
Зможете оптимізувати роботу наявних систем на вашій поточній роботі та навчитеся визначати вартість впровадження того чи іншого рішення під завдання бізнесу.
Програма
-
01 заняття27.05 відеоурок
Вступ до Highload
- Зрозумієте, що таке highload і data-intensive програми
- Розберете завдання, які стоять перед архітектором високонавантажених систем
- Навчитеся робити грубі розрахунки для архітектури програми/li>
-
02 заняття27.05 відеоурок
Вимоги до архітектури
- Розберете базові терміни, які використовують в архітектурі застосунків
- Зрозумієте trade-offs у високонавантажених системах
- Навчитеся збирати й документувати вимоги до програми
-
03 заняття30.05 20:00
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
04 заняття03.06 відеоурок
Формат зберігання та передачі даних
- Зрозумієте відмінність між різними форматами зберігання та передачі даних
- Розберете переваги та недоліки того чи іншого підходу
- Навчитеся обирати найкращий варіант з огляду на вимоги бізнесу
-
05 заняття03.06 відеоурок
Комунікація системи із зовнішнім світом
- Дізнаєтеся, як працює комунікація програми із зовнішнім світом
- Зрозумієте, чим відрізняються балансувальники навантаження
- Розберете різні способи імплементації rate limiters, а також їхні переваги та недоліки
- Навчитеся обирати найкращий варіант комунікації з огляду на вимоги бізнесу
-
06 заняття06.06 20:00
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
07 заняття10.06 відеоурок
Моделі передачі даних
- Зрозумієте відмінність між різними моделями передачі даних
- Дізнаєтеся, які переваги та недоліки має той чи інший підхід
- Навчитеся обирати найкращий варіант з огляду на вимоги бізнесу
-
08 заняття10.06 відеоурок
Зберігання даних
- Зрозумієте відмінність між relational та document-based моделями зберігання даних, а також між declarative та imperative query languages
- Отримаєте розуміння графових моделей даних
- Навчитеся обирати найкращий варіант зберігання даних з огляду на вимоги бізнесу
-
09 заняття13.06 20:00
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
10 заняття17.06 відеоурок
Структури даних
- Матимете уявлення про те, як влаштовані бази даних та в якому вигляді зберігаються дані
- Зрозумієте переваги та недоліки того чи іншого підходу до зберігання даних
- Навчитеся обирати найкращий варіант СУБД з огляду на вимоги бізнесу щодо зберігання даних
-
11 заняття17.06 відеоурок
Аналітика та зберігання Big Data
- Зрозумієте, в чому особливість зберігання даних для аналітики
- Дізнаєтеся, що таке data warehouse і де його використовують
- Зрозумієте, навіщо потрібні column-oriented storages
- Навчитеся обирати відповідну модель зберігання даних з огляду на бізнес-вимоги
-
12 заняття20.06 20:00
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
13 заняття24.06 відеоурок
Розподілені дані: САР-теорема
- Дізнаєтеся, для чого доводиться розділяти дані та яким проблемам дає раду такий підхід
- Зрозумієте CAP-теорему
- Навчитеся обирати найбільш відповідне рішення для розподіленого зберігання даних з огляду на бізнес-вимоги
-
14 заняття24.06 відеоурок
Розподілені дані: реплікація [replication]
- Розберете основи реплікації даних
- Ознайомитеся зі стратегіями реплікації, їхніми перевагами та недоліками, а також готовими рішеннями, які представлені на ринку
- Навчитеся обирати найкращу стратегію з огляду на вимоги бізнесу
-
15 заняття27.06 20:00
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
16 заняття01.07 відеоурок
Розподілені дані: секціонування [partitioning]
- Зрозумієте основи секціонування
- Розберете стратегії ребалансування, їхні переваги та недоліки, а також готові рішення
- Продовжите роботу з key-value data warehouse
-
17 заняття01.07 відеоурок
Розподілені дані: транзакції [transaction]
- Дізнаєтеся, що таке ACID
- Зрозумієте, чим відрізняються рівні ізоляції
- Навчитеся обирати рівень ізоляції з огляду на вимоги бізнесу
-
18 заняття04.07 20:00
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
19 заняття08.07 відеоурок
Розподілені дані: цілісність [consistency]
- Зрозумієте, що таке цілісність даних у розподілених системах
- Ознайомитеся з типами цілісності даних, їхніми перевагами та недоліками
- Навчитеся обирати тип цілісності з огляду на вимоги бізнесу
-
20 заняття08.07 відеоурок
Розподілені дані: консенсус [consensus]
- Зрозумієте, що таке консенсус у розподілених системах
- Отримаєте уявлення про популярні алгоритми консенсусу, як-от Paxos та Raft
- Дізнаєтеся, як працюють популярні розподілені сховища даних у контексті консенсусу
- Навчитеся реалізовувати обраний тип консенсусу
-
21 заняття11.07 20:00
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
22 заняття15.07 відеоурок
Пакетна та потокова обробка
- Зрозумієте, що таке batch та stream процесинг, а також у чому його особливості
- Дізнаєтеся, що таке MapReduce і для яких завдань він використовується
- Отримаєте інформацію про messaging systems, визначите їхні переваги та недоліки
-
23 заняття15.07 відеоурок
Пошук подій та потоки подій
- Розберете такі поняття, як-от State, Stream та Immutability
- Дізнаєтеся, що таке Event Stream / Event Sourcing
- Зрозумієте, в яких ситуаціях використовують Event Sourcing
-
24 заняття18.07 відеоурок
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
25 заняття22.07 відеоурок
Моніторинг, метрики та алертинг
- Дізнаєтеся, в чому важливість моніторингу та грамотно налаштованих сповіщень
- Розберете різні види метрик та в чому відмінність метрик і логів
- Опишете метрики для одного з компонентів системи
- те метрики для одного из компонентов системы
-
26 заняття25.07 20:00
Q&A-сесія з лектором і методистом
- Розберете свої запитання на Live-сесії з лектором і методистом
-
27 заняття01.08 20:00
Презентація курсового проєкту
- Презентуєте й захистите курсовий проєкт, створений з огляду на те, що дизайн обов’язково має передбачати високе навантаження
лектор
Ярослав Літус
Staff Software Engineer у Google
має ступінь PhD в Computer Science
-
в ІТ-сфері 20 років, 12 з яких працює в Google
-
наразі будує та інтегрує масивні розподілені highload-системи
-
займався Machine Learning у команді зі створення контекстної реклами в Google
-
провів 150+ технічних інтерв’ю в пошуку нових талантів для Google
реєстрація
Проєктуйте рішення, здатні витримати ≥1 млн користувачів щодня, масштабуватися і коректно працювати.