Архитектор высоких нагрузок | OTUS

Курсы

Курсы в разработке Подготовительные курсы
Работа в компаниях Компаниям Блог +7 499 110-61-65

Архитектор высоких нагрузок

Best Practice по HighLoad и отказоустойчивости веб-приложений
Подойдет ли мне этот курс?

Длительность

5 месяцев

Начало

17 декабря

Общая стоимость

70 000 ₽

В месяц

17 000 ₽

В кредит:

17000 ₽ в месяц

Хочу дешевле
Общая стоимость
70 000 ₽
В месяц: 17 000 ₽
В кредит: 70000 ₽
в месяц
Продолжительность
5 месяцев, 4 академ. часа в неделю
Начало занятий
17 декабря
Что даст вам этот курс

Сегодня немногие веб-разработчики обладают достаточным опытом для создания отказоустойчивых и масштабируемых архитектур. И именно такие специалисты являются самыми высокооплачиваемыми и востребованными в крупных компаниях: Google, Mail.Ru Group, Yandex, Netflix и др.

Для кого этот курс

Программа создана специально для веб-разработчиков, тимлидов команд веб-разработки, архитекторов и технических руководителей. За 5 месяцев студенты научатся использовать в своих проектах решения, которые выдерживают сотни тысяч (и даже миллионы) запросов в секунду, смогут правильно оптимизировать работоспособность серверов, начнут эффективно использовать инструменты, которые уже есть в проектах. Также курс позволит актуализировать и систематизировать знания в сфере HighLoad.

Преимущества программы

В процессе обучения рассматриваются типичные и нетривиальные проблемы архитектуры веб-приложений. Преподаватели поделятся лучшими практиками и решениями этих проблем. В программу входит много полезной теории, и вся она будет обязательно закрепляться практикой в рамках самостоятельной работы и онлайн-вебинаров.


изучение основных проблем архитектуры веб-приложений

домашние задания — мини-проекты для портфолио

лучшие практики и решения высоких нагрузок веб-приложений

настоящее комьюнити и постоянный фидбек преподавателей-экспертов



Выпускники смогут:

— создавать веб-приложения, которые легко масштабировать
— обеспечивать отказоустойчивость веб-приложений даже при падении серверов
— правильно использовать шаблоны (кеширование, реплицирование, шардирование, индексирование)
— работать с инструментами, разработанными Google, Mail.Ru Group, Yandex
Всё о курсе «Архитектор высоких нагрузок», 10 декабря в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Ведет
Иван
Ремень
Предыдущий день открытых дверей
Преподаватели
Иван Муратов
Алексей Цыкунов
Вячеслав Смирнов
Юрий Юрочко
Иван Ремень
Валерий Безруков
Получил образование инженера-программиста в ЗабГУ на кафедре ПМиИ по специальности ИВТ. Начинал как системный администратор в государственной организации. После поменял профиль на разработку компьютерных игр, удаленно работал в команде инди-разработчиков из США. На текущий момент занимает должность технического директора в Первой Мониторинговой Компании в Краснодаре, отвечает за разработку системы спутникового мониторинга транспорта Waliot.

Основал backend митапы в Краснодаре, является членом организационного и программного комитетов конференции Krasnodar Dev Conf. Выступал с докладами на таких конференциях, как HighLoad++ и PgConf. Активист краснодарского ИТ сообщества.

Основные технические навыки: Java, Kotlin, Spring, Spring Boot, Spring Cloud, PostgreSQL, Docker.

Преподаватель
Системный архитектор, Oracle DBA, разработчик perl/python, опыт в отрасли - 20 лет
В настоящее время работает на аутсорсе. Работал в интернет-провайдерах и телекоме. Имел опыт внедрения и разработки продуктов в госструктурах, таких как минздрав и соцфонд. Был главным разработчиком стартап проекта Ipstudio AMBS (биллинг для VoIP). Участвовал в проектировании и разработке OLTP систем. Проектировал и развертывал серверные системы в датацентрах.

Закончил Кыргызско-Российский Государственный Университет, 2001, Инженер автоматизированных систем.
Собственный технический блог на - dbadmins.ru

Повышаю качество более 10 лет. Ускорял системы документооборота, порталы государственных услуг. Сейчас развиваю каналы дистанционного банковского обслуживания для юридических лиц.
Основной профиль работы: тестирование производительности.
Хорошо разбираюсь в тестировании защищённости.

