ГК «Страна Девелопмент»
Недвижимость
Россия, Тюмень
Январь 2024
Компания Страна Девелопмент поставила себе амбициозную задачу — стать топ-застройщиком России по внедрению диджитализированных сервисов.
Главной же задачей ARTW стало масштабное изменение цифрового ландшафта IT-инфраструктуры клиента в помощь достижению этих планов.
В отрасли Строительства и недвижимости цифровые инструменты занимают одну из ключевых ролей. От скорости их внедрения зависит как быстро компания может масштабироваться.
Чтобы быстро нарастить скорость внедрения новых сервисов, качественно поддерживать текущие, и при этом сокращать накопившийся технический долг нужно было выстроить структуру, в которой клиент сможет наращивать команду разработки, как внутреннюю так и из привлекаемых на аутсорс разработчиков, не теряя в управляемости.
Проект состоит из нескольких больших частей:
— Основной Портал, куда в первую очередь попадают конечные пользователи
— Личный Кабинет клиента, в котором есть всё необходимое покупателю
— Кабинет брокера, удобный инструмент для ведения сделок агентами-продавцами
— Панель менеджера, внутренний инструмент сотрудников клиентского отдела компании
— CRM, корпортал и отдельные интеграции
Изменения, которые мы привнесли в проект коснулись каждой из этих частей.
Новый ипотечный калькулятор предусматривает два самых распространенных пользовательских сценария: в первом, пользователь может подобрать квартиру исходя из условий одобряемого одним из банков кредита, а во втором, получить предложения по ипотеке от банков для понравившейся квартиры. В любом из кейсов, пользователь может отправить заявку и получить ответ не покидая сайта, выполнена интеграция с банковскими система по API.
В среднем, потенциальный покупатель пользуется внутренним поиском по каталогу квартир не менее 8 раз за сессию, используя как простые фильтры из 1-2 критериев, так и сложные запросы с десятками полей. Это одна из ресурсоемких задач сайта. Мы изменили алгоритмы, и теперь даже самый сложный запрос обрабатывается не дольше 0.9 секунды, в то время как раньше пользователям иногда приходилось ждать ответа 20 секунд.
В 2022 году почти 60% сделок по продажам квартир в проектах компании было заключено агентствами недвижимости (брокерами). Оптимизация кабинета брокера — это отличный пример комплексного решения задачи оптимизацией бизнес-процессов, UX и технической составляющей. Новый личный кабинет стал быстрее на 95%. Регистрация в кабинете брокера занимает не более 5 минут. Для проверки уникальности клиента требуется всего 1–3 секунды, далее агент может сразу за собой закрепить покупателя. В приложении всегда актуальная информация о проектах, помещениях в продаже, статусе оплаты вознаграждения и клиентах. Руководители агентств недвижимости могут видеть все текущие сделки своих брокеров.
Улучшение пользовательского опыта — непрерывная задача. Лучшие решения принимаются на основе данных. Мы внедрили подход (и программную реализацию) Feature Flag — он позволяет, в том числе, быстрее отрабатывать гипотезы и A/B-тесты. Дополнительно, маркетологи могут комбинировать несколько тестов или раскатывать на определенные группы/когорты посетителей.
В процессе работы над проектом, мы заменяли неэффективные решения более прогрессивными. Это коснулось как программного обеспечения так и подходов.
В самом начале была составлена доменная карта проектов и узлов – это позволило увидеть пересечения, возможности переиспользования, избыточность, связность и т.д..
Мы провели полный IT-аудит: выявили спорные места, недостатки документирования, код, требующий замены и масштаб технического долга.
Следующим шагом стал пересмотр системной архитектуры проекта, чтобы сделать его более масштабируемым и отказоустойчивым.
Основной язык программирования Python и фреймворк Django отлично подходит для решения задач, а вот от монолитного ядра мы решили отказаться – отдельные узлы перенесли на микросервисную архитектуру.
Вместе с командой клиента, мы перестроили репозитории с кодовой базой, утвердили подход git flow, настроили недостающие сервера для dev/stage/prod.
От предыдущего подрядчика достался разрозненный набор недокументированных скриптов для сборки. Рядовой процесс занимал около 20 минут для фронта и 10 для бэкенда, что непозволительно для работы команды. Благодаря настройке пайплайнов и раннеров время сборки сократилось до 1 минуты, а деплоя до 2 минут.
Разработка переведена на компонентный подход – это даёт большую унификацию и сокращение времени при переиспользовании (сделан упор на атомарность фронта и бэка).
Весь новый код и значительную часть легаси мы обложили тестами, подключили SonarQube.
После значительного рефакторинга мы плавно перешли на микрофронтенд. В случае Страны это оправданный подход – например, части ипотечного калькулятора применяются и на Портале, и в ЛК Клиента, и в Панели менеджера – переиспользование позволяет экономить время разработки.
Узким местом долгое время оставались большие запросы в БД – переписали и оптимизировали, расставили более эффективные ключи, и получили десятикратный прирост быстродействия.
Провели оптимизацию контейнеров, переписали образы докера. CI/CD стал значительно бодрее и управляемее.
Провели переезд из Яндекс Облака в Облако Сбера. Помогли клиенту сэкономить на облачной инфраструктуре.
Мониторинг обеспечивают Grafana и Prometeus. Периодически сверяемся с нагрузочным тестированием – результаты радуют. Прирост производительности при сокращении затрат на инфраструктуру.
Сейчас на проекте проводится целый ряд тестов: unit test, e2e, тесты пайплайнов, миграций, интеграционные и нагрузочные тесты. Релизы проходят намного прогнозируемее.
Вывели на проекты более 50 наших разработчиков, сформировали несколько команд. Тимлиды и руководители проектов периодически обмениваются знаниями по проектам и приходят друг к другу на демо – так обеспечивается синхронизация.
Внедрили подход Feature flag. Релизы команд стали более независимыми.
Значение time-to-market улучшилось кратно.
Чтобы держать хороший темп, мы сформировали на проекте сразу несколько команд разработки. Разработали новую системную архитектуру готовую к масштабированию. Core-команда приступила к распиливанию неповоротливого монолитного ядра на микросервисы. Другие команды занялись устранением техдолга, документрованием, рефакторингом, а также созданием нового функционала и сервисов. Наши devOps специалисты вместе с IT-департаментом клиента разворачивали решения для непрерывной интеграции и обеспечения совместной работы команд программистов, тестировщиков, дизайнеров.
В результате, мы добились отличных результатов:
— time-to-market показатель ускорился в разы;
— время сборки сократилось в 4 раза, а скорость деплоя увеличилась в 3 раза;
— код ресурсоемких запросов и функций был оптимизирован чтобы получить прирост производительности до 8 раз (коэффициент рефакторинга достигал местами 70%);
— проекты полностью покрываются тестами и документируются, сформирована документация по legacy-части;
— внедрен подход feature flag для тестирования гипотез и кагортного релиза фич;
— новая системная архитектура производительная, отказоустойчивая и готова к масштабированию;
— критичные узлы выделены в микросервисы, устранена неповоротливость и излишняя связность монолита;
— настроен CI/CD, сконфигурированы dev/stage/prod-сервера, процессы регламентированы;
— выстроена совместная работа внутренних разработчиков клиента с разработчиками ARTW (50+ программистов участвует в проектах).
Внедренные devOps практики и новые регламенты ускорили время выкатывания новых фич в продакшн.
Благодаря всему комплексу работ по изменению цифрового ландшафта проектов компании, сервисы и цифровые продукты Страна Девелопмент были отмечены экспертами отрасли.
В 2023 году компания стала топ-застройщиком России по внедрению цифровизированнх сервисов.
ARTW с удовольствием обсудит вашу задачу