SlideShare une entreprise Scribd logo
1  sur  31
HWdTech, LLC 
Или как 7 студентов и филолог делали сложный проект 
Карты Шухарта
Постановка задачи 
Текущая ситуация, проблемы и задачи по их решению 
02
Сайт бесплатных объявлений 03 
4,5 с – время отклика страницы 
70 тыс. ошибок на 1 млн. страниц 
30 с - время поиска по тексту объявления 
БД более 200 таблиц 
За 5 лет полностью сменилось 3 
команды разработчиков, плохая 
коммуникация между программистами и 
системными администраторами, задачи на 
разработку ставятся хаотично, скорость 
важнее качества.
Что нужно получить 04 
<1 с – время отклика страницы 
< 1 ош. на 10 тыс. страниц 
Полнотекстовый поиск должен стать 
основным 
Сделать редизайн сайта 
Использовать только Microsoft 
технологии 
Команда разработки 7 студентов + 
девушка филолог в качестве аналитика
Человек, который изменил все 
05 
Как сделать проект при 
таких исходных данных? 
Надо исключить влияние 
квалификации отдельного 
программиста на результаты 
проекта 
То есть конечный результат в 
большей степени зависеть не 
от навыков и умений 
конкретных людей, а 
определяться в большей 
степени архитектурными 
решениями и технологиями.
Решения 
База данных, время выполнения запроса, ошибки 
06
Модель акторов 
1973 г. A Universal Modular ACTOR 
Formalism for Artificial Intelligence 
Актор – вычислительная сущность 
• Отправить конечное число 
сообщений другим акторам 
• Создать конечное число акторов 
• Выбрать поведение для приема 
следующего сообщения 
Карл Хьюит 
07
В чем отличие от “обычной” 
модели вычислений 
Модель акторов vs Синхронизация 
08
Асинхронная обработка всех 
запросов 
Библиотека HWdTech.DS 
Реализация модели акторов. Среднее время отклика 
страницы 400-800 мс. 
3 сервера вместо 15. 
09 
Каждый обработчик – job 
– выполняет маленькое 
небольшое действие. 
Job’ы выполняются 
параллельно.
Вся параллельность свелась к вызову 
MessageBus.Send(message); 
10
NoSQL обертка над SQL 
базой: 10 таблиц вместо 200 
Документо-ориентированное хранилище 
Вся работа с данными сводится к ~5 запросам. Среднее 
время выполнения запроса 200 мс! 
{ 
"firstName": "Иван", 
"lastName": "Иванов", 
"address": { 
"streetAddress": "Московское ш., 101, кв.101", 
"city": "Ленинград", 
"postalCode": 101101 
}, 
"phoneNumbers": [ 
"812 123-1234", 
"916 123-4567" 
] 
} 
Вся информации о 
сущности хранится в 
виде одной записи в 
формате json. 
11
NoSQL обертка над SQL 
базой: 10 таблиц вместо 200 
The Search Request 
{ 
“FullTextSearch": “Mazda 3", 
“Ranges": { 
“Price": {“left“: 200000, right: 700000} 
}, 
“Filters”: { 
“Type”: “Продажа” 
}, 
Order: 
[ 
{Field: “PublishDate”, Reverse: true} 
], 
“Count”: 20, 
“Page”: 2 
} 
12 
Все поисковые запросы 
к хранилищу 
документов имеют 
общую стркутуру
NoSQL обертка над SQL 
базой: 10 таблиц вместо 200 
Коллекция документов хранилища 
Имя поля 
Searchable 
Filterable 
Rangeable 
13 
Каждый документ 
должен быть описан 
структурой следующего 
формата
Быстрая конфигурация 
операций 
Карты сообщений и сервер конфигураций 
Можно менять алгоритм обработки действий пользователя 
без программирования или быстро вернуть последнюю 
рабочую версию. 
Каждое действие 
пользователя представляет 
собой последовательность 
вызовов job’ов, которая 
описывается в виде json и 
хранится в конфигурации 
сервера. 
Job1 Job2 … JobN 
14
Ошибки скрыты от 
пользователя 
Контрольные точки 
Если в момент обработки произойдет ошибка, то 
пользователь этого никогда не заметит, а разработчики 
всегда могут повторить данную операцию без участия 
пользователя, когда исправят ошибку. 
Когда сервер получает 
сообщение, то первое, что 
происходит – сообщение 
сохраняется в 
контрольной точке и тут 
же отправляется ответ 
клиенту. 
CP1 Job … CPN 
Ответ на 
входящий 
запрос 
15
Проще приспособиться, чем ждать 
когда исправят все ошибки 
Версионирование сообщений 
Есть задержка между изменением интерфейсов и их 
реализацией сторонними разработчиками. 
Документация неидеальная – проще самим 
приспособиться, чем добиваться полного соотвествия 
Когда сервер получает 
сообщение, то это 
сообщение можно 
модифицировать так , 
чтобы его можно было 
дальше обрабатывать. 
CP1 Job … CPN 
Трансформация сообщения 
на основе адресата и 
версии сообщения 
16
Карты Шухарта 
1923 г. AT&T 
Ламповые усилители сигнала 
Количество аварийных бригад и 
транспорта? 
Применяются в различных сферах 
производства как средство 
постоянного улучшения качества 
выпускаемой продукции 
Уолтер Шухарт 
17
Как обнаруживать ошибки? 
Карты Шухарта 
Все процессы подвержены вариабельности. 
Управляемое явление - используя прошлый опыт 
можно предсказать, каких его вариаций можно 
ожидать в будущем. 
ГОСТ Р 50779.42-99 (ISO 8258-91) 
18 
выявление точек выхода 
процесса из стабильного 
состояния для установления 
причин появившегося 
отклонения и их устранения.
Использовать карты очень 
просто 
Карты средних и размаха 
19 
Множество измерений разбивается на подгруппы. 
Способ формирования подгрупп влияет на результат! 
ГОСТ Р 50779.42-99 (ISO 8258-91) 
Для построения карт 
достаточно простых 
арифметических действий
Карты работают? 
Инструмент больше эмпирический, 
чем математический 
Отношение к картам Шухарта 
неоднозначное 
Применяется на японских 
предприятиях, например, Toyota 
Чтобы применять карты, надо 
сначала добиться “статистической 
стабильности” 
Дональд Уиллер 
20
Как узнать, что изменения дали 
положительный эффект? 
Карта количества сообщений в контрольной 
точке 
Рост числа сообщений говорит о возникновении 
систематической ошибки, резкий спад – о том, что 
ошибка была устранена. 
21
Причина в коде или в 
инфраструктуре? 
Где искать проблему? 
Один из источников проблем – база данных. 
22 
• На старой системе – 1 серьезная авария в неделю! 
• Сис. администраторы не дают полной информации 
• Причина в коде или в инфраструктуре? 
Карта, которая измеряет среднюю скорость запросов к 
базе данных – если время запросов статистически 
стабильно, то проблема не в коде!
Карты Шухарта позволяют удерживать показатель 
1 ошибка на 
10 тыс. операций. 
23
Все ли пользователи 
одинаково полезны? 
24 
Обмен сообщениями между пользователями 
Анализ аномальной активности показал, что появился 
пользователь, который стал активно предлагать другим 
переходить на ресурс-конкурент.
Не все коллеги ведут себя 
корректно 
Аргумент при общении со сторонними 
разработчиками 
Один из клиентов предъявлял претензии, потому что его 
разработчики (компания-аутсорсер) говорили, что 
проблема в нас. 
25
Активность пользователей 
можно создавать 
Грамотный троллинг увеличивает рейтинги 
Постоянные посетители готовы общаться – им нужно 
только немного помочь. Стоит ли эффект вложенных 
средств? 
26
Не все зависит от технологий 
Эффективность рекламы 
Рекламная компания в СМИ имела незначительный 
краткосрочный эффект. 
27
Дело не в количестве 
параметров 
28 
Увеличение количества параметров 
Гипотеза: пользователям рубрики Авто нравятся подробные 
описания объявлений. Может быть, но это не самое 
главное, что привлекает посетителей.
Дело не в количестве 
параметров 
29 
Увеличение количества параметров 
Гипотеза: пользователям рубрики Недвижимость нравятся 
подробные описания объявлений. Может быть, но это не 
самое главное, что привлекает посетителей.
Человек, который изменил все 
Послесловие 
В титрах к фильму говорится, 
что герой Бреда Пита так до 
сих пор и не смог выиграть 
чемпионский титул со своей 
командой. 
У каждой технологии есть 
свой предел! 
30
Тюменцев 
Евгений 
Александрович 
Пишите: eytumentcev@hwdtech.ru 
Звоните: +7 913 150 22 04 
http://hwdtech.ru

