АРХІТЕКТУРА ВИСОКИХ НАВАНТАЖЕНЬ
Досвід та інсайти від інженера з eBay, який понад 20 років розробляє програмне забезпечення
Олег Муравський
Principal Data Architect в eBay
для кого
ПРО КУРС:
За 16 онлайн-занять ви навчитеся проєктувати високонавантажені системи:
-
спочатку розглянете типи архітектур, далі розберете моделі передачі, зберігання і структуризації Big Data
-
потім навчитеся працювати з розподіленими даними, пакетами й потоками, а також проєктувати відповідні рішення
-
за підсумками курсу створите власну систему, здатну витримати щоденний трафік в ≥ 1 млн користувачів та масштабуватися
до програми курсу входять
-
01
РОЗБІР АРХІТЕКТУР
Дізнаєтесь, які технології лежать в основі масштабованих та відмовостійких систем. Навчитеся застосовувати й адаптувати сучасні highload-практики.
-
02
ПРАКТИКА РОБОТИ З BIG DATA
Розберете важливість правильної архітектури на реальних кейсах. Навчитеся зберігати, обробляти й аналізувати Big Data, а також розподіляти навантаження на систему
-
03
РОЗРОБКА ВЛАСНОЇ АРХІТЕКТУРИ
Побудуєте архітектуру, яка здатна витримати великий трафік, зможете оптимізувати процеси на вашій поточній роботі й визначати вартість впровадження технічних рішень під завдання бізнесу.
лектор
Олег Муравський
Principal Data Architect в eBay
20+ років досвіду розробки програмного забезпечення
-
співавтор двох стандартів RFC з RPKI
-
займався європейським реєстром IP-адрес, проєктами RIPEstat та RIPE Atlas
-
розробляв глобальну інфраструктуру відкритих ключів для безпечної маршрутизації
-
працював над сховищами даних для найбільших у світі вимірювань інтернету
Програма
-
01 заняття12.11 19:00
Вступ до високопродуктивних систем
- Зрозумієте, що таке високопродуктивні системи
- Вивчите базові терміни, які застосовують в архітектурі систем
- Дізнаєтесь, які завдання стоять перед архітектором високопродуктивних систем
- Навчитеся збирати й документувати вимоги до програми/системи
-
02 заняття15.11 19:00
Базові архітектури
- Дізнаєтесь, чому архітектура вибудовується від вимог до системи
- Зрозумієте, як масштабувати систему
- Ознайомитеся з основними архітектурами
-
03 заняття19.11 19:00
Моделі доступу до даних
- Дізнаєтеся відмінності між різними моделями доступу до даних
- Зрозумієте переваги та недоліки того чи іншого підходу
- Навчитесь обирати найкращий варіант з огляду на вимоги бізнесу
-
04 заняття22.11 19:00
Формати зберігання та передачі даних
- Зрозумієте відмінність між різними форматами зберігання та передачі даних
- Розберете переваги та недоліки того чи іншого підходу
- Навчитесь обирати найкращий варіант з огляду на вимоги бізнесу
-
05 заняття26.11 19:00
Бази даних
- Зрозумієте відмінності між relational та document-based моделями зберігання даних
- З’ясуєте, чим відрізняються declarative та imperative query languages
- Матимете уявлення про графові моделі даних
- Навчитесь обирати найкращий варіант зберігання даних з огляду на вимоги до системи
-
06 заняття29.11 19:00
Спеціалізовані структури даних
- Дізнаєтесь, як підвищити ефективність обробки даних за допомогою структур даних
- Зрозумієте, як побудовані сучасні системи доступу до даних
-
07 заняття03.12 19:00
Аналітика та Big Data: зберігання даних
- Зрозумієте, в чому особливість зберігання даних для аналітики
- З’ясуєте, навіщо потрібні column-oriented storages
- Навчитесь обирати відповідну модель зберігання даних з огляду на бізнес-вимоги
-
08 заняття06.12 19:00
Distributed data: САР-теорема
- Дізнаєтеся, для чого доводиться розділяти дані та яким проблемам дає раду такий підхід
- Зрозумієте CAP-теорему
-
09 заняття10.12 19:00
Distributed data: реплікація та секціонування
- Зрозумієте основи секціонування
- Опануєте різні стратегії ребалансування, вивчите їхні плюси та мінуси, а також дізнаєтеся готові рішення, які представлені на ринку та використовують ту чи іншу стратегію
- Навчитесь обирати найкращий варіант з огляду на вимоги бізнесу
-
10 заняття13.12 19:00
Distributed data: транзакції
- Дізнаєтесь, що таке ACID
- Зрозумієте, чим відрізняються рівні ізоляції
- Навчитесь обирати рівень ізоляції з огляду на вимоги бізнесу
-
11 заняття17.12 19:00
Distributed data: цілісність і консенсус
- Зрозумієте, що таке цілісність даних у розподілених системах
- Ознайомитеся з типами цілісності даних, їхніми перевагами та недоліками
- Навчитесь обирати оптимальний варіант з огляду на вимоги бізнесу
- Зрозумієте, що таке консенсус у розподілених системах
- Отримаєте уявлення про популярні алгоритми консенсусу, як-от Paxos та Raft
-
12 заняття20.12 19:00
Batch processing
- Зрозумієте, що таке batch- та stream-процесинг, а також у чому його особливості
- Дізнаєтеся, що таке MapReduce і для яких завдань його використовують
- Отримаєте інформацію про messaging systems, визначите їхні переваги та недоліки
-
13 заняття07.01 19:00
Stream processing
- Дізнаєтесь такі поняття, як-от state, stream та immutability
- Розберете різні messaging systems, їхні переваги та недоліки
-
14 заняття10.01 19:00
CQRS та Event sourcing
- Дізнаєтесь, що таке event stream / event sourcing
- Розберете, в яких ситуаціях використовують event sourcing
-
15 заняття14.01 19:00
Моніторинг, метрики та алертинг
- Зрозумієте, в чому важливість моніторингу та грамотно налаштованих сповіщень
- Дізнаєтеся різні види метрик і в чому відмінність метрик та логів
- Розберетесь у системах моніторингу
-
16 заняття17.01 19:00
Презентація курсового проєкту
- Створите й захистите архітектуру обраного (або свого) проєкту
Реєстрація
Реєструйтеся на курс, щоб навчитися масштабувати архітектуру та зберігати стабільність системи навіть під час пікових навантажень.