X5group
Торговля
Россия, Москва
IOS, Android
Май 2024
«Пятёрочка» — крупнейшая федеральная торговая сеть, огромный организм, который непрерывно расширяется и растет. Нужно было провести аудит инфраструктуры «Пятёрочки». Понять, какие есть уязвимости и точки роста. Мы поработали над улучшением инфраструктуры и архитектуры серверной части, приняли участие в разработке основного мобильного приложения и сервиса доставки.
Наше сотрудничество с «Пятёрочкой» началось с небольшой, но важной задачи. Нужно было провести аудит инфраструктуры, служащей серверной частью для веб-сайта, мобильного приложения, программы лояльности.
После решения задачи сфера нашего внимания расширилась: удалось принять участие в разработке веб‑сайта, серверной части, помочь в переделке инфраструктуры и реализовать идеи, которые появились в процессе аудита.
Расскажем обо всем по порядку.
Мы провели аудит серверной части, выявили существующие проблемы и предложили DevOps-решения для улучшения инфраструктуры «Пятёрочки». На выходе предоставили заказчику документ, в котором:
- Описали существующие проблемы и предложили DevOps-решения для их устранения;
- Дали рекомендации по организации работы DevOps-команды;
- Спрогнозировали пути развития и варианты масштабирования сервисов.
Во время аудита поняли, что мы с заказчиком “слышим” и понимаем друг друга, в целом сотрудничаем эффективно, поэтому решили продолжить взаимодействие.
Десантировали на проект трех DevOps-специалистов, которые шаг за шагом дорабатывали и улучшали инфраструктуру «Пятёрочки». В качестве списка задач взяли наш же аудит.
Оздоровили систему. Сделали так, чтобы она выдерживала большие нагрузки в пиковые часы. Настроили деплой сервисов в Kubernetes, Helm, Redis, Grafana, Kibana, чтобы мониторить показатели системы: трафик, пики и другие параметры.
Команда заказчика планировала переход с монолита на микросервисную архитектуру. Мы вызвались помочь и с этой задачей. Начать решили с каталога.
Каталог должен был стать отдельным сервисом, который взаимодействует с монолитом. Нужно было спроектировать его так, чтобы он выдерживал большую нагрузку. У заказчика порядка 19 тысяч магазинов по всей стране, на каждую позицию есть своя цена, остаток, возможные скидки. При этом вся номенклатура в модуле каталога должна периодически синхронизироваться с другими учетными системами.
Каталог спроектировали, согласовали с инженерами Пятерочки и реализовали.
Написали его на Python 3 с использованием Elasticsearch.
Работали над главным экраном и всем, что связано с ним.
Поучаствовали в редизайне: работали по макетам «Пятёрочки». Занимались выстраиванием зависимостей, внедрением библиотеки компонентов.
Стандартизировали блочную архитектуру: на проекте реализован блочный дизайн. Элементы визуально выглядят как блоки, и в коде отображаются в виде блоков. Механизм существовал до нашего прихода, но у команды не было единых правил и принципов написания новых блоков, что затрудняло разработку. Наш Android-лид Артур Артиков помог стандартизировать блочную архитектуру, написал документацию для проекта.
В инфраструктуре «Пятёрочки» три модуля: общедоставочный, общепятерочный и модуль самого приложения доставки, который подключает два других. Мы работали со всеми тремя.
Оптимизировали работу карт
Аудитория сервиса — 6 млн человек. Каждый запрос к картам Яндекса — деньги, которые тратит заказчик. Сократили количество запросов, чтобы оптимизировать ежемесячные расходы. Например, раньше приложение запрашивало у Яндекса полную информацию и координаты десяти выпадающих адресов, а теперь просит только ближайший адрес.
Улучшили функциональность
Обновили приложение, доработали функциональность избранных товаров. Подключили аналитику, интегрировали Amplitude.
Навели порядок в архитектуре
Сделали подмодули в основном модуле доставки. Когда команда разрастается, важно не мешать друг другу. Подмодули позволяют разработчикам вносить изменения одновременно. Модули также положительно влияют на время сборки приложения.
Ждём новых вызовов!
Приятно было поработать с «Пятёрочкой» и принести пользу общему делу.
С нетерпением ждем следующий масштабный проект, где могут пригодиться головы наших инженеров.
MobileUp с удовольствием обсудит вашу задачу