This case study deals with an internal end-to-end product tracking application at a leading provider of bioscience research models that was bogged down with performance issues.
AIM Consulting closely partnered to evaluate and upgrade the application, delivering the project ahead of schedule while enhancing the skillsets of the client’s development team.
What AIM Consulting did:
- Cloud services strategy
- Application performance profiling and analysis
- Application performance optimization
- Python code optimization
- Real-time monitoring for some application components
- Set up scaffolding for automated testing and provided training
- Agile coaching
- Team enablement
Technologies implemented for client:
- Python
- Django
- Django debug toolbar
- PostgreSQL
- Microsoft Azure Cache for Redis
- Grafana
- Prometheus
- cProfile
- Locust
TABLE OF CONTENTS:
- Business-Critical Application Needing Re-architecture
- Approach to Re-Architecture, Optimization of Application
- Documentation of Application, Training of Engineers
- Results of Re-engineering Business-Critical Application
Business-Critical Application Needing Re-Architecture
A leading provider of bioscience research models developed an internal application to manage the end-to-end tracking of its products.
However, the application quickly gathered significant technical debt, with an overwhelming backlog of support tickets that was growing faster than the development team could manage. The highest priority issues were related to the overall performance of the application.
Too busy addressing the support issues and lacking sufficient knowledge of the tools to rigorously evaluate and upgrade the application, the development team looked for help.
The team was introduced to AIM Consulting through AIM’s sister company, Bridgepoint Consulting, which was actively engaged with the client on a CRM project.
Our technical delivery teams worked closely with the client to enhance the performance of the application and strengthen the competencies of the internal development team with both tools and methodologies.
Approach to Re-Architecture, Optimization of Application
AIM got to work immediately to fully evaluate the application, exploring support tickets, analyzing server logs, conducting interviews with subject matter experts, and taking input from the product owner.
After discovering and analyzing more than 500 application endpoints, we prioritized those most impactful to the business.
After establishing our priorities, we analyzed the application architecture and environments with Django, Postgres, and VMs on Azure.
We then analyzed the application performance utilizing appropriate profiling tools, including cProfile, Django-Silk, and Django Debug Toolbar. These tools allowed us to capture detailed information about program execution, such as call stack, execution timing, and database queries.
From there, we leveraged our expertise in application performance profiling to design and carry out the following technical roadmap components:
- Implemented a caching solution (Azure Cache for Redis) into the overall application architecture
- Introduced a real-time monitoring solution for the application and key components utilizing Prometheus and Grafana
- Developed Python Locust scripts to automate single- and multi-user load testing on select endpoints
- Captured application performance metrics with Django Silk Profiler
- Established framework and patterns for implementing automated testing into the development lifecycle.
“Working with the AIM team was a great pleasure. They supplied hands-on solutions and enhancements working closely and collaborating with the development team. They not only made theoretical suggestions but delivered examples of the needed changes in code examples as well as trained our development team on how to continue those enhancement efforts in the future.
Manager, Software Development
AIM also supplied us with a great toolset for those changes without needing to change the nature and underlying structure of our platform. All in all, they did a great job in finding the best-customized solution for our code and architecture as well as the knowledge level of the dev team.”
Leading Provider of Bioscience Research Models
Documentation of Application, Training of Engineers
From the very start, we worked side-by-side with the client’s engineers, thoroughly documenting the application and conducting knowledge-sharing sessions on how to leverage the tools and technologies we introduced during the project.
Along with implementing DevOps practices, AIM’s scrum master also provided agile coaching to allow for more effective leadership and management of the development team and of the backlog.
Client engineers are now equipped with tools and practical knowledge regarding measurement of the application performance, and how best to leverage the appropriate coding practices, profiling mechanisms, and Azure services to continue improving the application.
The team can also leverage templates developed by AIM for implementing several types of tests, and for containerizing the application.
The client benefited significantly from the application’s increased performance.
Key results of re-engineering business-critical application
20% Under budget
72% Application performance improvement
60% Reduction in database queries per endpoint
Results of Re-Engineering Business-Critical Application
With the improvements to the performance of the product tracking application in place and a highly empowered team to support it, the client is delighted about its partnership with AIM.
The length of time it takes to perform common tasks with the application has been reduced, and the development team has been empowered with modern tools and methodologies.
The client not only benefited from the application’s increased performance, but also from AIM overdelivering on the engagement by completing it one week ahead of schedule and 20% under budget.
Since our completion of this project, the client reached out to us again to request assistance on another mission-critical project, this time with some problematic Azure services.
The client stated that after their recent, positive experience working with us on their product tracking application, AIM was the “obvious choice” for this second project.
Need Help Optimizing Your Applications?
We are technology consulting experts & subject-matter thought leaders who have come together to form a consulting community that delivers unparalleled value to our client partners.
Recent Case Studies from AIM Consulting: