Анатомия веб-сервиса Архитектуры
Тезисы
Чем на самом деле занят backend (application server)? Чем обусловлены пределы нагрузки? Как увеличить производительность?
Многозадачность: "нити" (threads), процессы, асинхронный ввод-вывод, event loop. Модели программирования: многопоточная, многопроцессная, корутины, явная асинхронность. Драйвер базы данных: управление соединениями, pipelining, шардирование и отказоустойчивость. Вычислительно сложные задачи: очереди, RPC, workers. Сервисно-ориентированная архитектура (SOA).
Мы обсудим различные варианты архитектуры веб-сервисов, посмотрим на популярные веб-фреймворки на различных языках программирования (Ruby, Python, Go, Java), а также выясним, какие модели они предлагают и как эти модели реализованы.