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

31
HWdTech, LLC Или как 7 студентов и филолог делали сложный проект Карты Шухарта

Upload: eugeniy-tyumentcev

Post on 18-Jul-2015

198 views

Category:

Software


0 download

TRANSCRIPT

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

HWdTech, LLC

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

Карты Шухарта

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

Постановка задачи

Текущая ситуация, проблемы и задачи по их решению

02

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

За 5 лет полностью сменилось 3

команды разработчиков, плохая

коммуникация между программистами и

системными администраторами, задачи на

разработку ставятся хаотично, скорость

важнее качества.

4,5 с – время отклика страницы

70 тыс. ошибок на 1 млн. страниц

30 с - время поиска по тексту объявления

БД более 200 таблиц

Сайт бесплатных объявлений 03

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

Сделать редизайн сайта

Использовать только Microsoft

технологии

Команда разработки 7 студентов +

девушка филолог в качестве аналитика

<1 с – время отклика страницы

< 1 ош. на 10 тыс. страниц

Полнотекстовый поиск должен стать

основным

Что нужно получить 04

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

Человек, который изменил все

Как сделать проект при таких исходных данных?

Надо исключить влияние квалификации отдельного программиста на результаты проекта

То есть конечный результат в большей степени зависеть не от навыков и умений конкретных людей, а определяться в большей степени архитектурными решениями и технологиями.

05

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

Решения

База данных, время выполнения запроса, ошибки

06

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

1973 г. A Universal Modular ACTOR

Formalism for Artificial Intelligence

Актор – вычислительная сущность

• Отправить конечное число сообщений другим акторам

• Создать конечное число акторов

• Выбрать поведение для приема следующего сообщения

Модель акторов

Карл Хьюит

07

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

В ч

ем о

тли

чие

от

“об

ычн

ой

”м

од

ели

вы

числ

ени

йМодель акторов vs Синхронизация

08

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

Аси

нхр

он

ная

об

раб

отк

а вс

ех

зап

ро

сов

Библиотека HWdTech.DSРеализация модели акторов. Среднее время отклика страницы 400-800 мс.

3 сервера вместо 15.

Каждый обработчик – job – выполняет маленькое небольшое действие. Job’ы выполняются параллельно.

09

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

Вся параллельность свелась к вызову

MessageBus.Send(message);

10

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

No

SQL

об

ер

тка

над

SQ

L б

азо

й: 1

0 т

абл

иц

вм

ест

о 2

00

Документо-ориентированное хранилищеВся работа с данными сводится к ~5 запросам. Среднее время выполнения запроса 200 мс!

{"firstName": "Иван","lastName": "Иванов","address": {

"streetAddress": "Московское ш., 101, кв.101","city": "Ленинград","postalCode": 101101

},"phoneNumbers": [

"812 123-1234","916 123-4567"

]}

Вся информации о сущности хранится в виде одной записи в формате json.

11

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

No

SQL

об

ер

тка

над

SQ

L б

азо

й: 1

0 т

абл

иц

вм

ест

о 2

00

The Search Request{

“FullTextSearch": “Mazda 3",“Ranges": {

“Price": {“left“: 200000, right: 700000}},“Filters”: {

“Type”: “Продажа”},Order:[

{Field: “PublishDate”, Reverse: true}],“Count”: 20,“Page”: 2

}

Все поисковые запросы к хранилищу документов имеют общую стркутуру

12

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

No

SQL

об

ер

тка

над

SQ

L б

азо

й: 1

0 т

абл

иц

вм

ест

о 2

00

Коллекция документов хранилища

Имя поляSearchableFilterableRangeable

Каждый документ должен быть описан структурой следующего формата

13

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

Бы

стр

ая к

он

фи

гур

аци

я о

пер

аци

йКарты сообщений и сервер конфигурацийМожно менять алгоритм обработки действий пользователя без программирования или быстро вернуть последнюю рабочую версию.

Каждое действие пользователя представляет собой последовательность вызовов job’ов, которая описывается в виде json и хранится в конфигурации сервера.

Job1 Job2 … JobN

14

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

Ош

иб

ки с

кры

ты о

т п

ол

ьзо

вате

ля

Контрольные точкиЕсли в момент обработки произойдет ошибка, то пользователь этого никогда не заметит, а разработчики всегда могут повторить данную операцию без участия пользователя, когда исправят ошибку.

Когда сервер получает сообщение, то первое, что происходит – сообщение сохраняется в контрольной точке и тут же отправляется ответ клиенту.

CP1 Job … CPN

