Reduce Azure costs by 30% and optimize property management application.
Resident is a Property Management company that creates a cloud-based SaaS solution for real estate management agencies. The tenant portal allows users to log in from web browsers on mobile devices, view financial documentation, reports and notifications. It also allows to manage work orders, which is helpful in keeping property in good condition.
The management of multi-tenant apartment buildings is often carried out by specialized companies. As the number of managed properties increases and the needs of tenants and owners grow, advanced programming solutions become helpful. However, Resident, as an Azure-hosted cloud-based application, encountered a common problem. Rising infrastructure spending began to affect operating costs. As the number of properties and the agents to manage them grew, the consequences of the rapid pace of early-stage product development were increasingly felt. A large number of errors made the application unstable, and the accumulating technical problems, lack of basic metrics and functionalities made customers begin to unsubscribe.
One of the main tasks of the project was to develop a plan to optimize Azure services in terms of cloud infrastructure costs and code quality as the basis for further application development.
We use .NET and Angular 6 technologies to create Resident applications.
In the initial phase of the project, we corrected all critical problems, accelerated the application in key places, added logs and monitoring of cloud services.
The next challenge was to stabilize and improve the overall technological reliability of the code by identifying key issues. To better understand the project and the entire business process, we used Event Storming workshops in cooperation with the client’s product teams.
Lowering the cost of cloud infrastructure by 30%.
The entire project was containerized, and an automatic CI/CD
process was also implemented (previously, production implementations were manual).
The reduced expenses were allocated to the optimization and further development of the application, which translated into the implementation of a number of new functionalities.