SlideShare a Scribd company logo
Разработка средств управления и
мониторинга распределенной
мультиагентной системы
Валик Базаревский
"Как взвешивание само по себе не уменьшает
вес, так и контроль качества сам по себе не
улучшает качество"


Доступность



Производительность



Отказоустойчивость



Конфигурируемость



Масштабируемость
Зачем нам это понадобилось:


Тяжело отслеживать состояние всей системы



Тяжело поддерживать и обновлять распределенную систему



Надо знать что из себя представляла система в тот или иной
момент времени (как правило когда произошел сбой)



Оптимизация производительности, прогнозирование нагрузок,
определение оптимальной конфигурации (разные алгоритмы
анализа требуют разных ресурсов)



Политические игры с отделом IT заказчика, в значительной мере
усложняющие поиск и раннее выявление проблем на
production
Краткое описание системы:
Система анализа качества
переводов.
Есть порядка 10 различных
алгоритмов, которые постоянно
обновляются.

Task Processor
Task Controller

Tasks Queue

Web Service

Message queue

Windows Service

Tasks Storage

Сложность (длительность
выполнения) алгоритма
довольно сложно
прогнозируема (по крайней
мере нас так заверили).

SQL Database

Task Processor
Windows Service

File Storage
Network Share

Task Controller
Web Service

Task Processor
Windows Service
Слой данных:


MS SQL



Network Share



Message Queue (Rabbit MQ / Azure Service Bus)
Что мы сделали/делаем:








Единая страничка, проверяющая работоспособность всех
элементов системы (как правило такая страничка есть у каждого
приложения)
«Центральная" конфигурация (при старте каждый агент скачивает
себе все настройки, включая connection string)
Поддержка обновлений (при появлении новых алгоритмов, новых
словарей, все агенты получают сообщение, что необходимо
обновиться).
Возможность опросить всех агентов об их состоянии (версию
алгоритмов, словарей, работает/остановлен и т.д.)
Performance counters для каждого из агентов (ram, io, network, cpu,
i.e.), таким образом, мы сможем посмотреть что происходило во
время исполнения каждой из задач, если задача выполнялась
несколько раз, возможность сравнить показатели)
Как это выглядит:
Или так:
«Центральная» конфигурация


Скачать последнюю версию алгоритмов, словарей, актуальные
connection strings



Скачивание происходит только на старте нового TaskProcessor-а,
в дальнейшем он не зависит от источника конфигурации



Провайдером конфигураций может быть любой из
TaskController-ов
Сервисная шина


Так, как у нас в системе уже были очереди, логично было их
просто немного расширить. Внедрять дополнительный
компонент только для heartbeat-ов – вопрос очень спорный.



Теоретически можно использовать любой из RPC для опроса
агентов, но асинхронная модель предпочтительней.
Queues


It should be persistent (i.e. in case of shutdown, queue should not lose not yet
processed tasks).



It should provide confirmations after successful task processing, in case of failure it
should put task back in queue for processing.



It should guarantee, that each task in queue would be processed by only one
consumer.



It should provide priority mechanism.



It should guarantee, that tasks will get back to the queue even in case of
unexpected hardware failure of Task Processor node.



It would be nice option to see real-time performance statistics.



Technology stack for the solution should have commercial support.



Message queue technology should be mature enough and have good references in
production environment.



Queue server and consumers should have easy setup and support.
Queues / Service Bus Providers


MSMQ



Custom implementation



NServiceBus



Azure Queues



Rabbit MQ



Active MQ



Azure Service Bus



BizTalk ESB
Rabbit MQ


Постановка задач в очередь / Обработка задач



Нотификация о необходимости обновления словарей



Нотификация о необходимости обновления алгоритмов



Текущий статус каждого агента
Сценарии использования
очередей


Queues



Publish/Subscribe



Routing



Topics



RPC
Queues


Message acknowledgment



Message durability



Fair dispatch
Publish/Subscribe


Exchange
Routing
Topics
RPC
Performance counters
Чего мы не делали
(решив, что нам этого пока что не нужно)



Обновление connection strings системы «на лету» (довольно
сложная схема сделать это надежно)

