Один портал вместо 14: как собирали цифровую ВДНХ
Представьте, что вы открыли сайт выставки, нашли интересное событие и перешли в раздел другого павильона. Цвета изменились. Меню стало другим. Кнопки находятся в новых местах. Кажется, будто вы случайно ушли с сайта и попали на чужой ресурс.
Примерно так раньше выглядело цифровое пространство ВДНХ. У разных направлений было 14 отдельных сайтов. И объединить их оказалось намного сложнее, чем нарисовать одинаковое меню.
14 сайтов одной локации
У музеев, выставочных площадок и других направлений ВДНХ были отдельные сайты. Они создавались в разное время и выглядели по-разному.
Посетитель мог открыть афишу на одном ресурсе, перейти к другому событию и оказаться в совершенно новом интерфейсе. Приходилось заново искать меню, расписание и покупку билетов.
Сотрудникам было не проще. Одну новость нужно было размещать сразу в нескольких местах. Если менялось расписание или закрывался павильон, информацию приходилось обновлять в разных системах.
Логичным решением казалось объединить все сайты. Но здесь началась самая сложная часть.
Старый сайт нельзя было просто выключить
С ним уже работали мобильное приложение и информационные экраны на территории ВДНХ. Они регулярно запрашивали расписание, описания мест и другую информацию.
Если бы старую систему просто заменили новой, часть этих устройств и приложений могла перестать работать. Тогда к проекту сайта добавилась бы срочная переделка всех подключенных сервисов.
Поэтому новую платформу научили отвечать старым приложениям на привычном для них языке. Внутри система стала другой, но мобильное приложение и информационные экраны продолжили получать данные как раньше.
Это похоже на переезд магазина в новое помещение, при котором старый вход временно оставляют для постоянных покупателей.
Одна база, разные разделы
События, новости и места перенесли в общую систему. Теперь информацию достаточно добавить один раз.
Если событие относится к нескольким разделам, оно появляется там автоматически. Редактору больше не приходится копировать один и тот же текст.
При этом направления ВДНХ не стали одинаковыми. У них сохранились собственные цвета, меню и оформление. Разница в том, что теперь все они собираются из одной системы.
Обучение сотрудников заняло 2 часа. Техническая команда заказчика уже через неделю смогла самостоятельно добавлять новые функции.
Почему сайт стал быстрее
Раньше серверу часто приходилось заново собирать одну и ту же страницу для каждого посетителя.
В новой системе часто используемые данные подготавливаются заранее. Если страница не изменилась, пользователю показывают уже готовую версию. Дополнительные элементы загружаются только тогда, когда они действительно нужны.
Особенно сложной была афиша. Пользователь может выбрать дату, цену, возраст, тему и другие параметры. Всего вариантов фильтрации было больше 100.
Если при каждом выборе обращаться к основной базе, она быстро перегружается. Поэтому события заранее распределили по упорядоченным спискам. Когда посетитель выбирает несколько условий, система находит пересечение этих списков.
Например, подборка бесплатных детских концертов на ближайшие выходные формируется за 3-5 мс. Нагрузка на основную базу сократилась на 90%.
Почему не пришлось покупать новые серверы
У городского портала нагрузка меняется в зависимости от событий. В обычный день посетителей может быть относительно немного. После открытия катка или крупной выставки их число быстро растет.
Система была разделена на несколько самостоятельных частей. Если одна из них начинает получать слишком много запросов, можно временно запустить дополнительные экземпляры именно этой части.
Это позволило оставить прежнюю инфраструктуру и при этом подготовить сайт к более высокой посещаемости.
Карта тоже могла стать дорогой
Интерактивная карта использует внешний картографический сервис. Некоторые обращения к нему оплачиваются.
Если отправлять запрос после каждого изменения, расходы постепенно растут. Поэтому маршруты пересчитываются только тогда, когда редактор завершил работу и нажал отдельную кнопку.
Часть информации о местах хранится внутри платформы. Повторно запрашивать названия, значки и другие базовые данные не нужно.
Если пользователь находится далеко от ВДНХ, построение маршрута может переключаться на Яндекс Карты.
Что получилось
Разработка заняла 6 месяцев вместе с дизайном, согласованиями и документацией.
Время ответа серверной части сократилось с 900 до 62 мс. Это почти 15-кратное ускорение. Первый экран загружается менее чем за 2 секунды даже при высокой посещаемости.
Но для посетителя важнее другое. Сайт перестал выглядеть как набор несвязанных ресурсов. События, места и маршруты находятся в одной системе.
Для сотрудников исчезла часть повторной работы. Для технической команды появилась возможность развивать отдельные части сайта, не перестраивая его целиком.
Самый заметный результат проекта находится не на экране. Он проявляется в тот момент, когда меняется расписание, появляется новое мероприятие или резко вырастает число посетителей, а система продолжает работать как обычно.
Здесь я обычно пишу про проекты, кейсы и ИТ-практику. А если хочется увидеть меня не только в рабочих текстах - приходите в мой тг https://t.me/alekseypostrigaylo. Там - сын, поездки, работа за кадром, личные наблюдения и попытка жить так, чтобы было что вспомнить.















