share this
Business Situation
The client’s application was in danger of becoming unstable and unusable. It was consuming an unusually high amount of memory, requiring the largest Azure VM server to support it. To save memory, redundancies and other fail-safes were reduced.
Staff were doing manual resets and manually recycling app tools to control memory utilization. Inconsistent architecture made it difficult to manage and maintain, threatening its long-term viability. To ensure long-term usability, the client asked us to reduce the app's memory utilization by 15-30%.
Our Solution
- Architectural redesign of the existing MVC application to utilize a backing set of services
- Implemented best practices in data and memory management to reduce memory leaks, improve data flow, and eliminate manual intervention.
- Began the foundation of a microservice architecture to distribute workload in the future
- Integrated into an existing Azure Redis Cache instance to improve retrieval of stored data
- Moved data-intense render-operation output from in-memory cache to Azure Blob Storage
The Results
50-60% Memory Utilization Reduction
At the start of the project, the client was hoping for a 15-30% reduction. By revamping the data access and services layers of the code base, we significantly reduced memory utilization, reduced ongoing maintenance cost, reduced future development cost, and allowed the client to scale down to a more cost-efficient IaaS virtual server.
Other benefits include:
- Performance improvement
- Stable infrastructure
- Consistency
- Maintainability
- Clean data flow
- Improved user session management, PDF rendering and storage
About the Client
The client is a global hygiene and manufacturing company with operations in over 100 countries.