Преподаватель
В 2016 окончил МГТУ имени Н.Э.Баумана (ИУ-7).

Профессиональную карьеру начал в 2014, с 2016 работаю в фин. техе, писал бэкенд в hft-фонде, писал с нуля бэкенд биржи Onederx. С 2019 пишу бэкенд часть брокера другой биржи и руковожу небольшой командой разработчиков.

Люблю новые технологии, постоянно стараюсь знакомиться с чем-то новым и применять это на практике. Основные языки - C++/Go.

Преподаватель
Учился в технопарке Mail.Ru. В 2013 году начал работать стажером в проекте "Почта" компании Mail.Ru. С 2015 года преподавал различные (в том числе и авторские) курсы в образовательных проектах Mail.Ru. С 2016 года занимал должность руководителя группы в Почте. В том же году получил диплом магистра по специальности "Программная инженерия" в МГТУ им. Н.Э. Баумана.

С 2018 года начал работать в Ситимобил на должности руководителя группы. С апреля 2019 года был назначен руководителем направления серверной разработки. Занимается развитием технических навыков людей, поддержкой их мотивации, развитием отказоустойчивых архитектур, внедрением новых технологий в процесс разработки (golang, tarantool).

Основные технические навыки:
Golang
C
MySQL
Tarantool
Highload architecture
Linux API

Руководитель программы
Google Cloud Practice Delivery Manager в EPAM Systems
В прошлом SRE & DevOps team lead в Intelligent Blockchain Labs.

Разрабатывал и поддерживал гибридные облачные и высоконагруженные системы (Google Cloud Platform, OpenStack, Hashicorp Terraform)

Занимался развертыванием, эксплуатацией и поддержкой CI/CD (GitLab CI, Hashicorp Nomad, Kubernetes).

Опыт со следующим стеком технологий : Kubernetes/Docker
, Unix/Solaris/Linux, OpenStack, Oracle/PostgreSQL/Hadoop, Google Cloud Platform

Иван
Муратов
Алексей
Цыкунов
Вячеслав
Смирнов
Юрий
Юрочко
Иван
Ремень
Валерий
Безруков
Преподаватели
Иван Муратов
Получил образование инженера-программиста в ЗабГУ на кафедре ПМиИ по специальности ИВТ. Начинал как системный администратор в государственной организации. После поменял профиль на разработку компьютерных игр, удаленно работал в команде инди-разработчиков из США. На текущий момент занимает должность технического директора в Первой Мониторинговой Компании в Краснодаре, отвечает за разработку системы спутникового мониторинга транспорта Waliot.

Основал backend митапы в Краснодаре, является членом организационного и программного комитетов конференции Krasnodar Dev Conf. Выступал с докладами на таких конференциях, как HighLoad++ и PgConf. Активист краснодарского ИТ сообщества.

Основные технические навыки: Java, Kotlin, Spring, Spring Boot, Spring Cloud, PostgreSQL, Docker.

Преподаватель
Алексей Цыкунов
Системный архитектор, Oracle DBA, разработчик perl/python, опыт в отрасли - 20 лет
В настоящее время работает на аутсорсе. Работал в интернет-провайдерах и телекоме. Имел опыт внедрения и разработки продуктов в госструктурах, таких как минздрав и соцфонд. Был главным разработчиком стартап проекта Ipstudio AMBS (биллинг для VoIP). Участвовал в проектировании и разработке OLTP систем. Проектировал и развертывал серверные системы в датацентрах.

Закончил Кыргызско-Российский Государственный Университет, 2001, Инженер автоматизированных систем.
Собственный технический блог на - dbadmins.ru

Вячеслав Смирнов
Повышаю качество более 10 лет. Ускорял системы документооборота, порталы государственных услуг. Сейчас развиваю каналы дистанционного банковского обслуживания для юридических лиц.
Основной профиль работы: тестирование производительности.
Хорошо разбираюсь в тестировании защищённости.

Преподаватель
Юрий Юрочко
В 2016 окончил МГТУ имени Н.Э.Баумана (ИУ-7).

Профессиональную карьеру начал в 2014, с 2016 работаю в фин. техе, писал бэкенд в hft-фонде, писал с нуля бэкенд биржи Onederx. С 2019 пишу бэкенд часть брокера другой биржи и руковожу небольшой командой разработчиков.

Люблю новые технологии, постоянно стараюсь знакомиться с чем-то новым и применять это на практике. Основные языки - C++/Go.

