Онлайн-курс Архітектура високих навантажень | robot_dreams
  • онлайн-курс
  • 27 занять
  • курсовий проєкт

Архітектура високих навантажень

Опануйте сучасні практики з хайлоаду та системного дизайну, щоб ваші ІТ-системи витримували наплив трафіку ≥1 млн користувачів.

Ярослав Літус

Staff Software Engineer у

Google

про курс

  • Дата:

    27.05.24 — 01.08.24

  • Тривалість:

    27 занять

  • Курсовий проєкт:

    розробка хайлоад-системи

Спочатку ви дізнаєтеся, що лежить в основі легкомасштабованих та відмовостійких систем. Далі розберетеся в перевагах і недоліках технологій, моделях передачі, зберігання й структуризації даних. А потім навчитеся працювати з розподіленими даними, пакетами й потоками та проєктувати відповідні вимогам рішення.

У підсумку ви створите систему, здатну витримати щоденний трафік в ≥1 млн користувачів та масштабуватися.

для кого

Developer / Software Architect

Навчитеся розробляти дизайн систем таким чином, щоб вони могли легко масштабуватися, зберігаючи баланс між надійністю, ресурсами та часом.

DevOps / Tech Lead / Team Lead

Дізнаєтесь, як великі компанії ладнають із високим навантаженням, розробите власну highload-архітектуру та навчитеся обирати технічні рішення з огляду на завдання бізнесу.

CEO/CTO

Набудете фундаментальних знань у галузі системного дизайну, зрозумієте, які технології застосовувати в тій чи іншій ситуації, та зможете оцінювати витрати на їхню реалізацію.

 

до програми курсу входять

  • 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 млн користувачів щодня, масштабуватися і коректно працювати.

 
 
 
Реєструючись, ви погоджуєтеся з умовами договору-оферти та політикою конфіденційності.