SlideShare a Scribd company logo
Современная архитектура
платформы RTB
Максим Пугачев
IPONWEB
Максим Пугачев
Максим Пугачев
Максим Пугачев
Максим Пугачев
Максим Пугачев
Максим Пугачев
Максим Пугачев
IPONWEB
• Cloud-based SaaS model
IPONWEB
• Cloud-based SaaS model
• Платформа — набор базовых компонентов и сервисов с
возможностью кастомизации под каждого клиента
u-Server
u-Workflow
u-Optimize
u-ETL
u-Slicer
Graphite
u-Predict
u-Audience
Dedicated Shared EXT/ClientEXT/Client
u-Server
• Проприетарный HTTP сервер, написанный с нуля около
10 лет назад
u-Server
• Проприетарный HTTP сервер, написанный с нуля около
10 лет назад
• Lua в качестве бизнес-логики
Максим Пугачев
Архитектура
• Многопоточность + libevent
Архитектура
• Многопоточность + libevent
• Разделение потоков на типы: Main, Communication,
ServiceWorker, Worker
Архитектура
• Многопоточность + libevent
• Разделение потоков на типы: Main, Communication,
ServiceWorker, Worker
• Main: все ”тяжелые” задачи на перезагрузку/обновление
данных, запись данных на диск и т.п.
Архитектура
• Communication: общение с внешним миром (HTTP,
Database), постановка задач для ServiceWorker/Worker
Архитектура
• Communication: общение с внешним миром (HTTP,
Database), постановка задач для ServiceWorker/Worker
• ServiceWorker: обслуживание ”административных”
запросов
Архитектура
• Communication: общение с внешним миром (HTTP,
Database), постановка задач для ServiceWorker/Worker
• ServiceWorker: обслуживание ”административных”
запросов
• Worker: бизнес-логика
Архитектура
• Приоритеты задач: minor, normal, urgent, critical
Minor
Перезагрузка конфигурации
Перезагрузка Lua sandbox
Shutdown
Minor
Перезагрузка конфигурации
Перезагрузка Lua sandbox
Shutdown
Normal
MongoDB API
Новая Lua coroutine
Minor
Перезагрузка конфигурации
Перезагрузка Lua sandbox
Shutdown
Normal
MongoDB API
Новая Lua coroutine
Urgent
MongoDB API (find + next)
HTTP request
Timeouts (HTTP + MongoDB)
Timers
Minor
Перезагрузка конфигурации
Перезагрузка Lua sandbox
Shutdown
Normal
MongoDB API
Новая Lua coroutine
Urgent
MongoDB API (find + next)
HTTP request
Timeouts (HTTP + MongoDB)
Timers
Critical
MongoDB reply
HTTP response
Архитектура
• Приоритеты задач: minor, normal, urgent, critical
• coroutines (Lua thread) и yield запросы
Worker Worker Worker Worker
Sandbox Sandbox Sandbox Sandbox
Sandbox
RunningWaitingYield
coroutinecoroutinecoroutine
new request
Архитектура
• Приоритеты задач: minor, normal, urgent, critical
• coroutines (Lua thread) и yield запросы
• Гарантия времени выполнения запроса
Архитектура
• Приоритеты задач: minor, normal, urgent, critical
• coroutines (Lua thread) и yield запросы
• Гарантия времени выполнения запроса
• Sandboxing
Максим Пугачев
Выводы
• Не бойтесь менять архитектуру в процессе разработки.
Это неизбежно
Выводы
• Не бойтесь менять архитектуру в процессе разработки.
Это неизбежно
• Ограничивайте свободу действий разработчика и/или
пользователя, если это необходимо. Даже если они с
этим не согласны
Выводы
• Не бойтесь менять архитектуру в процессе разработки.
Это неизбежно
• Ограничивайте свободу действий разработчика и/или
пользователя, если это необходимо. Даже если они с
этим не согласны
• Заимствуйте опыт коллег из других областей
Вопросы?
pugachev.mm@gmail.com
pugachev.maxim

More Related Content

