System Design Crash Course #5

Швидкий курс по System Design від Олексія Петрова
Online
Подія відбулась
System Design Crash Course #5
System Design Crash Course #5
Подія відбулась
Подія відбулась
Подія відбулась

Що робити, коли просять дизайн системи на кшталт YouTube з його петабайтами відео та мільйонами користувачів? Або Twitter з сотнями тисяч людей, що пишуть свої думки приблизно з тією ж частотою, як вони з'являються у голові? Як би міг виглядати дизайн Clubhouse або TikTok? Сотні тисяч людино-годин роботи просять спроєктувати за 30-40 хвилин. Та і як має виглядати той дизайн? Що від вас очікують і який результат потрібен? Про що варто турбуватися, а про що ні? Як не впасти в ступор від поставленої задачі і видати хоч щось?

За мотивами доповіді "Як задизайнити Facebook за пів години або секрети System Design Interview, було створено “System Design Crash Course”.

Від спікера:

Я отримав досить багато запитань з приводу тих чи інших аспектів системного дизайну в цілому. Також були питання по процесу інтерв'ю із системного дизайну та деяких його етапів. Більше “лайфхаків”, більше кейсів і таке інше. Зрозуміло, що за 50 хвилин доповіді розкрити абсолютно все в достатній мірі було неможливо.

Тому пропоную на два дні зануритись у тему системного дизайну разом зі мною.

Аудиторія:

Цей курс орієнтований на Middle, Senior розробників, Team leads / Tech leads, Architects.

Формат:

  • Кількість учасників: до 40
  • Тривалість: 2 дні. Початок 8 липня о 10:00 (GMT+3).
  • Подія відбудеться українською мовою онлайн на платформі Zoom.
  • Курс поділений на дві частини: Distributed System Design Fundamentals та System Design in Practice, приблизно по 8 годин кожна.

Trainer Oleksii Petrov

— Solution Architect at Jain Irrigation Inc.;

— AWS Certified Solution Architect;

— Docker/Kubernetes apologist;

— MongoDB Certified Developer;

— TOP speaker at Fwdays conferences;

Twitter

Програма:

Distributed System Design Fundamentals

В цій частині ми розглянемо основні компоненти та принципи розподілених систем:

  • Deep dive у Networking
  • GeoDNS, Load Balancers, Cache, Proxy, Reverse Proxy, Rate Limiters, CDN
  • Підходи побудови High Availability систем.
  • Deep dive у Storage. Техніки вибору "правильної" БД під ваші потреби
  • Поговоримо про дерева та індекси LSM і B-Tree.
  • Розглянемо механізми та проблеми Replication і Sharding у базах даних.
  • Також обговоримо основні паттерни, що використовуються при побудові розподілених систем.
Та інше.

System Design in Practice:

Ця частина буде присвячена процесу System Design interview. Мені подобається саме такий формат практики у системному дизайні за декількома ознаками:

— Це супер корисні навички, які можна використати при нагоді у співбесіді.

— Такий формат не дає розслабитися, оскільки має таймбокс у ~40 хвилин на дизайн всього рішення.

Прокрастинація — наш великий ворог. Коли є задача на дизайн системи, можна ходити та довго думати, з чого почати. Таким чином, втрачаючи дорогоцінний час і залишаючись, по суті, на місці зі своєю задачею. Тому стислий формат змушує рухатися швидше.

Краще — ворог хорошого. А у нас задача видати хороший дизайн системи швидко. Тому ми спочатку розглянемо всі етапи інтерв'ю і побудуємо собі план дій. Потім, рухаючись за цим планом, ми задизайнимо дві різні системи. Пройдемо поетапно усі фази дизайну системи та вдосконалимо теорію на практиці.

Відгуки:

Курс проводиться повторно, ділимось реальними відгуками з минулого разу (з дозволу учасників)

Частина курсу "Networking"
"Складна для сприйняття інформація подана доступно та зрозуміло. Деякі речі розібрано детально, що дозволяє заповнити певні пробіли у власних знаннях."

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

"1. Дуже детальне пояснення мереж і роботи БД. В мене були дуже великі пробіли до цього вебінару, знав про деякі речі тільки поверхнево
2. Круто що пройшлись по деяким сервісам AWS. Вцілому щось знав, щось дізнався нове
3. Лайк що курс українською!
4. Насичено) По завершенню я просто вийшов на вулицю, годину просто гуляв і агрегував всю інформацію)"
Частина курсу "Storage"
"Хороше узагальнення та класифікація різних типів Storage"

"Уся інформація систематизована, з прикладами, критеріями вибору, перевагами та недоліками. Супер."

"Лаконічність та корисна вижимка по термінах та описах з прикладами. Розбір практичних кейсів."

"Сподобалася структурованість і пояснення "чому саме так". Сподобалася частина про роботу дисків. Сподобалася частина про алгоритми. Сподобалось що в кінці була агрегуюча інформація в яких таблицях які алгоритми використовуються. Загалом є відчуття що ти маєш достаньо high level інформації щоб пояснити свій вибір тієї чи іншої БД під час System Interview. Але як воно буде - то вже покаже час)"
Частина курсу "Patterns"
"Фокус лише на важливих шаблонах проектування системи."

"Предметність частини, це було корисним."

"Дізнався нові і корисні для себе штуки :)"

"Гарна та структурована подача матеріалу! Саме те що всі пишуть у відгуках і саме те що вдалось перевірити особисто."
Частина курсу "Interview Insights"
"Було цікаво послухати про те, як все-таки на такому високому технічному рівні знову звертають увагу на софт скіли, сподобався план, як витягувати опис продукту, який треба змоделювати."

"Класна тема з Summary і приблизним естімейтами, адже справді, коли намагаєшся зробити все точно, то можеш сильно загрузнути."

"Насправді дуже цінно, що Олексій подав своє власне бачення щодо певних речей в дизайні архітектури, щодо різної ваги Quality Attributes, щодо того як краще задавати питання по FR/NFR, що були приклади із власного досвіду. Це саме те за чим приходиш на авторські курси, бо сухий check-list із книжок чи інтернету цих знань ніколи не дасть."
Частина курсу "System Design Cases"
"Дуже реалістичний приклад, який дозволив мені зрозуміти свої помилки."

"Сподобалося виділення того факту, що тут присутній функціонал, який треба розділяти по навантаженню, як наприклад, завантаження відео, метаінформація і статистика."

"Завжди класно отримати бачення вузьких місць якоїсь системи очима іншої людини."

"Дуже детально розібраний кейс, проговорений кожний вибір, і мотивація чому це важливо"
Про курс загалом
"Загалом, формат здається доволі оптимальним. Втомлюєшся, звісно від кількості нової інформації, але навряд з цим можна було б щось зробити. Те, що запис відео буде доступний -- круто, можна потім буде на свіжу голову пройтись по вже вибудованій у голові структурі."

"Відчувається, що автор розуміє, про що говорить і це найголовніше. Відношення тих чи інших тем до курсу теж максимально прозоре, все круто."

"Вважаю правильним рішення щодо участі в цьому курсі. Отримав більш широкі знання та погляд на речі, що обговорювались сьогодні та будуть завтра. Дякую за плідну працю!"
Увійти
Або поштою
Увійти
Або поштою
Реєстрація через e-mail
Реєстрація через e-mail
Забули пароль?