Software Architect: Best Practice по разработке архитектуры программного обеспечения
Для всех, кто влюблен в технологии!
Специальные скидки ко дню компьютерщика! Забирай промокод в нашем чате ➞
Подробнее

Курсы

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

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

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

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

4 месяца

Начало

31 марта

Занятия

Вт 20:00, Пт 20:00

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

60 000 ₽

В месяц

17 500 ₽

В кредит:

17500 ₽ в месяц

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

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

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

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

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



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

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

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

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

Микросервисная архитектура: достоинства и недостатки, 18 марта в 20:00
Рассмотрим основные преимущества микросервисной архитектуры, а также её слабые места. Выясним, для каких проектов микросервисы подойдут лучше всего, а где целесообразно писать монолитное приложение.
Ведет
Стас
Щетинников
Предыдущий открытый вебинар
Всё о курсе «Архитектор программного обеспечения», 25 марта в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Также преподаватель расскажет о своём профессиональном опыте и ответит на вопросы участников. Поэтому если есть вопрос, запишитесь на онлайн-трансляцию и задайте его в прямом эфире!
Стас
Щетинников
Предыдущий день открытых дверей
Преподаватели
Егор Зуев
TeamLead в компании InBit
Стас Щетинников
Михаил Кузнецов
ING Group
Вадим Тисов
Ведущий разработчик в QIWI
Владислав Родин
Более 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 и микросервисную архитектуру.

Руководитель программы
Fullstack developer в международной финансовой корпорации ING с главным офисом в Амстердаме (Нидерланды). Проектирует и поддерживает процессы WEB-разработки. Окончил химфак МГУ.

Программирует на JavaScript уже около 8 лет. Консультировал по JS-разработке, занимался популяризацией фронтенд-фреймворка Vue.js.

Кроме JavaScript, имеет опыт разработки на Python и Java. Выступал докладчиком на конференциях Frontend Conf Moscow, UtahJS и др.

Преподаватель
Закончил магистратуру МФТИ факультет ФИВТ. Занимается разработкой нового платежного процессинга на основе микросервисной архитектуры на Kotlin, Spring Boot, Spring Cloud, Kubernetes.

Интересы:
разработка распределенных систем, DevOps

Компании:
Сбербанк-Технологии, Альфа-Лаборатория

Сертификаты:
Oracle Certified Professional, Professional Scrum Master level 1

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

Преподаватель
Егор
Зуев
Стас
Щетинников
Михаил
Кузнецов
Вадим
Тисов
Владислав
Родин
Преподаватели
Егор Зуев
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 и микросервисную архитектуру.

Руководитель программы
Михаил Кузнецов
ING Group
Fullstack developer в международной финансовой корпорации ING с главным офисом в Амстердаме (Нидерланды). Проектирует и поддерживает процессы WEB-разработки. Окончил химфак МГУ.

Программирует на JavaScript уже около 8 лет. Консультировал по JS-разработке, занимался популяризацией фронтенд-фреймворка Vue.js.

Кроме JavaScript, имеет опыт разработки на Python и Java. Выступал докладчиком на конференциях Frontend Conf Moscow, UtahJS и др.

Преподаватель
Вадим Тисов
Ведущий разработчик в QIWI
Закончил магистратуру МФТИ факультет ФИВТ. Занимается разработкой нового платежного процессинга на основе микросервисной архитектуры на Kotlin, Spring Boot, Spring Cloud, Kubernetes.

Интересы:
разработка распределенных систем, DevOps

Компании:
Сбербанк-Технологии, Альфа-Лаборатория

Сертификаты:
Oracle Certified Professional, Professional Scrum Master level 1

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

Преподаватель
Егор Зуев о курсе «Архитектор программного обеспечения»
Необходимые знания
Знание и опыт работы в одном из следующих стеков: Java (spring / Java EE), Node.js, C# (.net), python (django), Golang, PHP
Процесс обучения
Образовательный процесс происходит ONLINE в формате вебинаров (язык преподавания — русский). В рамках курса слушателям предлагаются к выполнению домашние задания, которые позволяют применить на практике знания, полученные на занятиях. По каждому домашнему заданию преподаватель дает развернутый фидбек. В течение всего учебного процесса преподаватель находится в едином коммуникационном пространстве с группой, т.е. при обучении слушатель может задавать преподавателю уточняющие вопросы по учебным материалам.
Программа обучения
Модуль 1
Centralized Systems. Single node patterns
Модуль 2
Centralized Systems. Multi node patterns (microservices)
Модуль 3
Decentralized Systems
Модуль 4
Costs and efforts
Модуль 5
Итоговый проект
Centralized Systems. Single node patterns
Тема 1: Когда нужен монолит, а когда микросервисы и компоненты
1)сложность разработки и выявление требований
2) разные ЯП для разных задач
3) монолит, микросервисы, SOA - плюсы, минусы, отличия
4) контракты
5) 12 факторные приложения
6) DDD и clean architecture
31 марта, 20:00 — 21:30
Домашние задания: 1
1 Базовый проект
сделать простой проект на выбор:
1) чат платформу
2) интернет магазин
3) что-то свое по согласованию с преподавателем

Для базовой реализации достаточно регистрации, авторизации, базовых действий через CRUD
Тема 2: Sidecar, Ambassador, Adapter паттерны. Принципы работы.
1) что такое sidecar (расширение поведения). Когда можно использовать, а когда не стоит
2) ambassador ( proxy до сторонних сервисов). Когда можно использовать, а когда не стоит
3) adapter (универсальный логгер, универсальная система отправки уведомлений)
3 апреля, 20:00 — 21:30
Домашние задания: 1
1 Уведомления
Необходимо создать 2 сервиса для рассылки уведомлений (email и push, например). Сделать над ними универсальный интерфейс
Centralized Systems. Multi node patterns (microservices)
Тема 1: Паттерны и антипаттерны декомпозиции микросервисов.
1) основные проблемы при неправильном разделении микросервисов
2) принцип loose coupling/high cohesion
3) паттерны декомпозиции
4) антипаттерны декомпозиции
7 апреля, 20:00 — 21:30
Домашние задания: 1
1 Микросервисы
Необходимо поделить ваше монолитное приложение на группу микросервисов
Тема 2: Sharding. Принцип работы. Реализация паттерна на примере распределенного поиска
1) кейсы шардирования (поиск, вычисления, хранение)
2) как правильно делить данные
3) распределенный поиск (пример со sphinx)
4) map-reduce (можно на примере mongodb)
5) основные ошибки при шардировании (шардирование по плохому критерию, неравномерная нагрузка)
6) кто координирует (клиент, координатор, прокси)
10 апреля, 20:00 — 21:30
Домашние задания: 1
1 Умный поиск
Необходимо придумать систему умного (семантического) поиска (например поиск товаров в интернет магазине). Систему поиска сделать распределенной и данные побить по некоторому критерию
Тема 3: Принципы организации сервисов. Типы межсервисного взаимодействия.
1) Асинхронное и синхронное взаимодействие
2) request-reply и message-based протоколы
3) оркестрация и хореография
4) анемичная модель vs богатая модель
14 апреля, 20:00 — 21:30
Тема 4: введение в docker. Обзор docker compose
17 апреля, 20:00 — 21:30
Тема 5: Масштабирование stateless и stateful cервисов. Паттерны кэширования в микросервисной архитектуре. Идемпотентность и коммутативность.
1) Масштабирование stateless и stateful cервисов.
2) Паттерны кэширования в микросервисной архитектуре.
3) Идемпотентность и коммутативность.
21 апреля, 20:00 — 21:30
Домашние задания: 1
1 Кеширование
Нужно определить, какие данные, в вашей системе являются перманентными / или редко меняются, и которые часто запрашиваются. Необходимо для этих данных использовать один из паттернов кэширования: хранение кэша в выделенном сервисе (например, redis), кэширование внутри приложения, распределенный кэш и т.д.
Для того, чтобы дз было принято должен быть использован хотя бы один из паттернов в вашем проекте.
Тема 6: Вопросы отказоустойчивости информационной системы. Отложенные сообщения (очереди). Реализация системы уведомлений пользователей, состоящей из нескольких сервисов
1) очереди (виды очередей)
2) pipeline обработка
3) паттерн (push/pull)
4) если не очереди - двух-фазный коммит
24 апреля, 20:00 — 21:30
Домашние задания: 1
1 Асинхронное взаимодействие
Нужно определить, какие сервисы в вашем приложении, должны работать асинхронно (например, отправка уведомлений). Далее необходимо выбрать очередь сообщений и перевести данные сервисы на асинхронное взаимодействие
Тема 7: подходы к организации инфрастуктуры: мониторинг, профилирование, взаимодействие между сервисами
1) мониторинг
2) профилирование
3) асинхронное взаимодействие
4) service discovery
5) service mesh
28 апреля, 20:00 — 21:30
Домашние задания: 1
1 Мониторинг
Необходимо добавить систему мониторинга для вашего приложения на основе стека grafana + prometheus
Тема 8: Паттерны декомпозиции данных в микросервисах
топики:
1) Паттерны синхронизации данных между сервисами
2) CQRS.
3) Event Sourcing
1 мая, 20:00 — 21:30
Тема 9: serverless
1) что такое serverless вычисления
2) типы serverless сервисов
3) обзор lambda функций на примере AWS lambda functions и GCP cloud functions
4) паттерны проектирования на lambda функциях
5 мая, 20:00 — 21:30
Decentralized Systems
Тема 1: Общий концепт. Решаемые задачи. Примеры
1) p2p (torrent)
2) blockchain
3) ipfs
4) DHT
8 мая, 20:00 — 21:30
Тема 2: CAP теорема. Общие принципы и описание. BASE и ACID
1) виды и типы СУБД
2) base и acid (что это, где и когда использовать)
3) организация синхронизации (консенсуса в разных СУБД)
4) примеры
12 мая, 20:00 — 21:30
Тема 3: CP системы. RAFT, PAXOS, ZAB
1) принцип работы raft
2) принцип работы paxos
3) принцип работы ZAB
15 мая, 20:00 — 21:30
Домашние задания: 1
1 Используя любой CP алгоритм, необходимо реализовать свою базу данных (например K-V).
Тема 4: PA системы. GOSSIP, CasPAXOS. CRDT структуры
1) принцип работы gossip (scuttlebut)
2) CRDT структуры
19 мая, 20:00 — 21:30
Домашние задания: 1
1 Используя любой PA алгоритм, необходимо реализовать механизм обмена сообщениями (на подобии чата).
Тема 5: Практический семинар: реализация своей распределенной sql / nosql базы данных. Реализация своего оркестратора для управления задачами
1) реализация своей СУБД на основе sqlite + consensus алгоритма (PC)
2) реализация своей K-V storage + consensus алгоритма (PA)
3) реализация своего сервиса оркестрации (распределенная система)
22 мая, 20:00 — 21:30
Тема 6: Основы блокчейн: bitcoin
1) какие задачи решает блокчейн
2) основные компоненты
3) bitcoin (структуры, POW)
26 мая, 20:00 — 21:30
Тема 7: Основы блокчейн: ethereum
1) отличия от bitcoin
2) POS
3) EVM
4) смарт контракты
5) свой блокчейн
29 мая, 20:00 — 21:30
Тема 8: Практический семинар: создание своего приватного блокчейн на основе EVM
1) определить состав требований для разрабатываемой системы
2) выбор алгоритма согласования
3) реализация сервиса
4) интеграция с EVM
2 июня, 20:00 — 21:30
Домашние задания: 1
1 Крипто-платежи
Нужно создать сервис для возможности покупки товара / подписки через криптовалюту
Тема 9: основы работы DAG
1) принцип работы DAG
2) плюсы и минусы, отличия от блокчейн
3) реализации: IOTA, hashgraph
5 июня, 20:00 — 21:30
Costs and efforts
Тема 1: Оценка стоимости спроектированной системы. Определение рисков на разных стадиях жизненного цикла: проектирование, разработка, внедрение, поддержка и эксплуатация, утилизация
1) стоимость ресурсов (время / деньги)
2) инфраструктура
3) поиск компромисов
4) техничеческий долг
5) особенности каждого элемента цикла V-образной модели
6) TOGAF
9 июня, 20:00 — 21:30
Итоговый проект
Тема 1: Вводный урок по итоговому проекту
12 июня, 20:00 — 21:30
Домашние задания: 1
1 Итоговый проект
Цель: Задание включает в себя разработку распределенной / децентрализованной, отказоустойчивой системы. Необходимо выбрать и обсудить спецификации проекта.
Тема 2: консультация по проекту
консультация по проекту. Промежуточный скрининг проектов.
16 июня, 20:00 — 21:30
Домашние задания: 1
1 Необходимо предоставить первый прототип системы (MVP)
Тема 3: Итоговый урок
защита проекта. Защита архитектуры и реализации проекта
19 июня, 20:00 — 21:30
Выпускной проект
Выпускной проект — возможность закрепить навыки, наработанные в процессе обучения. Это отдельная работа, на выполнение которой отводится последний месяц обучения.
Прошедшие открытые вебинары по курсу
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Алгоритмы согласования
Егор Зуев
День открытых дверей
21 ноября 2019 года в 20:00
Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 2 недели
Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
Пройти вступительное тестирование
После обучения вы

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

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

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

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

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

Дата выдачи сертификата: 28 августа 2020 года
Ваш сертификат

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензия на осуществление образовательной деятельности
№ 039825 от 28 декабря 2018 года.
Общая стоимость
60 000 ₽
В месяц: 17 500 ₽
В кредит: ₽ в месяц
Продолжительность
4 месяца
Начало занятий
31 марта
Специальные скидки!
Только до 23 февраля! Забирай промокод в нашем чате ➞