Курс: Highload Architect
Продолжительность курса: 40 ак. ч.
Описание курса:
Сегодня немногие веб-разработчики обладают достаточным опытом для создания отказоустойчивых и масштабируемых архитектур. И именно такие специалисты являются самыми высокооплачиваемыми и востребованными в крупных компаниях: Google, VK, Yandex, Netflix и др.
В процессе обучения рассматриваются типичные и нетривиальные проблемы архитектуры веб-приложений. Преподаватели поделятся лучшими практиками и решениями этих проблем. В программу входит много полезной теории, и вся она будет обязательно закрепляться практикой в рамках самостоятельной работы и онлайн-вебинаров.
Cтуденты научатся использовать в своих проектах решения, которые выдерживают сотни тысяч (и даже миллионы) запросов в секунду, смогут правильно оптимизировать работоспособность серверов, начнут эффективно использовать инструменты, которые уже есть в проектах. Также курс позволит актуализировать и систематизировать знания в сфере HighLoad.
Аудитория:
• веб-разработчики
• тимлиды команд веб-разработки
• архитекторы
• технические руководители
• SRE-специалисты
Необходимая подготовка:
• Владение одним из языков программирования, при помощи которого можно написать сервер
• Навыки работы с SQL (составление запросов): в процессе обучения используется MySQL/PostgreSQL
• Навыки работы с Linux
Программа курса:
Модуль 1. Введение в высокие нагрузки
• Проблемы высоких нагрузок
• Введение в docker. Обзор docker-compose
• Введение в высокие нагрузки
• Нагрузочное тестирование
Модуль 2. СУБД в высоконагруженных проектах
• Индексы: структуры данных
• Индексы: оптимизация запросов
• Репликация: основы и алгоритмы
• Репликация: виды репликации
• Репликация: практическое применение
• Кеширование
• Транзакции в реляционных СУБД
• Шардирование: основы и алгоритмы
• Шардирование: практическое применение
• Очереди и отложенное выполнение #1
• Очереди и отложенное выполнение #2
• In-Memory СУБД
• OLAP и OLTP
• Обзор ClickHouse
• Leaderless базы данных. Casandra
Модуль 3. Разработка бэкенда высоконагруженных сервисов
• Когда нужны микросервисы, а когда монолиты
• Паттерны декомпозиции системы на микросервисы
• Domain Driven Design
• Принципы организации микросервисов. Типы взаимодействий
• Протокол HTTP #1
• Протокол HTTP #2
• Балансировка и отказоустойчивость #1
• Балансировка и отказоустойчивость #2
• Использование асинхронности обработки
• Распределенные транзакции
• Инфраструктура микросервисов
• Системы конфигурации
• Распределенное файловое хранилище
• Мониторинг и алертинг
• Средства описания архитектуры
Модуль 4. Типовые проблемы Highload на примере разных архитектур
• Новостной портал, Сайт знакомств
• Рекламная система, Видеостриминг, Облачное хранилище
Модуль 5. System Design на практике
• System Design
• System Design: Сервис продажи билетов
• Разбор системы 2
Модуль 6. Проектная работа
Окончательная цена указывается в договоре на обучение.
Записаться на курс