Реализация асинхронного фреймворка на базе Nginx: асинхронные задачи и сервисы на примере nginx-haskell-module Архитектуры, масштабируемость

Доклад принят в программу конференции
Алексей Радьков
DINS

Разработчик ПО.

Тезисы

* Технические аспекты реализации асинхронных задач, контент-хэндлеров и сервисов (то есть персистентных задач, не привязанных к запросам пользователей) и их интеграции в событийный механизм Nginx.
* Асинхронные каналы eventfd.
* Разделяемые сервисы, то есть сервисы, обслуживающие все рабочие процессы одновременно, и как реализовать их безопасно (использование advisory file locks).
* Сервисные хуки и глобальные состояния.

- Быстрая и безопасная передача данных между Nginx и Haskell хэндлерами, и почему cleanup-хэндлеры Nginx играют здесь важную роль.
- Оптимизация работы с памятью в обычных и разделяемых сервисах (разделение и подсчет ссылок).
- Типизированная передача данных.

Краткое описание плюсов и минусов Haskell в роли языка для написания сервисов и асинхронных задач.

Пример. Онлайн-мониторинг распределения запросов между рабочими процессами Nginx.

Асинхронное программирование, реактивное программирование
,
Архитектурные паттерны
,
Оптимизация производительности
,
Методы и техника разработки ПО
,
Разработка библиотек, включая open source библиотеки
,
Архитектура данных, потоки данных, версионирование
,
Критерии выбора технологий для проекта

Другие доклады секции Архитектуры, масштабируемость