Мы можем себе позволить постепенно перевести вычислительные
мощности из одного старого логического кластера в другой,
новый.
Вопросы. Предложения.

E-mail: baz-val@yandex.ru
FB: https://www.facebook.com/valentin.bazarevsky

More Related Content

What's hot

vi stories: миграция на .NET Core
vi stories: миграция на .NET Corevi stories: миграция на .NET Core
vi stories: миграция на .NET CoreAndrew Gubskiy
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииNikolay Sivko
 
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...SQALab
 
Ibm mq против apache active mq производительность обновления сравнения
Ibm mq против apache active mq производительность обновления сравненияIbm mq против apache active mq производительность обновления сравнения
Ibm mq против apache active mq производительность обновления сравненияSergei Seleznev
 
Innodb Scalability And New Features Hl2008 Rus
Innodb Scalability And New Features Hl2008 RusInnodb Scalability And New Features Hl2008 Rus
Innodb Scalability And New Features Hl2008 RusOntico
 
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндексit-people
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)Ontico
 
7 ошибок одного Black Friday - Влад Опухлый
7 ошибок одного Black Friday - Влад Опухлый7 ошибок одного Black Friday - Влад Опухлый
7 ошибок одного Black Friday - Влад ОпухлыйMagecom UK Limited
 
VMware User Group Community Russia, Сергей Щадных
VMware User Group Community Russia, Сергей ЩадныхVMware User Group Community Russia, Сергей Щадных
VMware User Group Community Russia, Сергей Щадныхmikhail.mikheev
 
Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования   Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования Yandex
 
Alexey Ragozin Ritconf Seda Ru
Alexey Ragozin Ritconf Seda RuAlexey Ragozin Ritconf Seda Ru
Alexey Ragozin Ritconf Seda Rurit2010
 
Микросервисы на практике
Микросервисы на практикеМикросервисы на практике
Микросервисы на практикеVitebsk DSC
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?Clouds NN
 
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...solit
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Yandex
 
Veeam современная защита данных на предприятии
Veeam современная защита данных на предприятииVeeam современная защита данных на предприятии
Veeam современная защита данных на предприятииSletSysadminov
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
 
Development on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir KhramtsovDevelopment on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir Khramtsovphp-user-group-minsk
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 

What's hot (19)

vi stories: миграция на .NET Core
vi stories: миграция на .NET Corevi stories: миграция на .NET Core
vi stories: миграция на .NET Core
 
Мастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатацииМастер-класс про организацию службы эксплуатации
Мастер-класс про организацию службы эксплуатации
 
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
Узкие места производительности веб-приложений, или куда смотреть, чтобы ничег...
 
Ibm mq против apache active mq производительность обновления сравнения
Ibm mq против apache active mq производительность обновления сравненияIbm mq против apache active mq производительность обновления сравнения
Ibm mq против apache active mq производительность обновления сравнения
 
Innodb Scalability And New Features Hl2008 Rus
Innodb Scalability And New Features Hl2008 RusInnodb Scalability And New Features Hl2008 Rus
Innodb Scalability And New Features Hl2008 Rus
 
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс"Тестирование распределенных систем" Сатарин Андрей, Яндекс
"Тестирование распределенных систем" Сатарин Андрей, Яндекс
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
 
7 ошибок одного Black Friday - Влад Опухлый
7 ошибок одного Black Friday - Влад Опухлый7 ошибок одного Black Friday - Влад Опухлый
7 ошибок одного Black Friday - Влад Опухлый
 
VMware User Group Community Russia, Сергей Щадных
VMware User Group Community Russia, Сергей ЩадныхVMware User Group Community Russia, Сергей Щадных
VMware User Group Community Russia, Сергей Щадных
 
Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования   Алексей Лавренюк - Организация нагрузочного тестирования
Алексей Лавренюк - Организация нагрузочного тестирования
 
Alexey Ragozin Ritconf Seda Ru
Alexey Ragozin Ritconf Seda RuAlexey Ragozin Ritconf Seda Ru
Alexey Ragozin Ritconf Seda Ru
 
Микросервисы на практике
Микросервисы на практикеМикросервисы на практике
Микросервисы на практике
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
 
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
 
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
Дмитрий Куликовский, Алексей Лавренюк - Построение кластеров, нагрузочное тес...
 
Veeam современная защита данных на предприятии
Veeam современная защита данных на предприятииVeeam современная защита данных на предприятии
Veeam современная защита данных на предприятии
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
 
Development on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir KhramtsovDevelopment on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir Khramtsov
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 

Viewers also liked

Writing predictive web services with Azure ML
Writing predictive web services with Azure MLWriting predictive web services with Azure ML
Writing predictive web services with Azure MLValentin Bazarevsky
 
Our traditions by the sea 2
Our traditions by the sea 2Our traditions by the sea 2
Our traditions by the sea 2JuanmaProfe
 
2013 module 2 the learning center
2013 module 2 the learning center2013 module 2 the learning center
2013 module 2 the learning centerDan Pevear
 
Christmas in spain
Christmas in spainChristmas in spain
Christmas in spainJuanmaProfe
 
Spain and its monuments
Spain and its monumentsSpain and its monuments
Spain and its monumentsJuanmaProfe
 
Day 7 powerpoint at the bell review
Day 7 powerpoint at the bell reviewDay 7 powerpoint at the bell review
Day 7 powerpoint at the bell reviewBrittknee Basch
 
Probabilistic data structures in real life
Probabilistic data structures in real lifeProbabilistic data structures in real life
Probabilistic data structures in real lifeValentin Bazarevsky
 
Foamcub trainer
Foamcub trainerFoamcub trainer
Foamcub trainermesin oven
 
Science10 h permanentice
Science10 h permanenticeScience10 h permanentice
Science10 h permanenticee_mcgaffney
 
140218 seminar feb_revised-syk
140218 seminar feb_revised-syk140218 seminar feb_revised-syk
140218 seminar feb_revised-sykSangyoon Kang
 
One day in our life
One day in our lifeOne day in our life
One day in our lifeJuanmaProfe
 
Flower can tell you a secret in dark
Flower can tell you a secret in darkFlower can tell you a secret in dark
Flower can tell you a secret in darkRAWAN. AbdulElah
 
Day 7 powerpoint time on a clock
Day 7 powerpoint time on a clockDay 7 powerpoint time on a clock
Day 7 powerpoint time on a clockBrittknee Basch
 

Viewers also liked (20)

Total ranks
Total ranksTotal ranks
Total ranks
 
Writing predictive web services with Azure ML
Writing predictive web services with Azure MLWriting predictive web services with Azure ML
Writing predictive web services with Azure ML
 
Bulgarian Recipes
Bulgarian RecipesBulgarian Recipes
Bulgarian Recipes
 
Our traditions by the sea 2
Our traditions by the sea 2Our traditions by the sea 2
Our traditions by the sea 2
 
2013 module 2 the learning center
2013 module 2 the learning center2013 module 2 the learning center
2013 module 2 the learning center
 
Christmas in spain
Christmas in spainChristmas in spain
Christmas in spain
 
Portrait
PortraitPortrait
Portrait
 
Spain and its monuments
Spain and its monumentsSpain and its monuments
Spain and its monuments
 
Day 7 powerpoint at the bell review
Day 7 powerpoint at the bell reviewDay 7 powerpoint at the bell review
Day 7 powerpoint at the bell review
 
Probabilistic data structures in real life
Probabilistic data structures in real lifeProbabilistic data structures in real life
Probabilistic data structures in real life
 
Foamcub trainer
Foamcub trainerFoamcub trainer
Foamcub trainer
 
Science10 h permanentice
Science10 h permanenticeScience10 h permanentice
Science10 h permanentice
 
140218 seminar feb_revised-syk
140218 seminar feb_revised-syk140218 seminar feb_revised-syk
140218 seminar feb_revised-syk
 
Downloads
DownloadsDownloads
Downloads
 
Erinaceomorpha
ErinaceomorphaErinaceomorpha
Erinaceomorpha
 
One day in our life
One day in our lifeOne day in our life
One day in our life
 
Flower can tell you a secret in dark
Flower can tell you a secret in darkFlower can tell you a secret in dark
Flower can tell you a secret in dark
 
Day 7 powerpoint time on a clock
Day 7 powerpoint time on a clockDay 7 powerpoint time on a clock
Day 7 powerpoint time on a clock
 
Turkey meeting
Turkey meetingTurkey meeting
Turkey meeting
 
Nelson
NelsonNelson
Nelson
 

Similar to Разработка средств управления и мониторинга распределенной мультиагентной системы 2

владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_haElena Ometova
 
как обеспечить качественное функционирование ит систем для маркетинга и прода...
как обеспечить качественное функционирование ит систем для маркетинга и прода...как обеспечить качественное функционирование ит систем для маркетинга и прода...
как обеспечить качественное функционирование ит систем для маркетинга и прода...soft-point
 
Qualitative operation of IT systems Pavel Barketov
Qualitative operation of IT systems Pavel BarketovQualitative operation of IT systems Pavel Barketov
Qualitative operation of IT systems Pavel Barketovsoft-point
 
Qualitative operation of IT systems
Qualitative operation of IT systemsQualitative operation of IT systems
Qualitative operation of IT systemssoft-point
 
Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?Yandex
 
Распределенная система тестирования машинного перевода
Распределенная система тестирования машинного переводаРаспределенная система тестирования машинного перевода
Распределенная система тестирования машинного переводаyaevents
 
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...ebuc
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложенийJack Chikovany
 
Tools to ensure quality of information system
Tools to ensure quality of information system Tools to ensure quality of information system
Tools to ensure quality of information system soft-point
 
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейПакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейCisco Russia
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Ontico
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияSQALab
 
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...WDDay
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Grigoriy Orlov
 
дерюшкин Agile vector
дерюшкин   Agile vectorдерюшкин   Agile vector
дерюшкин Agile vectorMagneta AI
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAlexey Deryushkin
 

Similar to Разработка средств управления и мониторинга распределенной мультиагентной системы 2 (20)

владивосток форум производительность_ha
владивосток форум производительность_haвладивосток форум производительность_ha
владивосток форум производительность_ha
 
как обеспечить качественное функционирование ит систем для маркетинга и прода...
как обеспечить качественное функционирование ит систем для маркетинга и прода...как обеспечить качественное функционирование ит систем для маркетинга и прода...
как обеспечить качественное функционирование ит систем для маркетинга и прода...
 
Qualitative operation of IT systems Pavel Barketov
Qualitative operation of IT systems Pavel BarketovQualitative operation of IT systems Pavel Barketov
Qualitative operation of IT systems Pavel Barketov
 
Qualitative operation of IT systems
Qualitative operation of IT systemsQualitative operation of IT systems
Qualitative operation of IT systems
 
DATA CLUSTER
DATA CLUSTERDATA CLUSTER
DATA CLUSTER
 
Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?Стабильны ли ваши приложения в облаках?
Стабильны ли ваши приложения в облаках?
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
DATA CLUSTER
 DATA CLUSTER DATA CLUSTER
DATA CLUSTER
 
Распределенная система тестирования машинного перевода
Распределенная система тестирования машинного переводаРаспределенная система тестирования машинного перевода
Распределенная система тестирования машинного перевода
 
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
Решения Microsoft System Center для мониторинга и управления инфраструктурой ...
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложений
 
Tools to ensure quality of information system
Tools to ensure quality of information system Tools to ensure quality of information system
Tools to ensure quality of information system
 
Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)Training Labs (www.cmcons.com)
Training Labs (www.cmcons.com)
 
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностейПакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
Пакетное ядро мобильного оператора: ASR5k, поиски устранение неисправностей
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
 
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET»  O...
ВІТАЛІЙ ГОНЧАРУК «За допомогою чого пишуться серйозні веб додатки на .NET» O...
 
Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"Доклад "Мониторинг серверных приложений"
Доклад "Мониторинг серверных приложений"
 
дерюшкин Agile vector
дерюшкин   Agile vectorдерюшкин   Agile vector
дерюшкин Agile vector
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в Райффайзенбанке
 

