Улучшили инфраструктуру «Пятёрочки»
iOS
Android
Backend
Ритейл
Интро
Поработали над улучшением инфраструктуры и архитектуры серверной части, приняли участие в разработке основного мобильного приложения и сервиса доставки.

Задача
«Пятёрочка» — крупнейшая федеральная торговая сеть, огромный организм, который непрерывно расширяется и растет.
Нужно было провести аудит инфраструктуры «Пятёрочки». Понять, какие есть уязвимости и точки роста.
Решение
Наше сотрудничество с «Пятёрочкой» началось с небольшой, но важной задачи. Нужно было провести аудит инфраструктуры, служащей серверной частью для веб-сайта, мобильного приложения, программы лояльности.
После решения задачи сфера нашего внимания расширилась: удалось принять участие в разработке веб‑сайта, серверной части, помочь в переделке инфраструктуры и реализовать идеи, которые появились в процессе аудита.
Расскажем обо всем по порядку.
Провели аудит инфраструктуры
Мы провели аудит серверной части, выявили существующие проблемы и предложили DevOps-решения для улучшения инфраструктуры «Пятёрочки». На выходе предоставили заказчику документ, в котором:
Описали существующие проблемы и предложили DevOps-решения для их устранения
Дали рекомендации по организации работы DevOps-команды
Спрогнозировали пути развития и варианты масштабирования сервисов
Во время аудита поняли, что мы с заказчиком «слышим» и понимаем друг друга, в целом сотрудничаем эффективно, поэтому решили продолжить взаимодействие.

Приложение «Пятёрочки», над которым мы работали
Усилили систему с помощью DevOps
Десантировали на проект трех DevOps-специалистов, которые шаг за шагом дорабатывали и улучшали инфраструктуру «Пятёрочки». В качестве списка задач взяли наш же аудит.
Оздоровили систему. Сделали так, чтобы она выдерживала большие нагрузки в пиковые часы. Настроили деплой сервисов в Kubernetes, Helm, Redis, Grafana, Kibana, чтобы мониторить показатели системы: трафик, пики и другие параметры.
Заголовок

«Было очень интересно прикоснуться к проекту, которым пользуются миллионы людей по всей стране каждый день.»
Разработали каталог товаров на backend
Команда заказчика планировала переход с монолита на микросервисную архитектуру. Мы вызвались помочь и с этой задачей. Начать решили с каталога.
Каталог должен был стать отдельным сервисом, который взаимодействует с монолитом. Нужно было спроектировать его так, чтобы он выдерживал большую нагрузку. У заказчика порядка 19 тысяч магазинов по всей стране, на каждую позицию есть своя цена, остаток, возможные скидки. При этом вся номенклатура в модуле каталога должна периодически синхронизироваться с другими учетными системами.
Каталог спроектировали, согласовали с инженерами Пятерочки и реализовали.
Написали его на Python 3 с использованием Elasticsearch.
Заголовок

«Это всегда очень интересно — погружаться в процессы большой компании, встраиваться в них и помогать улучшить. Мы горели этим проектом на протяжении года, ведь там всегда было чего поделать, — большой простор для деятельности. И мы рады тому, что наша работа помогла упростить процесс покупок для миллионов людей по всей стране.»
Улучшили основное приложение
Работали над главным экраном и всем, что связано с ним.
- Поучаствовали в редизайне
Работали по макетам «Пятёрочки». Занимались выстраиванием зависимостей, внедрением библиотеки компонентов.
- Стандартизировали блочную архитектуру
На проекте реализован блочный дизайн. Элементы визуально выглядят как блоки, и в коде отображаются в виде блоков. Механизм существовал до нашего прихода, но у команды не было единых правил и принципов написания новых блоков, что затрудняло разработку. Наш Android-лид Артур Артиков помог стандартизировать блочную архитектуру, написал документацию для проекта.
Модифицировали приложение доставки
В инфраструктуре «Пятёрочки» три модуля: общедоставочный, общепятерочный и модуль самого приложения доставки, который подключает два других. Мы работали со всеми тремя.

Приложение «Пятёрочка» Доставка
- Оптимизировали работу карт
Аудитория сервиса — 6 млн человек. Каждый запрос к картам Яндекса — деньги, которые тратит заказчик. Сократили количество запросов, чтобы оптимизировать ежемесячные расходы. Например, раньше приложение запрашивало у Яндекса полную информацию и координаты десяти выпадающих адресов, а теперь просит только ближайший адрес.
- Улучшили функциональность
Обновили приложение, доработали функциональность избранных товаров. Подключили аналитику, интегрировали Amplitude.
- Навели порядок в архитектуре
Сделали подмодули в основном модуле доставки. Когда команда разрастается, важно не мешать друг другу. Подмодули позволяют разработчикам вносить изменения одновременно. Модули также положительно влияют на время сборки приложения.
Заголовок

«В определённый момент времени счёт за использование SDK карт Яндекса в Android-приложении стал слишком большой. Поэтому решили провести исследование, чтобы оптимизировать количество обращений. В результате удалось выяснить, что при поиске адреса пользователя выполняется слишком много запросов для дополнительных данных о каждой предложенной локации. Убрав дополнительные запросы, получилось сократить счёт за использование карт на 50%.»
У вас есть похожая задача? Давайте обсудим!
Итог
Ждём новых вызовов
Приятно было поработать с «Пятёрочкой» и принести пользу общему делу.
С нетерпением ждем следующий масштабный проект, где могут пригодиться головы наших инженеров.
Команда
Команда проекта
- Руководители проекта
Маргарита Вырвич, Надежда Абашева, Ильдар Аюпов
- Аналитик
Тим Мостивенко
- Android‑разработчики
Павел Александров, Артур Артиков, Артем Скопинцев
- iOS‑разработчики
Павел Петрович, Николай Тимонин
- Backend-разработчики
Сергей Твердохлеб, Павел Фомин
- DevOps-инженеры
Антон Соломатин, Михаил Чивилев, Юрий Крылов
- Коммерческий директор
Найки Еременко
Сотрудничество
Контакты
0Эл. почта
hello@mobileup.ruМы всегда рады сотрудничеству и новым проектам.
Опишите задачу, и мы с вами свяжемся.
Или напишите в Телеграм.
Давайте знакомиться!
Ваша заявка успешно отправлена
Мы все изучим и скоро выйдем на связь