Преподаватель
Иван Ремень
Учился в технопарке Mail.Ru. В 2013 году начал работать стажером в проекте "Почта" компании Mail.Ru. С 2015 года преподавал различные (в том числе и авторские) курсы в образовательных проектах Mail.Ru. С 2016 года занимал должность руководителя группы в Почте. В том же году получил диплом магистра по специальности "Программная инженерия" в МГТУ им. Н.Э. Баумана.

С 2018 года начал работать в Ситимобил на должности руководителя группы. С апреля 2019 года был назначен руководителем направления серверной разработки. Занимается развитием технических навыков людей, поддержкой их мотивации, развитием отказоустойчивых архитектур, внедрением новых технологий в процесс разработки (golang, tarantool).

Основные технические навыки:
Golang
C
MySQL
Tarantool
Highload architecture
Linux API

Руководитель программы
Валерий Безруков
Google Cloud Practice Delivery Manager в EPAM Systems
В прошлом SRE & DevOps team lead в Intelligent Blockchain Labs.

Разрабатывал и поддерживал гибридные облачные и высоконагруженные системы (Google Cloud Platform, OpenStack, Hashicorp Terraform)

Занимался развертыванием, эксплуатацией и поддержкой CI/CD (GitLab CI, Hashicorp Nomad, Kubernetes).

Опыт со следующим стеком технологий : Kubernetes/Docker
, Unix/Solaris/Linux, OpenStack, Oracle/PostgreSQL/Hadoop, Google Cloud Platform