Ответ на входящий

запрос

15

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

Пр

ощ

е п

ри

спо

соб

ить

ся, ч

ем ж

дат

ь ко

гда

исп

рав

ят в

се о

ши

бки

Версионирование сообщенийЕсть задержка между изменением интерфейсов и их реализацией сторонними разработчиками.Документация неидеальная – проще самим приспособиться, чем добиваться полного соотвествия

Когда сервер получает сообщение, то это сообщение можно модифицировать так , чтобы его можно было дальше обрабатывать.

CP1 Job … CPN

Трансформация сообщения на основе адресата и

версии сообщения

16

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

1923 г. AT&T

Ламповые усилители сигнала

Количество аварийных бригад и транспорта?

Применяются в различных сферах производства как средство постоянного улучшения качества выпускаемой продукции

Карты Шухарта

Уолтер Шухарт

17

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

Как

об

нар

ужи

вать

ош

иб

ки? Карты Шухарта

Все процессы подвержены вариабельности. Управляемое явление - используя прошлый опыт можно предсказать, каких его вариаций можно ожидать в будущем.

ГОСТ Р 50779.42-99 (ISO 8258-91)

выявление точек выхода процесса из стабильного состояния для установления причин появившегося отклонения и их устранения.

18

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

Исп

ол

ьзо

вать

кар

ты о

чен

ь п

ро

сто

Карты средних и размаха

Множество измерений разбивается на подгруппы. Способ формирования подгрупп влияет на результат!

ГОСТ Р 50779.42-99 (ISO 8258-91)

Для построения карт достаточно простых арифметических действий

19

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

Инструмент больше эмпирический, чем математический

Отношение к картам Шухартанеоднозначное

Применяется на японских предприятиях, например, Toyota

Чтобы применять карты, надо сначала добиться “статистической стабильности”

Карты работают?

Дональд Уиллер

20

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

Как

узн

ать,

что

изм

енен

ия

дал

ип

ол

ож

ите

льн

ый

эф

фек

т?Карта количества сообщений в контрольной точкеРост числа сообщений говорит о возникновении систематической ошибки, резкий спад – о том, что ошибка была устранена.

21

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

Пр

ичи

на

в ко

де

ил

и в

и

нф

рас

трук

тур

е?Где искать проблему?

Один из источников проблем – база данных.

• На старой системе – 1 серьезная авария в неделю!• Сис. администраторы не дают полной информации• Причина в коде или в инфраструктуре?

Карта, которая измеряет среднюю скорость запросов к базе данных – если время запросов статистически стабильно, то проблема не в коде!

22

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

Карты Шухарта позволяют удерживать показатель

1 ошибка на 10 тыс. операций.

23

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

Все

ли

по

льз

ова

тел

и

од

ин

ако

во п

ол

езн

ы?

Обмен сообщениями между пользователямиАнализ аномальной активности показал, что появился пользователь, который стал активно предлагать другим переходить на ресурс-конкурент.

24

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

Не

все

кол

лег

и в

едут

себ

я ко

рр

ектн

оАргумент при общении со сторонними разработчикамиОдин из клиентов предъявлял претензии, потому что его разработчики (компания-аутсорсер) говорили, что проблема в нас.

25

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

Акт

ивн

ост

ь п

ол

ьзо

вате

лей

м

ож

но

со

здав

ать

Грамотный троллинг увеличивает рейтингиПостоянные посетители готовы общаться – им нужно только немного помочь. Стоит ли эффект вложенных средств?

26

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

Не

все

зави

сит

от

техн

ол

оги

й

Эффективность рекламыРекламная компания в СМИ имела незначительный краткосрочный эффект.

27

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

Дел

о н

е в

кол

иче

стве

п

арам

етр

ов

Увеличение количества параметровГипотеза: пользователям рубрики Авто нравятся подробные описания объявлений. Может быть, но это не самое главное, что привлекает посетителей.

28

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

Дел

о н

е в

кол

иче

стве

п

арам

етр

ов

Увеличение количества параметровГипотеза: пользователям рубрики Недвижимость нравятся подробные описания объявлений. Может быть, но это не самое главное, что привлекает посетителей.

29

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

Человек, который изменил все

Послесловие

В титрах к фильму говорится, что герой Бреда Пита так до сих пор и не смог выиграть чемпионский титул со своей командой.

У каждой технологии есть свой предел!

30

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

Пишите: [email protected]

Звоните: +7 913 150 22 04

http://hwdtech.ru

Тюменцев Евгений Александрович