Contenu connexe

Tendances

Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Ontico
 
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...it-people
 
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдераHighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдераИгорь Мызгин
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самSergey Xek
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Badoo Development
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)Ontico
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechZlit
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Sergey Xek
 
Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Nikolay Sivko
 
Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7Technopark
 
Redis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияRedis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияAlexey Kachayev
 
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Ontico
 
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Lenvendo
 
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ontico
 
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...Ontico
 
Внедрение автоматизации тестирования в highload проекте с непрерывной выкладкой
Внедрение автоматизации тестирования в highload проекте с непрерывной выкладкойВнедрение автоматизации тестирования в highload проекте с непрерывной выкладкой
Внедрение автоматизации тестирования в highload проекте с непрерывной выкладкойSQALab
 

Tendances (16)

Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
 
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
DUMP-2015 «Микросервисная архитектура в теории и на практике» Иван Бурмистров...
 
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдераHighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
HighLoad Junior '16 Как сравнить и выбрать хостинг-провайдера
 
Архитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай самАрхитектура А/Б тестирования: сделай сам
Архитектура А/Б тестирования: сделай сам
 
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
Доклад Сергея Аверина на DevConf 2013. "Распространенные ошибки применения ба...
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
 
От заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit TechОт заката до рассвета | Максим Безуглый | Zlit Tech
От заката до рассвета | Максим Безуглый | Zlit Tech
 
Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»Mind map для «Архитектура А/Б тестирования: сделай сам»
Mind map для «Архитектура А/Б тестирования: сделай сам»
 
Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)Мониторинг всех слоев web проекта (hl2015)
Мониторинг всех слоев web проекта (hl2015)
 
Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7Разработка веб-сервисов осень 2013 лекция 7
Разработка веб-сервисов осень 2013 лекция 7
 
Redis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияRedis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использования
 
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
Бигдата — как добывать золото из данных / Александр Сербул (1С-Битрикс)
 
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
 
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван...
 
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
Выбираем СУБД для хранения временных рядов / Павел Филонов (Лаборатория Каспе...
 
Внедрение автоматизации тестирования в highload проекте с непрерывной выкладкой
Внедрение автоматизации тестирования в highload проекте с непрерывной выкладкойВнедрение автоматизации тестирования в highload проекте с непрерывной выкладкой
Внедрение автоматизации тестирования в highload проекте с непрерывной выкладкой
 

Similaire à Как 7 студентов и филолог делали сложный проект

2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...HappyDev
 
Разработка надежных параллельных, распределенных приложений: быстро и дешево
Разработка надежных параллельных, распределенных приложений: быстро и дешевоРазработка надежных параллельных, распределенных приложений: быстро и дешево
Разработка надежных параллельных, распределенных приложений: быстро и дешевоDotNetConf
 
О чем стоит подумать, приступая к разработке высоконагруженных систем
О чем стоит подумать, приступая к разработке высоконагруженных системО чем стоит подумать, приступая к разработке высоконагруженных систем
О чем стоит подумать, приступая к разработке высоконагруженных системArtem Volftrub
 
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...CodeFest
 
Нексмед
НексмедНексмед
Нексмедit-park
 
Мониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application InsightsМониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application InsightsMicrosoft
 
Отказоустойчивые игры с облаком – как делают игры на много пользователей
Отказоустойчивые игры с облаком – как делают игры на много пользователейОтказоустойчивые игры с облаком – как делают игры на много пользователей
Отказоустойчивые игры с облаком – как делают игры на много пользователейMicrosoft
 
рисуем тз. эффективный способ коммуникации в веб проектах. артем вольфтруб. з...
рисуем тз. эффективный способ коммуникации в веб проектах. артем вольфтруб. з...рисуем тз. эффективный способ коммуникации в веб проектах. артем вольфтруб. з...
рисуем тз. эффективный способ коммуникации в веб проектах. артем вольфтруб. з...rit2011
 
2 голов код безопасности
2   голов код безопасности2   голов код безопасности
2 голов код безопасностиjournalrubezh
 
Алексей Аникутин
Алексей АникутинАлексей Аникутин
Алексей АникутинDevGAMM Conference
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БДAndrew Sovtsov
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
 
Комплексная автоматизация производства
Комплексная автоматизация производстваКомплексная автоматизация производства
Комплексная автоматизация производстваOstec-SMT
 
Мониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application InsightsМониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application InsightsGoSharp
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураVyacheslav Benedichuk
 
Консалтинг высоконагруженных web систем
Консалтинг высоконагруженных web системКонсалтинг высоконагруженных web систем
Консалтинг высоконагруженных web системMedia Gorod
 
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETЭволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETDev2Dev
 
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBАрхитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBPavel Treshnikov
 
Антон Петров "ЦОД во "времена перемен"
Антон Петров "ЦОД во "времена перемен"Антон Петров "ЦОД во "времена перемен"
Антон Петров "ЦОД во "времена перемен"Anton Petrov
 

Similaire à Как 7 студентов и филолог делали сложный проект (20)

2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
2015-12-06 Евгений Тюменцев - Разработка надежных параллельных, распределенны...
 
Разработка надежных параллельных, распределенных приложений: быстро и дешево
Разработка надежных параллельных, распределенных приложений: быстро и дешевоРазработка надежных параллельных, распределенных приложений: быстро и дешево
Разработка надежных параллельных, распределенных приложений: быстро и дешево
 
О чем стоит подумать, приступая к разработке высоконагруженных систем
О чем стоит подумать, приступая к разработке высоконагруженных системО чем стоит подумать, приступая к разработке высоконагруженных систем
О чем стоит подумать, приступая к разработке высоконагруженных систем
 
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
 
Нексмед
НексмедНексмед
Нексмед
 
Мониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application InsightsМониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application Insights
 
Отказоустойчивые игры с облаком – как делают игры на много пользователей
Отказоустойчивые игры с облаком – как делают игры на много пользователейОтказоустойчивые игры с облаком – как делают игры на много пользователей
Отказоустойчивые игры с облаком – как делают игры на много пользователей
 
рисуем тз. эффективный способ коммуникации в веб проектах. артем вольфтруб. з...
рисуем тз. эффективный способ коммуникации в веб проектах. артем вольфтруб. з...рисуем тз. эффективный способ коммуникации в веб проектах. артем вольфтруб. з...
рисуем тз. эффективный способ коммуникации в веб проектах. артем вольфтруб. з...
 
2 голов код безопасности
2   голов код безопасности2   голов код безопасности
2 голов код безопасности
 
Алексей Аникутин
Алексей АникутинАлексей Аникутин
Алексей Аникутин
 
Моделирование для NoSQL БД
Моделирование для NoSQL БДМоделирование для NoSQL БД
Моделирование для NoSQL БД
 
devpoint novotelecom
devpoint novotelecomdevpoint novotelecom
devpoint novotelecom
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
 
Комплексная автоматизация производства
Комплексная автоматизация производстваКомплексная автоматизация производства
Комплексная автоматизация производства
 
Мониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application InsightsМониторинг приложений ASP.NET на основе сервиса Application Insights
Мониторинг приложений ASP.NET на основе сервиса Application Insights
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектура
 
Консалтинг высоконагруженных web систем
Консалтинг высоконагруженных web системКонсалтинг высоконагруженных web систем
Консалтинг высоконагруженных web систем
 
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NETЭволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
Эволюция корпоративных Web приложений. Молотков Андрей D2D Just.NET
 
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESBАрхитектура масштабируемых приложений. Микросервисы, CQRS, ESB
Архитектура масштабируемых приложений. Микросервисы, CQRS, ESB
 
Антон Петров "ЦОД во "времена перемен"
Антон Петров "ЦОД во "времена перемен"Антон Петров "ЦОД во "времена перемен"
Антон Петров "ЦОД во "времена перемен"
 

Plus de etyumentcev

Программирование глазами математика
Программирование глазами математикаПрограммирование глазами математика
Программирование глазами математикаetyumentcev
 
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...etyumentcev
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповetyumentcev
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4etyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3etyumentcev
 
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2etyumentcev
 
разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1etyumentcev
 
высокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратвысокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратetyumentcev
 
зачем нужны системы управления проектами
зачем нужны системы управления проектамизачем нужны системы управления проектами
зачем нужны системы управления проектамиetyumentcev
 
введение в Sql
введение в Sqlвведение в Sql
введение в Sqletyumentcev
 
почему буксует тайм менеджмент
почему буксует тайм менеджментпочему буксует тайм менеджмент
почему буксует тайм менеджментetyumentcev
 
ук 03.011.01 2011
ук 03.011.01 2011ук 03.011.01 2011
ук 03.011.01 2011etyumentcev
 
ук 03.010.01 2011
ук 03.010.01 2011ук 03.010.01 2011
ук 03.010.01 2011etyumentcev
 
ук 03.009.01 2011
ук 03.009.01 2011ук 03.009.01 2011
ук 03.009.01 2011etyumentcev
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011etyumentcev
 
ук 03.006.02 2011
ук 03.006.02 2011ук 03.006.02 2011
ук 03.006.02 2011etyumentcev
 
ук 03.005.03 2011
ук 03.005.03 2011ук 03.005.03 2011
ук 03.005.03 2011etyumentcev
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011etyumentcev
 
ук 03.001.02 2011
ук 03.001.02 2011ук 03.001.02 2011
ук 03.001.02 2011etyumentcev
 
ук 03.002.01 2011
ук 03.002.01 2011ук 03.002.01 2011
ук 03.002.01 2011etyumentcev
 

Plus de etyumentcev (20)

Программирование глазами математика
Программирование глазами математикаПрограммирование глазами математика
Программирование глазами математика
 
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
математическое обоснование Solid принципов. Конференция dotnetconf (Челябинск...
 
Математическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принциповМатематическое обоснование S.O.L.I.D принципов
Математическое обоснование S.O.L.I.D принципов
 
разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4разработка серверов и серверных приложений лекция №4
разработка серверов и серверных приложений лекция №4
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2
 
разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1разработка серверов и серверных приложений лекция №1
разработка серверов и серверных приложений лекция №1
 
высокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затратвысокопроизводиетльные системы без доп затрат
высокопроизводиетльные системы без доп затрат
 
зачем нужны системы управления проектами
зачем нужны системы управления проектамизачем нужны системы управления проектами
зачем нужны системы управления проектами
 
введение в Sql
введение в Sqlвведение в Sql
введение в Sql
 
почему буксует тайм менеджмент
почему буксует тайм менеджментпочему буксует тайм менеджмент
почему буксует тайм менеджмент
 
ук 03.011.01 2011
ук 03.011.01 2011ук 03.011.01 2011
ук 03.011.01 2011
 
ук 03.010.01 2011
ук 03.010.01 2011ук 03.010.01 2011
ук 03.010.01 2011
 
ук 03.009.01 2011
ук 03.009.01 2011ук 03.009.01 2011
ук 03.009.01 2011
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
 
ук 03.006.02 2011
ук 03.006.02 2011ук 03.006.02 2011
ук 03.006.02 2011
 
ук 03.005.03 2011
ук 03.005.03 2011ук 03.005.03 2011
ук 03.005.03 2011
 
ук 03.003.01 2011
ук 03.003.01 2011ук 03.003.01 2011
ук 03.003.01 2011
 
ук 03.001.02 2011
ук 03.001.02 2011ук 03.001.02 2011
ук 03.001.02 2011
 
ук 03.002.01 2011
ук 03.002.01 2011ук 03.002.01 2011
ук 03.002.01 2011
 

Как 7 студентов и филолог делали сложный проект

  • 1. HWdTech, LLC Или как 7 студентов и филолог делали сложный проект Карты Шухарта
  • 2. Постановка задачи Текущая ситуация, проблемы и задачи по их решению 02
  • 3. Сайт бесплатных объявлений 03 4,5 с – время отклика страницы 70 тыс. ошибок на 1 млн. страниц 30 с - время поиска по тексту объявления БД более 200 таблиц За 5 лет полностью сменилось 3 команды разработчиков, плохая коммуникация между программистами и системными администраторами, задачи на разработку ставятся хаотично, скорость важнее качества.
  • 4. Что нужно получить 04 <1 с – время отклика страницы < 1 ош. на 10 тыс. страниц Полнотекстовый поиск должен стать основным Сделать редизайн сайта Использовать только Microsoft технологии Команда разработки 7 студентов + девушка филолог в качестве аналитика
  • 5. Человек, который изменил все 05 Как сделать проект при таких исходных данных? Надо исключить влияние квалификации отдельного программиста на результаты проекта То есть конечный результат в большей степени зависеть не от навыков и умений конкретных людей, а определяться в большей степени архитектурными решениями и технологиями.
  • 6. Решения База данных, время выполнения запроса, ошибки 06
  • 7. Модель акторов 1973 г. A Universal Modular ACTOR Formalism for Artificial Intelligence Актор – вычислительная сущность • Отправить конечное число сообщений другим акторам • Создать конечное число акторов • Выбрать поведение для приема следующего сообщения Карл Хьюит 07
  • 8. В чем отличие от “обычной” модели вычислений Модель акторов vs Синхронизация 08
  • 9. Асинхронная обработка всех запросов Библиотека HWdTech.DS Реализация модели акторов. Среднее время отклика страницы 400-800 мс. 3 сервера вместо 15. 09 Каждый обработчик – job – выполняет маленькое небольшое действие. Job’ы выполняются параллельно.
  • 10. Вся параллельность свелась к вызову MessageBus.Send(message); 10
  • 11. NoSQL обертка над SQL базой: 10 таблиц вместо 200 Документо-ориентированное хранилище Вся работа с данными сводится к ~5 запросам. Среднее время выполнения запроса 200 мс! { "firstName": "Иван", "lastName": "Иванов", "address": { "streetAddress": "Московское ш., 101, кв.101", "city": "Ленинград", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ] } Вся информации о сущности хранится в виде одной записи в формате json. 11
  • 12. NoSQL обертка над SQL базой: 10 таблиц вместо 200 The Search Request { “FullTextSearch": “Mazda 3", “Ranges": { “Price": {“left“: 200000, right: 700000} }, “Filters”: { “Type”: “Продажа” }, Order: [ {Field: “PublishDate”, Reverse: true} ], “Count”: 20, “Page”: 2 } 12 Все поисковые запросы к хранилищу документов имеют общую стркутуру
  • 13. NoSQL обертка над SQL базой: 10 таблиц вместо 200 Коллекция документов хранилища Имя поля Searchable Filterable Rangeable 13 Каждый документ должен быть описан структурой следующего формата
  • 14. Быстрая конфигурация операций Карты сообщений и сервер конфигураций Можно менять алгоритм обработки действий пользователя без программирования или быстро вернуть последнюю рабочую версию. Каждое действие пользователя представляет собой последовательность вызовов job’ов, которая описывается в виде json и хранится в конфигурации сервера. Job1 Job2 … JobN 14
  • 15. Ошибки скрыты от пользователя Контрольные точки Если в момент обработки произойдет ошибка, то пользователь этого никогда не заметит, а разработчики всегда могут повторить данную операцию без участия пользователя, когда исправят ошибку. Когда сервер получает сообщение, то первое, что происходит – сообщение сохраняется в контрольной точке и тут же отправляется ответ клиенту. CP1 Job … CPN Ответ на входящий запрос 15
  • 16. Проще приспособиться, чем ждать когда исправят все ошибки Версионирование сообщений Есть задержка между изменением интерфейсов и их реализацией сторонними разработчиками. Документация неидеальная – проще самим приспособиться, чем добиваться полного соотвествия Когда сервер получает сообщение, то это сообщение можно модифицировать так , чтобы его можно было дальше обрабатывать. CP1 Job … CPN Трансформация сообщения на основе адресата и версии сообщения 16
  • 17. Карты Шухарта 1923 г. AT&T Ламповые усилители сигнала Количество аварийных бригад и транспорта? Применяются в различных сферах производства как средство постоянного улучшения качества выпускаемой продукции Уолтер Шухарт 17
  • 18. Как обнаруживать ошибки? Карты Шухарта Все процессы подвержены вариабельности. Управляемое явление - используя прошлый опыт можно предсказать, каких его вариаций можно ожидать в будущем. ГОСТ Р 50779.42-99 (ISO 8258-91) 18 выявление точек выхода процесса из стабильного состояния для установления причин появившегося отклонения и их устранения.
  • 19. Использовать карты очень просто Карты средних и размаха 19 Множество измерений разбивается на подгруппы. Способ формирования подгрупп влияет на результат! ГОСТ Р 50779.42-99 (ISO 8258-91) Для построения карт достаточно простых арифметических действий
  • 20. Карты работают? Инструмент больше эмпирический, чем математический Отношение к картам Шухарта неоднозначное Применяется на японских предприятиях, например, Toyota Чтобы применять карты, надо сначала добиться “статистической стабильности” Дональд Уиллер 20
  • 21. Как узнать, что изменения дали положительный эффект? Карта количества сообщений в контрольной точке Рост числа сообщений говорит о возникновении систематической ошибки, резкий спад – о том, что ошибка была устранена. 21
  • 22. Причина в коде или в инфраструктуре? Где искать проблему? Один из источников проблем – база данных. 22 • На старой системе – 1 серьезная авария в неделю! • Сис. администраторы не дают полной информации • Причина в коде или в инфраструктуре? Карта, которая измеряет среднюю скорость запросов к базе данных – если время запросов статистически стабильно, то проблема не в коде!
  • 23. Карты Шухарта позволяют удерживать показатель 1 ошибка на 10 тыс. операций. 23
  • 24. Все ли пользователи одинаково полезны? 24 Обмен сообщениями между пользователями Анализ аномальной активности показал, что появился пользователь, который стал активно предлагать другим переходить на ресурс-конкурент.
  • 25. Не все коллеги ведут себя корректно Аргумент при общении со сторонними разработчиками Один из клиентов предъявлял претензии, потому что его разработчики (компания-аутсорсер) говорили, что проблема в нас. 25
  • 26. Активность пользователей можно создавать Грамотный троллинг увеличивает рейтинги Постоянные посетители готовы общаться – им нужно только немного помочь. Стоит ли эффект вложенных средств? 26
  • 27. Не все зависит от технологий Эффективность рекламы Рекламная компания в СМИ имела незначительный краткосрочный эффект. 27
  • 28. Дело не в количестве параметров 28 Увеличение количества параметров Гипотеза: пользователям рубрики Авто нравятся подробные описания объявлений. Может быть, но это не самое главное, что привлекает посетителей.
  • 29. Дело не в количестве параметров 29 Увеличение количества параметров Гипотеза: пользователям рубрики Недвижимость нравятся подробные описания объявлений. Может быть, но это не самое главное, что привлекает посетителей.
  • 30. Человек, который изменил все Послесловие В титрах к фильму говорится, что герой Бреда Пита так до сих пор и не смог выиграть чемпионский титул со своей командой. У каждой технологии есть свой предел! 30
  • 31. Тюменцев Евгений Александрович Пишите: eytumentcev@hwdtech.ru Звоните: +7 913 150 22 04 http://hwdtech.ru

Notes de l'éditeur

  1. Эта презентация демонстрирует новые возможности PowerPoint. Ее рекомендуется просматривать в режиме показа слайдов. Эти слайды должны дать вам представление о том, какие эффектные презентации можно создать с помощью PowerPoint 2010. Для доступа к другим образцам шаблонов перейдите на вкладку "Файл", а затем щелкните "Образцы слайдов" на вкладке "Создать".