Software Architect: Best Practice по разработке архитектуры программного обеспечения

Курсы

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

Архитектор программного обеспечения

Best Practice по разработке архитектуры программного обеспечения
Подойдет ли мне этот курс?

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

4 месяца

Начало

27 ноября

Занятия

Ср 20:00, Сб 11:00

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

44 000 ₽

В месяц

12 500 ₽

В кредит:

12500 ₽ в месяц

Хочу дешевле
Общая стоимость
44 000 ₽
В месяц: 12 500 ₽
В кредит: 44000 ₽
в месяц
Продолжительность
4 месяца, 4 академ. часа в неделю
Ср 20:00, Сб 11:00
Начало занятий
27 ноября
Что даст вам этот курс

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

Особенности программы
В процессе обучения мы рассмотрим множество нетривиальных проблем проектирования backend-приложений и их дальнейшего сопровождения. Изучим не только паттерны проектирования новых сервисов, но и освоим подходы к работе с legacy-сервисами. Научимся решать проблемы с согласованностью изменений (например, порядок применения транзакций) или с оркестрацией сервисов, что будет полезно тем, кто работает в сфере распределенных / децентрализованных систем.

Для кого этот курс
Программа создана специально для разработчиков, Team Lead и администраторов, готовых освоить Best Practice по разработке архитектуры программного обеспечения и сложных распределенных и отказоустойчивых систем.

После обучения
Выпускники на профессиональном уровне смогут планировать архитектуру и создавать масштабируемые, fault-tolerant приложения, решая нетривиальные задачи в рамках распределенных и децентрализованных систем и используя в проектах классические паттерны проектирования (шардирование, репликация, и т.д.).

Выпускной проект
Проектная работа включает в себя разработку распределенной / децентрализованной, отказоустойчивой системы. Темы для проектов:
— распределенная база данных,
— распределенный data-lake,
— реализация приватного блокчейн,
— распределенная система семантического поиска.


изучение основных проблем при проектировании архитектуры ПО

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

лучшие практики проектирования архитектуры ПО

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

Всё о курсе «Архитектор программного обеспечения», 21 ноября в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Ведет
Егор
Зуев
Преподаватели
Егор Зуев
TeamLead в компании InBit
Стас Щетинников
Более 10 лет суммарного опыта работы. Принимал участие в формировании и развитии таких стартапов, как Chronobank (teamLead), NeverEatAlone (teamLead), NeuroIO (CTO, Co-founder), Tymlez (Lead Dev). За свою карьеру Егору удалось поработать в разных отраслях, включая телемедину, IOT, Blockchain, социальные сети, и телеметрию. Успел попробовать себя в качестве мобильного разработчика, игродела, фронт-энд разработчика, бэкенд разработчика.

Имеет звание магистра, закончил НИУ ВШЭ по направлению “информатика и вычислительная техника” с отличием. Также Егор занимался научными исследованиями при МГУ (IOT, умный дом), МГТУ Имени Баумана (Микроконтроллеры для вентиляции), Плехановском университете и МАТИ (Нейрология, определение артефактов). На текущий момент времени, Егор занимается научными исследованиями на базе НИУ ВШЭ по направлению “распределенные системы”.

Является победителем Московского отбора “imagine cup” от Microsoft (команда thinger), участником хакатона от IBM, победителем программы “innostar” (инновационные проекты), победитель программы “У.М.Н.И.К” по развитию малых предприятий (инновационные проекты). Также, Егор прошел сертификацию от Cambridge на знание английского языка (FCE, CAE).

Руководитель программы
Программирует больше 10 лет. Архитектурой систем занимается уже больше 6 лет.

На данный момент директор разработки в Домклик. До этого несколько лет работал руководителем разработки в myTarget. Любит Data Science, python, golang, DDD и микросервисную архитектуру.

Преподаватель
Егор
Зуев
Стас
Щетинников
Преподаватели
Егор Зуев
TeamLead в компании InBit
Более 10 лет суммарного опыта работы. Принимал участие в формировании и развитии таких стартапов, как Chronobank (teamLead), NeverEatAlone (teamLead), NeuroIO (CTO, Co-founder), Tymlez (Lead Dev). За свою карьеру Егору удалось поработать в разных отраслях, включая телемедину, IOT, Blockchain, социальные сети, и телеметрию. Успел попробовать себя в качестве мобильного разработчика, игродела, фронт-энд разработчика, бэкенд разработчика.

Имеет звание магистра, закончил НИУ ВШЭ по направлению “информатика и вычислительная техника” с отличием. Также Егор занимался научными исследованиями при МГУ (IOT, умный дом), МГТУ Имени Баумана (Микроконтроллеры для вентиляции), Плехановском университете и МАТИ (Нейрология, определение артефактов). На текущий момент времени, Егор занимается научными исследованиями на базе НИУ ВШЭ по направлению “распределенные системы”.

Является победителем Московского отбора “imagine cup” от Microsoft (команда thinger), участником хакатона от IBM, победителем программы “innostar” (инновационные проекты), победитель программы “У.М.Н.И.К” по развитию малых предприятий (инновационные проекты). Также, Егор прошел сертификацию от Cambridge на знание английского языка (FCE, CAE).

Руководитель программы
Стас Щетинников
Программирует больше 10 лет. Архитектурой систем занимается уже больше 6 лет.

На данный момент директор разработки в Домклик. До этого несколько лет работал руководителем разработки в myTarget. Любит Data Science, python, golang, DDD и микросервисную архитектуру.

Преподаватель
Егор Зуев о курсе «Архитектор программного обеспечения»
Необходимые знания
Знание и опыт работы в одном из следующих стеков: Java (spring / Java EE), Node.js, C# (.net), python (django), Golang, PHP
Процесс обучения
Образовательный процесс происходит ONLINE в формате вебинаров (язык преподавания — русский). В рамках курса слушателям предлагаются к выполнению домашние задания, которые позволяют применить на практике знания, полученные на занятиях. По каждому домашнему заданию преподаватель дает развернутый фидбек. В течение всего учебного процесса преподаватель находится в едином коммуникационном пространстве с группой, т.е. при обучении слушатель может задавать преподавателю уточняющие вопросы по учебным материалам.
Программа обучения
Модуль 1
Introduction
Модуль 2
Centralized Systems. Single node patterns
Модуль 3
Centralized Systems. Multi node patterns (microservices)
Модуль 4
Decentralized Systems
Модуль 5
Costs and efforts
Модуль 6
Итоговый проект
Introduction
Тема 1: Проблемы проектирования масштабируемых приложений. Типы решаемых задач
27 ноября, 20:00 — 21:30
Тема 2: Когда нужен монолит, а когда микросервисы и компоненты
30 ноября, 11:00 — 12:30
Centralized Systems. Single node patterns
Тема 1: Sidecar паттерн. Принцип работы. Реализация паттерна на основе обвязки legacy сервиса (расширение поведения)
4 декабря, 20:00 — 21:30
Домашние задания: 1
1 Создать простой REST сервис, с одним методом GET /records.
Данный метод должен возвращать массив с записями (например [{user: 12, count:3, age: 22}…]).
Далее, представим, что нам нужно поменять формат выходных данных (например, заменить ключ age, на user_age) – для этого нужно будет разработать сервис, по паттерну sidecar, который будет расширять наш существующий сервис.
Тема 2: Ambassador паттерн. Принцип работы. Реализация паттерна на примере маршрутизатора (или proxy)
7 декабря, 11:00 — 12:30
Домашние задания: 1
1 Создать простой REST сервис.
Создать простой REST сервис.
У данного сервиса должен быть метод GET /user/:id/posts.
Данный метод должен возвращать JSON с постами пользователя {id: number, title: string, body:}.
Необходимо запустить 2 инстанса данного сервиса.
Один сервис будет держать посты для пользователей с id <=10, другой 11-20 (то есть будет шардинг).
Далее необходимо создать еще один сервис, который будет иметь такой же метод (GET /user/:id/posts), но уже, исходя из переданного id, будет обращаться на тот, или иной инстанс первого созданного сервиса (то есть это будет ambassador)
Тема 3: Adapter паттерн. Принцип работы. Реализация паттерна на примере создания универсального логгера
11 декабря, 20:00 — 21:30
Домашние задания: 1
1 Создать 3 сервиса. Каждый из этих 3 сервисов, должен периодически (например, по таймауту) отсылать логи по указанному адресу.
Создать 3 сервиса. Каждый из этих 3 сервисов, должен периодически (например, по таймауту) отсылать логи по указанному адресу. Постарайтесь сделать так, чтобы у каждого сервиса формат логов был индивидуальный. Далее вам необходимо создать новый сервис, который будет принимать эти логи, приводить к единому формату и сохранять в бд (то есть необходимо реализовать adapter паттерн).
Centralized Systems. Multi node patterns (microservices)
Тема 1: Stateless services. Принцип работы. Реализация паттерна на примере обычного REST сервиса и балансировщика
14 декабря, 11:00 — 12:30
Тема 2: State services. Принцип работы. Реализация паттерна на примере REST сервиса с сессиями
18 декабря, 20:00 — 21:30
Домашние задания: 1
1 Создать простой REST сервис с авторизацией по токену (например JWT).
Создать простой REST сервис с авторизацией по токену (например JWT).
Далее, необходимо вынести хранение временных токенов в отдельное хранилище (например Redis), чтобы несколько инстансов сервиса могло завалидировать пользователя.
Тема 3: Sharding. Принцип работы. Реализация паттерна на примере распределенного поиска
21 декабря, 11:00 — 12:30
Тема 4: Caching and sidecar. Принцип работы. Реализация паттерна на примере механизма кеширования запросов до сервиса
25 декабря, 20:00 — 21:30
Домашние задания: 1
1 Создать сервис, с одним REST методом POST /search.
Создать сервис, с одним REST методом POST /search.
Обращаясь по данному пути, сервис должен производить поиск по переданным данным в своей базе данных.
Пусть каждый инстанс сервиса держит исключительно свои данные (то есть как шардинг).
Далее необходимо создать еще один сервис, который будет выполнять роль ambassador, и произовдить поиск по всем инстансам поискового сервиса, далее группировать результаты и отдавать клиенту.
При каждом повторном запросе, поисковый сервис должен кешировать результаты на определенное время (желательно, чтобы можно было задать в конфиге).
Тема 5: Вопросы отказоустойчивости информационной системы. Отложенные сообщения (очереди). Реализация системы уведомлений пользователей, состоящей из нескольких сервисов
28 декабря, 11:00 — 12:30
Домашние задания: 1
1 Модернизировать универсальный логгер (ДЗ 3) таким образом, чтобы отправка логов теперь происходила через очередь сообщений.
Decentralized Systems
Тема 1: Общий концепт. Решаемые задачи. Примеры
1 января, 20:00 — 21:30
Тема 2: CAP теорема. Общие принципы и описание. BASE и ACID
4 января, 11:00 — 12:30
Тема 3: CP системы. RAFT, PAXOS
8 января, 20:00 — 21:30
Домашние задания: 1
1 Используя любой CP алгоритм, необходимо реализовать свою базу данных (например K-V).
Тема 4: CP системы в базах данных (арбитры, блокировки)
11 января, 11:00 — 12:30
Тема 5: PA системы. GOSSIP, CasPAXOS. CRDT структуры
15 января, 20:00 — 21:30
Домашние задания: 1
1 Используя любой PA алгоритм, необходимо реализовать механизм обмена сообщениями (на подобии чата).
Тема 6: Основы работы блокчейн и DAG
18 января, 11:00 — 12:30
Costs and efforts
Тема 1: Оценка стоимости спроектированной системы. Определение рисков на разных стадиях жизненного цикла: проектирование, разработка, внедрение, поддержка и эксплуатация, утилизация
22 января, 20:00 — 21:30
Итоговый проект
Тема 1: Вводный урок по итоговому проекту
25 января, 11:00 — 12:30
Домашние задания: 1
1 Итоговый проект
Цель: В завершении курса студентам будет предложено выполнить проектную работу. Задание включает в себя разработку распределенной / децентрализованной, отказоустойчивой системы. 1) Консультация по проекту. Студентам будет предложено одно из заданий на выбор (либо свое): 1. распределенная база данных. 2. распределенный data-lake. 3. реализация приватного блокчейн 4. распределенная система семантического поиска Необходимо выбрать и обсудить спецификации проекта.
Тема 2: консультация по проекту
консультация по проекту. Промежуточный скрининг проектов.
29 января, 20:00 — 21:30
Домашние задания: 1
1 Необходимо предоставить первый прототип системы (MVP)
Тема 3: Итоговый урок
защита проекта. Защита архитектуры и реализации проекта
1 февраля, 11:00 — 12:30
Выпускной проект
Выпускной проект — возможность закрепить навыки, наработанные в процессе обучения. Это отдельная работа, на выполнение которой отводится последний месяц обучения.
Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Алгоритмы согласования
Егор Зуев
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Пройти вступительное тестирование
После обучения вы

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

  • сможете планировать архитектуру и создавать масштабируемые, fault-tolerant приложения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018г.
Общая стоимость
44 000 ₽
В месяц: 12 500 ₽
В кредит: ₽ в месяц
Продолжительность
4 месяца
Начало занятий
27 ноября