Разработка средств управления и мониторинга распределенной мультиагентной системы 2

  • 1. Разработка средств управления и мониторинга распределенной мультиагентной системы Валик Базаревский
  • 2.
  • 3. "Как взвешивание само по себе не уменьшает вес, так и контроль качества сам по себе не улучшает качество"  Доступность  Производительность  Отказоустойчивость  Конфигурируемость  Масштабируемость
  • 4. Зачем нам это понадобилось:  Тяжело отслеживать состояние всей системы  Тяжело поддерживать и обновлять распределенную систему  Надо знать что из себя представляла система в тот или иной момент времени (как правило когда произошел сбой)  Оптимизация производительности, прогнозирование нагрузок, определение оптимальной конфигурации (разные алгоритмы анализа требуют разных ресурсов)  Политические игры с отделом IT заказчика, в значительной мере усложняющие поиск и раннее выявление проблем на production
  • 5. Краткое описание системы: Система анализа качества переводов. Есть порядка 10 различных алгоритмов, которые постоянно обновляются. Task Processor Task Controller Tasks Queue Web Service Message queue Windows Service Tasks Storage Сложность (длительность выполнения) алгоритма довольно сложно прогнозируема (по крайней мере нас так заверили). SQL Database Task Processor Windows Service File Storage Network Share Task Controller Web Service Task Processor Windows Service
  • 6. Слой данных:  MS SQL  Network Share  Message Queue (Rabbit MQ / Azure Service Bus)
  • 7. Что мы сделали/делаем:      Единая страничка, проверяющая работоспособность всех элементов системы (как правило такая страничка есть у каждого приложения) «Центральная" конфигурация (при старте каждый агент скачивает себе все настройки, включая connection string) Поддержка обновлений (при появлении новых алгоритмов, новых словарей, все агенты получают сообщение, что необходимо обновиться). Возможность опросить всех агентов об их состоянии (версию алгоритмов, словарей, работает/остановлен и т.д.) Performance counters для каждого из агентов (ram, io, network, cpu, i.e.), таким образом, мы сможем посмотреть что происходило во время исполнения каждой из задач, если задача выполнялась несколько раз, возможность сравнить показатели)
  • 10. «Центральная» конфигурация  Скачать последнюю версию алгоритмов, словарей, актуальные connection strings  Скачивание происходит только на старте нового TaskProcessor-а, в дальнейшем он не зависит от источника конфигурации  Провайдером конфигураций может быть любой из TaskController-ов
  • 11. Сервисная шина  Так, как у нас в системе уже были очереди, логично было их просто немного расширить. Внедрять дополнительный компонент только для heartbeat-ов – вопрос очень спорный.  Теоретически можно использовать любой из RPC для опроса агентов, но асинхронная модель предпочтительней.
  • 12. Queues  It should be persistent (i.e. in case of shutdown, queue should not lose not yet processed tasks).  It should provide confirmations after successful task processing, in case of failure it should put task back in queue for processing.  It should guarantee, that each task in queue would be processed by only one consumer.  It should provide priority mechanism.  It should guarantee, that tasks will get back to the queue even in case of unexpected hardware failure of Task Processor node.  It would be nice option to see real-time performance statistics.  Technology stack for the solution should have commercial support.  Message queue technology should be mature enough and have good references in production environment.  Queue server and consumers should have easy setup and support.
  • 13. Queues / Service Bus Providers  MSMQ  Custom implementation  NServiceBus  Azure Queues  Rabbit MQ  Active MQ  Azure Service Bus  BizTalk ESB
  • 14. Rabbit MQ  Постановка задач в очередь / Обработка задач  Нотификация о необходимости обновления словарей  Нотификация о необходимости обновления алгоритмов  Текущий статус каждого агента
  • 20. RPC
  • 22. Чего мы не делали (решив, что нам этого пока что не нужно)  Обновление connection strings системы «на лету» (довольно сложная схема сделать это надежно) Мы можем себе позволить постепенно перевести вычислительные мощности из одного старого логического кластера в другой, новый.
  • 23. Вопросы. Предложения. E-mail: baz-val@yandex.ru FB: https://www.facebook.com/valentin.bazarevsky