Город живёт быстро. Портал должен успевать.
Разработка новой версии городского портала Омска: новости, объявления, автоматизация модерации и развитие внутренних инструментов.
- Наш вклад
- Новая архитектура, разработка портала и автоматизация
- Продукт
- Веб-портал
Архитектура
Независимые сервисы и асинхронная загрузка данных.
Новости и объявления
Развитие пользовательских сценариев городского портала.
Модерация
Автоматический анализ объявлений и помощь модераторам.
Внутренние инструменты
Отчётность, интеграции и автоматизация рабочих процессов.
О проекте
Город55 — городской портал Омска с новостями и объявлениями: недвижимость, автомобили, работа и другие повседневные задачи. К началу проекта существующая версия работала медленно и нестабильно. Мы разработали и внедрили новую версию сайта, переработали архитектуру и развивали инструменты для пользователей и команды портала.
Новая архитектура для быстрого отклика
Мы начали с анализа кода и разговоров с разработчиками, менеджерами и службой поддержки. Выяснилось, что страницы долго ждали базу данных и внешние источники: прогноз погоды, курсы валют и другие сервисы. Сбой одного поставщика мог помешать отображению всей страницы.
Приложение разделили на небольшие независимые сервисы. Для внешних источников создали собственные сервисы-посредники, а сайт переработали в одностраничное веб-приложение с асинхронной загрузкой необходимых данных. В результате среднее время отклика страниц сократилось с 4,5 секунды до 400 мс.
Стабильность, которую можно измерить
Для наблюдения за состоянием системы использовали статистическое управление процессами и карты Шухарта. Они помогали замечать отклонения, искать причины и оценивать эффект исправлений. В отдельном кейсе описано, как за три месяца число ошибок, видимых пользователю, сократилось в 10 000 раз относительно старой версии сайта.
Работу дополняли автоматические тесты, непрерывная интеграция в TeamCity и инструменты масштабирования IIS. Скорость и стабильность рассматривались вместе: пользователю важно и быстро получить страницу, и успешно выполнить свою задачу.
Модерация без долгой очереди
Ручная проверка объявлений создавала задержки. Мы изменили процесс и внедрили автоматический анализ текста: система распознавала содержание и искала подозрительные сочетания. Объявления, которые она могла полностью распознать и в которых не находила подозрительных признаков, публиковались автоматически; остальные направлялись модераторам.
Так автоматизация взяла на себя часть повторяющейся работы, а сложные случаи оставались людям. Среднее время модерации объявления сократилось до 30 секунд.
Понятные объявления и удобные сценарии
Работа над порталом включала разбор запросов и текстов объявлений на естественном языке. Например, за словами «двушка в центре» нужно распознать запрос о двухкомнатной квартире. Мы решали такие задачи вместе с развитием UX разделов недвижимости и новостей, инструментов монетизации объявлений и проверки продуктовых гипотез.
Портал как часть рабочих процессов
Сайт был связан с внутренними информационными системами издательской компании. Помимо публичной части, мы развивали отчётность, базу адресов и интеграции с дизайнерскими программами Adobe, автоматизируя операции при подготовке рекламных макетов.
По мере работы требования к отдельным разделам менялись. Поэтому проект охватывал не только выпуск новой версии, но и дальнейшее развитие пользовательских сценариев и внутренних инструментов.
Город55: что изменилось
4,5 с → 400 мс
Сократили среднее время отклика страниц после внедрения новой архитектуры.
30 секунд
Снизили среднее время модерации объявления благодаря автоматизации и изменению процесса проверки.
15 → 3 сервера
Запустили новую версию на меньшем числе серверов. Это стало дополнительным результатом переработки архитектуры.
Технологии проекта
Стек, с которым мы работали над Город55.
C#
Логика приложения
T-SQL
Запросы и логика работы с данными
Ext.js
Компоненты веб-интерфейса
TPL
Параллельное выполнение задач
Lodash
Утилиты для работы с данными
Selenium
Приёмочные тесты в браузере
TeamCity
Непрерывная интеграция
IIS
Веб-серверы и балансировка нагрузки
Подробнее о работе
Улучшение скорости отклика страниц в 10+ разКак студенты смогли в 10 000 раз сократить количество баговИскусственный интеллект (AI) модерирует контентУ вашего продукта — своя задача.
Обсудим, что нужно вашим пользователям и как превратить это в работающий продукт.