Чему вы научитесь:
- Выявление функциональных и нефункциональных требований
- Выбор лучшего архитектурного решения для вашего веб-сервиса
- Проектирование распределенных систем с учетом CAP-теоремы, ACID и BASE
- Основы работы с реляционными и NoSQL базами данных
- Применение различных архитектурных паттернов и стилей
- Проектирование интеграции по API и с брокерами сообщений, моделирование в UML
- Использование популярных технологий в интеграциях - синхронных и асинхронных
- Выбор оптимального решения под конкретную задачу интеграции
- Тестирование и исследование API в инструментах cURL, Postman, SOAP UI, Chrome DevTools
- Обеспечение безопасности и производительности вашей интеграции
- Документирование с помощью Swagger и других инструментов
- Разработка своего API на Python
Вы легко и просто усвоите широкий материал со всеми понятиями проектирования интеграций с помощью API и брокеров сообщений, о которых необходимо знать:
- Модель TCP/IP и протоколы - HTTP, TCP, UDP, TLS, HTTPS
- Разница между веб-сервисом, веб-сайтом, API и SDK
- Инструменты тестирования и исследования API - cURL, Postman, SOAP UI, Chrome DevTools
- Создание данных в различных форматах - JSON, XML, YAML
- Проектирование API в популярных синхронных технологиях - JSON-RPC, SOAP, GraphQL, gRPC, REST. И в асинхронных инструментах - HTTP Async (Callback, Polling, Long Polling), Webhooks, WebSockets, Server Sent Events. Их различия, преимущества и варианты использования
- Документирование API в OpenRPC, схемах XSD+WSDL / SDL / Proto, OpenApi Swagger, AsyncAPI Spec
- Api First и Code First подходы
- Концепции API веб-сервисов - клиент-серверная модель и масштабируемость веб-сервисов
- Работа со списками данных в API: сортировка, фильтрация, пагинация
- Согласование содержимого и MIME-типы
- Основы конфиденциальности: хеширование, ключи шифрования, электронная подпись
- Разница между аутентификацией, идентификацией и авторизацией. А также технологии: Api-Key, токены доступа, mTLS, JWT, oAuth2 + OpenID Connect
- Безопасность: защита вашего API от злоумышленников
- Семантическое версионирование
- Производительность API: управление кешированием, batch-запросы, chunked-запросы, rate limiting, retry, timeout
- Проектирование интеграции с нуля - сбор требований и моделирование в UML
- Интеграции через брокеры сообщений: понятия, преимущества и области применения
- Внутреннее устройство брокеров сообщений: RabbitMQ, Apache Kafka
- Работа с паттернами асинхронного обмена сообщениями: Request-Reply, Publish-Subscribe, Point-to-Point
- Проектирование надежных, безопасных и эффективных интеграций с использованием брокеров сообщений
- Гарантии доставки и очерёдность доставки
- Другие стили интеграции (файлы, общая БД)
- Реализация своего API с помощью кода на Python
Вы легко и просто усвоите широкий материал со всеми понятиями о проектировании архитектуры веб-сервисов, о которых необходимо знать:
- Введение в архитектуру веб-приложений
- Распределённые системы в контексте веб-сервисов - что это?
- Архитектурные стили (монолит, микросервисы, SOA и т.д.)
- Типы межсервисных взаимодействий (интеграций)
- Архитектурные паттерны: API Gateway, Backend for Frontend, Servise Mesh и др.
- Параллелизм, согласованность (строгая и в конечном счёте)
- Теоремы CAP / BASE / ACID и их влияние на архитектуру
- Использование блокировок (оптимистичных и пессимистичных) и транзакций
- Выбор подходящей базы данных - реляционные SQL / NoSQL
- Шардирование и партиционирование баз данных
- Low coupling и High cohesion, проблема N+1
- Техники масштабирования (горизонтальное / вертикальное)
- Инфраструктура веб-приложения (безопасность, мониторинг, развёртывание в сетевой среде)
- Оценка стоимости архитектурного решения
- Документирование архитектуры в C4 и других нотациях
- Документирование всего веб-сервиса