Необходимые знания
— Владение одним из языков серверной разработки: Python, PHP, Golang (предпочтительно), NodeJS (в крайнем случае), Java (в крайнем случае) — Умение верстать сайты на базовом уровне — Знания основ JavaScript — Навыки работы с SQL (составление запросов): в процессе обучения используется MySQL — Навыки работы с Linux
Процесс обучения
Образовательный процесс происходит ONLINE в формате вебинаров (язык преподавания — русский). В рамках курса слушателям предлагаются к выполнению домашние задания, которые позволяют применить на практике знания, полученные на занятиях. По каждому домашнему заданию преподаватель дает развернутый фидбек. В течение всего учебного процесса преподаватель находится в едином коммуникационном пространстве с группой, т. е. при обучении слушатель может задавать преподавателю уточняющие вопросы по учебным материалам.
Программа обучения
Модуль 1
Введение в высокие нагрузки
Модуль 2
СУБД в высоконагруженных проектах
Модуль 3
Разработка бэкенда высоконагруженных сервисов
Модуль 4
Типовые архитектуры
Модуль 5
Итоговый проект
Введение в высокие нагрузки
Тема 1: Проблемы высоких нагрузок
в чем мерить нагрузку
Latency
Throughput
Горизонтальное и вертикальное масштабирование
Когда же начинается высокая нагрузка?
Тема 2: Проблемы высоких нагрузок
модели веб-серверов
Многопроцессные сервера
Многопоточные сервера
Проблемы медленных клиентов
Асинхронные сервера
Nginx vs Apache
Ограничения асинхронной модели
Трехзвенная архитектура
Синхронные и асинхронные языки программирования
Домашние задания: 1
1 Написать заготовку для социальной сети
Цель:
Тема 3: Нагрузочное тестирование
как правильно проводить тестирование под высокими нагрузками?
Генерация тестовых данных
Ограничения
JMeter
ab
Yandex tank
wrk
СУБД в высоконагруженных проектах
Тема 1: Индексы (часть 1)
explain
Структуры данных, которые используются в индексах
B-tree
B+-tree
Бинарные деревья
Домашние задания: 1
1 Сгенерировать случайные страницы для проекта социальной сети
Цель:
Тема 2: Индексы (часть 2)
хэш-таблицы
Какие индексы нужны для запросов
Кластерные индексы
Покрывающие индексы
Первичный ключ в InnoDB и MyISAM
Тема 3: Репликация (часть 1)
виды репликация
Реализация репликации в MySQL
Реализация репликации в PostgreSQL
Домашние задания: 1
1 Добавить m/s репликацию. Сделать балансирование запросов на чтение. Провести нагрузочное тестирование
Цель:
Тема 4: Репликация (часть 2)
ограничения асинхронной репликации
Полусинхронная и синхронная репликации
Проблемы m/m репликации
Тема 5: Репликация (часть 3)
обзор Galera
Инструменты для повышения отказоустойчивости (переключение master/slave)
Домашние задания: 1
1 Обеспечить возможность переключения master на другую машину без потери транзакций
Тема 6: Шардинг (часть 1)
что такое шардирование?
Подготовка
Виды шардинга
Стратегии шардирования
Консистентное шардирование
Guava
Шардирование по диапазону
Виртуальное шардировние
Принцип “Используются вместе - лежат вместе”
Тема 7: Шардинг (часть 2)
vitess
Домашние задания: 1
1 Написать систему диалогов с использованием шардинга
Тема 8: Кеширование
серверное кэширование
Клиентское кэширование
Проблемы кэширования
Инвалидация
Инвалидация кэша
Заголовки управления кэшом
Тема 9: Очереди и отложенное выполнение
aMQP протокол
RabbitMQ
Сущности RabbitMQ - exchange, routing key, queue, dead letters
Примеры работы с очередями RabbitMQ в языке golang
Kafka
Домашние задания: 1
1 Разработать ленту новостей
Разработать ленту новостей
Настроить кэширование для раздачи статики
Настроить кэширование ленты новостей
Настроить публикацию ленты новостей через очереди (рассмотреть эффект Леди Гаги)
Тема 10: Транзакции в РСУБД
aCID
CAP теорема
Производительность транзакции
Проектирование ПО для работы с транзакциями
Уровни изоляции и методы их обеспечения: MVCC и другое
20 ноября, 20:00 — 21:30
Лектор: Иван Ремень
Тема 11: In-Memory СУБД
особенности In-Memory баз данных
Tarantool
Применимость in-memory баз
Tarantool как реплика mysql
22 ноября, 20:00 — 21:30
Лектор: Иван Ремень
Домашние задания: 1
1 Поднять реплику mysql<->tarantool для любой таблицы из любой подсистемы
Цель:
Тема 12: OLAP и OLTP (часть 1)
oLTP
OLAP
Отличие OLTP и OLAP нагрузки
Реализации OLAP и OLTP
27 ноября, 20:00 — 21:30
Тема 13: OLAP и OLTP (часть 2)
clickhouse и его архитектура
29 ноября, 20:00 — 21:30
Лектор: Юрий Юрочко
Домашние задания: 1
1 Провести сравнительные тесты ClickHouse и MySQL
Провести сравнительные тесты ClickHouse и MySQL
При запросах на запись
При большом количестве легких запросов на чтение
При малом количестве тяжелых запросов на чтение
Разработка бэкенда высоконагруженных сервисов
Тема 1: Протокол HTTP (часть 1)
протокол HTTP
Методы HTTP
REST-API
HTTPS (handshake, ускорение)
Chunk encodning
Сжатие: gzip, brotli, zopfli
11 декабря, 20:00 — 21:30
Тема 2: Протокол HTTP (часть 2)
tCP handshake
HTTP Keep-Alive
HTTP 2.0
WebSockets
13 декабря, 20:00 — 21:30
Домашние задания: 1
1 Применить в ленте новостей технологию web-socket для обновления ленты налету
Тема 3: Микросервисы (часть 1)
зачем нужны микросервисы
Взаимодействие микросервисов
Виды API
18 декабря, 20:00 — 21:30
Лектор: Иван Муратов
Тема 4: Микросервисы (часть 2)
event-Driven микросервисы
Идемпотентное API
Коммутативность API
20 декабря, 20:00 — 21:30
Лектор: Иван Муратов
Домашние задания: 1
1 Выделить систему диалогов в отдельный сервис
Выделить систему диалогов в отдельный сервис.
Реализовать взаимодействие сервисов через любое rest-API
Тема 5: Балансировка и отказоустойчивость (часть 1)
как устроен DNS
Балансировка через DNS
xixi-DNS
Балансировка reverse-proxy
Балансировка backend
Балансировка хранилищ
25 декабря, 20:00 — 21:30
Тема 6: Балансировка и отказоустойчивость (часть 2)
cARP
Haproxy
orchestrator
Libslave
27 декабря, 20:00 — 21:30
Лектор: Иван Ремень
Домашние задания: 1
1 Реализовать соединение с mysql через haproxy
Реализовать соединение с mysql через haproxy.
Поднять несколько приложений и обеспечить их балансировку через nginx.
Тема 7: Использование асинхронности обработки
live-coding асинхронной обработки запроса на примере разработки twitter-like программы
10 января, 20:00 — 21:30
Тема 8: Распределенные транзакции
как обеспечить консистентность хранилищ разных БД
Гетерогенные и гомогенные транзакции
15 января, 20:00 — 21:30
Лектор: Иван Ремень
Домашние задания: 1
1 Сделать сервис счетчиков. Обеспечить консистентное хранение числа непрочитанных сообщений при отправке сообщения
Цель:
Тема 9: Инфраструктура микросервисов
init.d
Systemd
Docker
Graceful restart
Graceful shutdown
17 января, 20:00 — 21:30
Тема 10: Системы конфигурации
etcd
consul
Византийский консенсус
Задача о византийских генералах
paxos
raft
gossip
Конфигурация без перезагрузки
memtable, sstable, LSM
22 января, 20:00 — 21:30
Домашние задания: 1
1 Обернуть сервис диалогов в docker. Научить остальные сервисы находить сервис диалогов через consul
Тема 11: Мониторинг и алертинг
мониторинг
Алертинг
Стратегии выбора порогов алертинга
Поиск аномалий
Graphite
Sentry
Grafana
Prometheus
Zabbix
Бизнес-мониторинг
Организация дежурств
24 января, 20:00 — 21:30
Типовые архитектуры
Тема 1: Новостной портал
29 января, 20:00 — 21:30
Домашние задания: 1
1 Организовать мониторинги свой социальной сети
Цель:
Тема 2: Рекламная система
31 января, 20:00 — 21:30
Тема 3: Почтовый сервис
5 февраля, 20:00 — 21:30
Лектор: Иван Ремень
Домашние задания: 1
1 Сделать обзор архитектуры любого крупного западного сервиса: netflix, dropbox, twitch, gmail, ...
Тема 4: Облачное хранилище
7 февраля, 20:00 — 21:30
Лектор: Иван Ремень
Тема 5: Сайт знакомств
12 февраля, 20:00 — 21:30
Домашние задания: 1
1 Сделать описание потенциальных узких мест собственной архитектуры
Сделать описание потенциальных узких мест собственной архитектуры.
Выработать план возможных решений.
Найти single points of failure
Итоговый проект
Необходимо разработать отказоустойчивую и масштабирую архитектуру веб-проекта. Далее разработать MVP по данной архитектуре.
Тема 1: Консультация по проекту
выбрать и обсудить выбранный проект

