Архитектор высоких нагрузок. Лучшие практики по HighLoad и отказоустойчивости веб-приложений | OTUS

Курсы

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

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

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

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

5 месяцев

Начало

30 марта

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

70 000 ₽

В месяц

17 000 ₽

В кредит:

17000 ₽ в месяц

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

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

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

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

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

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


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

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

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

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



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

— создавать веб-приложения, которые легко масштабировать
— обеспечивать отказоустойчивость веб-приложений даже при падении серверов
— правильно использовать шаблоны (кеширование, реплицирование, шардирование, индексирование)
— работать с инструментами, разработанными Google, Mail.Ru Group, Yandex
Преподаватели
Иван Ремень
Вячеслав Смирнов
Юрий Юрочко
Иван Муратов
Валерий Безруков
Алексей Цыкунов
Павел Викирюк
"Оператор связи MVNO", DevOps-инженер
Владислав Родин
Учился в технопарке Mail.Ru. В 2013 году начал работать стажером в проекте "Почта" компании Mail.Ru. С 2015 года преподавал различные (в том числе и авторские) курсы в образовательных проектах Mail.Ru. С 2016 года занимал должность руководителя группы в Почте. В том же году получил диплом магистра по специальности "Программная инженерия" в МГТУ им. Н.Э. Баумана.

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

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

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

В 2016 окончил МГТУ имени Н.Э.Баумана (ИУ-7).

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

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

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

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

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

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

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

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

Специалист по администрированию серверов Linux и администрированию сетевого оборудования.

Ключевые навыки:
Операционные системы: Linux (Debian,Ubuntu,RedHat,CentOS,Fedora), FreeBSD, Windows
Виртуализация: QEMU KVM, Xen, VMware, Hyper-V
Контейнеризация: Docker, Docker Swarm
Сеть: протоколы статической и динамической маршрутизации, VPN, NFS, iSCSI
Мониторинг: Munin, Zabbiх, Nagios, Prometheus, Grafana, PMM
Централизация сбора логов: ELK, Graylog
Резервное копирование: Bacula
Программирование: Bash, Python

Работал Java- разработчиком в таких компаниях как НСПК и Яндекс. Занимался проблемами высокой нагрузки, работая как на Spring'овом, так и на Java EE'шном стеках. Улучшал инфраструктуру проектов, внедряя CI/CD и миграции БД. Строил С4- архитектурные схемы для проектов. Преподаю в Московском Физико-Техническом Институте и на портале foxminded.

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

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

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

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

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

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

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

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

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

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

Валерий Безруков
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

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

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

Павел Викирюк
"Оператор связи MVNO", DevOps-инженер
Специалист по администрированию серверов Linux и администрированию сетевого оборудования.

Ключевые навыки:
Операционные системы: Linux (Debian,Ubuntu,RedHat,CentOS,Fedora), FreeBSD, Windows
Виртуализация: QEMU KVM, Xen, VMware, Hyper-V
Контейнеризация: Docker, Docker Swarm
Сеть: протоколы статической и динамической маршрутизации, VPN, NFS, iSCSI
Мониторинг: Munin, Zabbiх, Nagios, Prometheus, Grafana, PMM
Централизация сбора логов: ELK, Graylog
Резервное копирование: Bacula
Программирование: Bash, Python

Владислав Родин
Работал Java- разработчиком в таких компаниях как НСПК и Яндекс. Занимался проблемами высокой нагрузки, работая как на Spring'овом, так и на Java EE'шном стеках. Улучшал инфраструктуру проектов, внедряя CI/CD и миграции БД. Строил С4- архитектурные схемы для проектов. Преподаю в Московском Физико-Техническом Институте и на портале foxminded.

Преподаватель
Необходимые знания
— Владение одним из языков серверной разработки: Python, PHP, Golang (предпочтительно), NodeJS (в крайнем случае), Java (в крайнем случае) — Умение верстать сайты на базовом уровне — Знания основ JavaScript — Навыки работы с SQL (составление запросов): в процессе обучения используется MySQL — Навыки работы с Linux
Подготовительный курс
Курс рассчитан для программистов и администраторов, которые хотят освоить ОС Linux с нуля.

На курсе мы:

  • детально разберем основные команды в Linux и научимся работать в консоли

  • познакомимся с зомби, сиротами и демонами

  • выясним, что такое ядро операционной системы и системные вызовы

  • научимся работать со стандартными потоками ввода/вывода

  • разберем некоторые особенности файловой системы ext4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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