The «Pyaterochka» store: infrastructure improvements
iOS
Android
Backend
Retail
Intro
We worked on infrastructure and backend architecture improvements and participated in the main mobile application and delivery service development.
Task
«Pyaterochka» is the largest federal trade chain. This is a huge system that constantly expands and grows.
We had to conduct the «Pyaterochka» infrastructure audit to find vulnerabilities and points of growth.
Solution
Our cooperation with «Pyaterochka» began with a small but relevant task. We had to conduct an audit of the infrastructure, which served as the backend for the website, mobile app, and loyalty program.
When the task was solved, the scope of our attention expanded. We took part in the website development (backend), helped to redesign the infrastructure, and implement the ideas that appeared in the audit process
Let things in order below.
Infrastructure audit
We have conducted a backend audit found current problems and proposed some DevOps solutions to make the «Pyaterochka» infrastructure better. At the exit, the customer received a document with the following data:
Description of current problems and DevOps solutions to fix them
Recommendations on organizing work with a DevOps team
Paths of development and options for services scaling prediction
During the audit, we realized that the customer and our team spoke the same language, and we cooperated effectively as a whole, so we decided to continue the cooperation.
The «Pyaterochka» app we worked on
We strengthened the system with DevOps
We dropped off three DevOps specialists for the project, who finalized and improved the infrastructure of «Pyaterochka» step by step. Our audit was taken as a list of tasks.
The MobileUp team has improved the system. We made it so that it could withstand heavy loads during peak hours. Our specialists configured deployment in Kubernetes, Helm, Redis, Grafana, and Kibana to monitor such indicators of the system as traffic, peaks, and other parameters.
Заголовок
«It was very exciting to touch the project, which is used by millions of people across the country every day.»
Backend development of product catalog
The customer’s team was going to switch from a monolith to a microservice architecture. We offered to help with this task and decided to start with a catalog.
The catalog was supposed to be a separate service that interacts with the monolith. It was necessary to design it so that it could withstand a high load. The customer has about 19 thousand stores across the country, where each item has its price, balance, and possible discounts. At the same time, all items in the directory module must be periodically synchronized with other accounting systems.
The catalog was designed, agreed upon with the «Pyaterochka» engineers, and then implemented.
We have implemented it in Python 3 with Elasticsearch.
Заголовок
«It is always inspiring to dive into the processes of a huge company, integrate into them and help improve them. We were inspired to do the project during the year, because there was always something to do — much room for activity. We are happy to know our work has helped to simplify the shopping process for millions of people across the country.»
Improvement of the main app
We worked on the main screen and everything related to it.
- Our specialists participated in the application redesign
We worked on the «Pyaterochka» layouts: we were engaged in building dependencies and a library of components implementation.
- Block architecture standardization
The block design was implemented in the project. Elements look like blocks and appear as blocks in the code. The mechanism had existed before we came here, but the team hadn’t had uniform rules and principles for writing new blocks making it difficult to develop. Artur Artikov, our Android lead developer, helped standardize the block architecture and wrote project documentation.
Delivery Application Modification
The «Pyaterochka» infrastructure includes three modules: the delivery module, the store module, and the app module, which connects two other modules. We have worked with all three.
Delivery application
- Map optimization
The audience of the service is 6 million people. Each request to Yandex maps costs money that the customer spends. We have reduced the number of requests to optimize monthly costs. For example, the app asked Yandex for full information and coordinates of ten drop-down addresses before, but now it asks only for the nearest one.
- Functionality improvement
We updated the application and improved the functionality of selected products. We also added analytics there and integrated Amplitude.
- Bringing order to architecture
We have made submodules in the main delivery module. When the team grows, it is important not to interfere with each other. Submodules help developers to make changes simultaneously. Modules also positively affect the application build time.
Заголовок
«At one point, the Yandex Maps SDK bill increased so much in the app for Android. Therefore, we decided to research to optimize the number of requests. As a result, we managed to find out that an excessive amount of requests are made for additional data about each proposed location when searching for a relevant address. So, we remove additional requests and cut the bill for the maps using by 50%.»
Resume
We wait for new challenges
It was a pleasure to work with «Pyaterochka» and bring benefits to the common cause.
We are looking forward to the next large-scale project where our engineers could be useful.
Team
Project team
- Project managers
Margo Virvich, Nadezhda Abasheva, Ildar Aupov
- Analyst
Tim Mostivenko
- Android developers
Pavel Alexandrov, Artur Artikov, Artem Skopintsev
- iOS developers
Pavel Petrovich, Nikolai Timonin
- Backend developers
Sergey Tverdohleb, Pavel Fomin
- DevOps engineers
Anton Solomatin, Mihail Chivilev, Yury Krylov
- Commercial director
Naikee Eremenko
Collaboration
contacts
0We are always glad to cooperate and work on new projects
Describe the task, and we will contact you soon. Or you can always text us on Telegram.
Let’s get to know each other!
Your application has been submitted successfully
Thank you! We will contact you soon