Варианты проектов:
- Новостной ресурс
- Сайт знакомств
- Ресурс для персональных блогов
- Интернет-магазин
- Или любой другое проект, кроме социальной сети
14 февраля, 20:00 — 21:30
Домашние задания: 1
1 Разработать MVP по данной архитектуре
Цель: Варианты проектов: Новостной ресурс Сайт знакомств Ресурс для персональных блогов Интернет-магазин Или любой другое проект, кроме социальной сети
Тема 2: Консультация по проекту
19 февраля, 20:00 — 21:30
Тема 3: Защита проекта
защита архитектуры и MVP
21 февраля, 20:00 — 21:30
Выпускной проект
Выпускной проект — возможность закрепить навыки, наработанные в процессе обучения. Это отдельная работа, на выполнение которой отводится последний месяц обучения. Тема проекта обсуждается с преподавателем в индивидуальном порядке.
Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Обеспечение отказоустойчивости хранилищ
Иван Ремень
День открытых дверей
20 сентября в 20:00
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Пройти вступительное тестирование
После обучения вы

  • получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, выпускной проект)

  • сможете писать рациональный и хорошо структурированный код

  • получите сертификат об окончании курса

  • приобретёте навыки работы с алгоритмами и структурами данных, которые необходимы при реализации сложных проектов в крупных компаниях

  • получите приглашение пройти собеседование в компаниях-партнёрах (в случае успешного обучения)

Дата выдачи сертификата: 21 июня 2020 года
Ваш сертификат

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Архитектор высоких нагрузок»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.

онлайн-образование

Сертификат №0001

Константин Константинопольский

Успешно закончил курс «Архитектор высоких нагрузок»
Выполнено практических заданий: 16 из 16

Общество с ограниченной ответственностью “Отус Онлайн-Образование”

Город:
Москва

Генеральный директор ООО “Отус Онлайн-Образование”
Виталий Чибриков

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.
Партнеры ждут выпускников этого курса
Общая стоимость
70 000 ₽
В месяц: 17 000 ₽
В кредит: ₽ в месяц
Продолжительность
5 месяцев
Начало занятий
17 декабря