PPTX
Александр Афенов
PPTX
Александр Белоцерковский
PDF
Игорь Кашкута
PDF
Сергей Орлов
PPTX
Андрей Чебукин "Построение успешных API"
PPTX
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
PDF
Олег Савкин
PPTX
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Александр Афенов
Александр Белоцерковский
Игорь Кашкута
Сергей Орлов
Андрей Чебукин "Построение успешных API"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Олег Савкин
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...

What's hot (17)

PPTX
Test driven development in net
PPT
Владимир Никонов "Вызовы при разработке enterprise продукта"
PPTX
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
PPTX
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
PDF
Тестируем мобильное приложение в суровых реалиях Интернета
PDF
"Посмотрим на Акку-Джаву" Дмитрий Мантула
PPTX
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
PPTX
Redux и изоморфные приложения
PPT
Enterprise or not to enterprise
PDF
Денис Паясь
PPTX
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
PPTX
Sql server clr integration
PPTX
Никита Галкин "Testing in Node.js World"
PDF
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
PDF
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
PPTX
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
PDF
Антон Галицын
Test driven development in net
Владимир Никонов "Вызовы при разработке enterprise продукта"
SECON'2017, Кулагин Егор, Непрерывное развертывание. Конвейер здорового челов...
Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев
Тестируем мобильное приложение в суровых реалиях Интернета
"Посмотрим на Акку-Джаву" Дмитрий Мантула
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Redux и изоморфные приложения
Enterprise or not to enterprise
Денис Паясь
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
Sql server clr integration
Никита Галкин "Testing in Node.js World"
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
SECON'2016. Панин Сергей, Лебедев Андрей, Храмушин Дмитрий, IT-инфраструктура...
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Антон Галицын
Ad

Similar to Максим Пугачев (20)

PPTX
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
PPTX
Net core and linux in production
PPT
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
PDF
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
PPTX
Errors Tracker
PPTX
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
PDF
PPTX
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
PPTX
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
PDF
Павел Брылов, Skype
PDF
Обзор перспективных баз данных для highload / Юрий Насретдинов
PPTX
Tarantool, .net, newsql
PPTX
Daemons In Web on #devrus
PPTX
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
PPTX
антон веснин Rails Application Servers
PPTX
развертывание среды Rails (антон веснин, Locum Ru)
PDF
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
PPTX
Protrarctor and Angular
PDF
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
PPTX
What's new in Visual Studio 2012
50 команд как одна команда. Как в компании Петер-Сервис боролись за согласова...
Net core and linux in production
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
Errors Tracker
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Павел Брылов, Skype
Обзор перспективных баз данных для highload / Юрий Насретдинов
Tarantool, .net, newsql
Daemons In Web on #devrus
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
антон веснин Rails Application Servers
развертывание среды Rails (антон веснин, Locum Ru)
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Protrarctor and Angular
Moscow Jenkins Meetup #1. Pipeline для инженеров. Обзор экосистемы
What's new in Visual Studio 2012
Ad

More from CodeFest (20)

PDF
Alexander Graebe
PDF
Никита Прокопов
PPTX
Денис Баталов
PDF
Елена Гальцина
PDF
Александр Калашников
PDF
Ирина Иванова
PDF
Marko Berković
PDF
Денис Кортунов
PDF
Александр Зимин
PDF
Сергей Крапивенский
PDF
Сергей Игнатов
PDF
Николай Крапивный
PDF
Alexander Graebe
PDF
Вадим Смирнов
PDF
Константин Осипов
PDF
Raffaele Rialdi
PDF
Rene Groeschke
PDF
Иван Бондаренко
PDF
Mete Atamel
PDF
Алексей Акулович
Alexander Graebe
Никита Прокопов
Денис Баталов
Елена Гальцина
Александр Калашников
Ирина Иванова
Marko Berković
Денис Кортунов
Александр Зимин
Сергей Крапивенский
Сергей Игнатов
Николай Крапивный
Alexander Graebe
Вадим Смирнов
Константин Осипов
Raffaele Rialdi
Rene Groeschke
Иван Бондаренко
Mete Atamel
Алексей Акулович

Максим Пугачев