Turbonomic, Inc., an IBM company, was looking for a Digital Engineering partner to enhance their Turbonomic and ParkMyCloud platforms. Gophers Lab enabled the client to meet their requirements by helping them add new services to their platforms and improve their performance. As a result, Turbonomic was able to deliver better platforms to its customers, which allowed them to increase their savings on cloud and made the platforms & processes faster.
About The Customer
Turbonomic is an IBM Company that provides Application Resource Management (ARM) software. The software platform is used by organizations to assure application performance and governance, alongside lowering costs.
ParkMyCloud (PMC), a Turbonomic company, is a cloud-based SaaS platform that helps enterprises automatically identify and eliminate wasted cloud spending. PMC is trusted by over 1,500 companies, including multinational firms, in healthcare, finance, and professional services.
Customer Requirements
The customer was looking to upgrade Turbonomic and the ParkMyCloud platforms to provide better solutions to its customers. Turbonomic had the following requirements:
Turbonomic
- Design and implement new services such as resource suspension and smart parking recommendation generation
ParkMyCloud
- Provide support for more cloud services to generate recommendations that save clients money
- Improve API scalability for large clients to ensure quick response
- Modernize port critical components from legacy systems
- Make onboarding easier for Azure cloud customers
- Resolve issues with horizontal scalability to handle traffic changes
- Reduce the load on DB instances to improve performance
Solution Implemented
The customer worked with Gophers Lab to enhance the Turbonomic and ParkMyCloud platforms by implementing the below solution:
Turbonomic
- Implemented resource suspension and smart parking recommendation generation in the existing Turbonomic action pipeline from scratch in Golang
- Integrated Kafka, Redis, and MariaDB in a modular way in the Turbonomic suspension pipeline
- Designed the architecture to be compatible with both single-tenant on-premise and multi-tenant cloud-based deployment
- Ensured at least 80 percent unit test coverage
ParkMyCloud
- Added support for the following cloud services:
- AWS Fargate pricing, resizing, smart parking (resize to minimum cost configuration), and using discovery engines to discover the resources at regular intervals
- Google Cloud Database recommendation generation using resource usage metrics
- Google Cloud Database resizing using state machine design pattern
- Azure automated onboarding, which created all the required roles, policies, and applications in the customer cloud, for selected subscriptions
- Created aggregate query tables and kept them up to date using event emission design pattern to substantially reduce the API response time and reduce the DB load by removing complex queries
- Implemented Atomic locks for work items to ensure no two workers were ever working on the same work item
- Created Caching mechanism for regularly accessed data
Technology Stack
Front-end
Angular, Angular.js, React
Database
Kafka, Redis, MariaDB, MySQL, Elasticsearch
Cloud
AWS, Azure, Google Cloud, Alibaba
Testing
stretchr/testify, pytest, Jest, Cypress
Tools & Frameworks
TestRail, GitHub Actions, Jenkins, Docker
Business Results
The upgrade helped Turbonomic and ParkMyCloud achieve the following results:
- Adding support for new resources helped clients save thousands of dollars per month in cloud bills
- Azure customer onboarding helped administrators reduce hours’ worth of work to only a few minutes on PMC
- The API response time for large clients was decreased from 1-5 minutes to a few milliseconds
- Reduced the DB load for PMC by close to 25 percent