[ ПОРТФОЛИО ]
Chestars.
Рекламная кампания бренда Chesterfield (Philip Morris)
Задача:
Разработка высоконагруженной платформы для рекламной кампании бренда Chesterfield.
На этом сайте посетители могли загружать видео и аудио, голосовать за участников, регистрировать коды из сигаретных пачек и обменивать накопленные баллы на призы из каталога подарков.
По итогам голосования самые талантливые участники-музыканты записывали
60 000
Мы смогли обеспечить стабильную работу этой платформы для 60 тысяч пользователей онлайн. И это всего лишь с одним сервером.
Вызовы и решения
1
Поиск
по многомиллионной
базе в доли
секунды
2
Конфликт версий
при передаче
личных данных
В рекламной кампании участвовало 96 миллионов кодов. По ним нужно было делать постоянный поиск и проверять использован уже код или нет. Время ответа по требованиям заказчика должно составлять не более 1 секунды.
Проблема
Код — это цифры и буквы с разной длинной, от 10 до 15 символов. В реляционных базах данных на тот момент приоритетным поиском был запрос по строгому соответствию (SQL). Такой поиск занимал до 3-х минут. Нужно было искать другое решение.
Подробности
Тестирование стандартного на тот момент поиска по строгому соответствию результатов не дало (мы использовали сервер с жесткими дисками SAS (10к об/мин 146Gb), собрали RAID 10 и установили на него mysql-server 5.1). Трехминутный поиск никуда не годился. Во вторую попытку на тот же сервер мы установили PostgreSQL 9.0, но и тут поиск длился до 55 секунд.
Решение
Решили провести эксперимент, и попробовать индексировать коды с помощью алгоритмов полнотекстового поиска. Установили open-source движок SphinxSearch, запустили индексацию, и — ура! — время поиска любого кода составило не более 0,21 секунды.
Проблема
Мы ведем разработки на языке программирования Python. OneAgile использовала на тот момент PHP SOAP 1.2, который мог приемлемо взаимодействовать только с PHP. В итоге при обмене мы получали до 8 отказов из 10 запросов.
Решение
3
Постоянные
изменения
и поиск собственных
решений
Проект постоянно нужно было обновлять, искать новые решения и выгружать новые версии сайта на сервер, подстраиваясь под изменения запросов аудитории и, как следствие, — нашего клиента.
Проблема
Отсутствие четкого ТЗ на всех этапах работы над проектом.
Решение
Во-первых, мы перешли на непрерывную интеграцию.
Во-вторых, мы сняли с клиента работу по проектированию желаемых изменений. Клиент делился лишь своей идеей, для которой мы сами прорабатывали разные реализации
и выстраивали взаимодействие системы и пользователей. В итоге — существенное снижение времени на согласование деталей и снижение рисков при реализации.
Реализация проекта: 2014 год
Заказчик: Philip Morris International
+7 905 705 21 78 | Москва
+7 909 542 53 88 | Томск
devel@tigrio.ru
Старая версия сайта