datarockets
Nov 23, 2021
No image
Service categories
Service Lines
Software Development
DevOps
IoT Development
Domain focus
Advertising & Marketing
Technology
Programming language
Python
Ruby
SQL
Frameworks
Ruby on Rails
Challenge
The client runs an advertising company that provides hardware devices and analytics software to businesses to generate passive, recurring revenue. Businesses can connect the device to TVs and digital screens, schedule and run different kinds of media campaigns to earn extra income with minimal efforts. In addition, they can manage their ads content (ex. images, videos, and RSS feeds), see metrics and reports to keep track of their earnings.
When we started working together, the client already had a software solution with a huge amount of legacy code, complex business logic, but a good technical base. The biggest challenge we faced was the variety of technologies, lack of automation and tests, and documentation that didn’t cover all aspects of the project.
The client runs an advertising company that provides hardware devices and analytics software to businesses to generate passive, recurring revenue. Businesses can connect the device to TVs and digital screens, schedule and run different kinds of media campaigns to earn extra income with minimal efforts. In addition, they can manage their ads content (ex. images, videos, and RSS feeds), see metrics and reports to keep track of their earnings.
When we started working together, the client already had a software solution with a huge amount of legacy code, complex business logic, but a good technical base. The biggest challenge we faced was the variety of technologies, lack of automation and tests, and documentation that didn’t cover all aspects of the project.
Solution
Our team implemented onboarding automation that allowed customers to perform 10 times faster at this stage.
Besides, the datarockets team implemented a variety of improvements in the infrastructure:
- Switched from old AWS Classic Load Balancer to Application Load Balancer
- Moved cache stores from local Redis to AWS Elasticache
- Moved Sidekiq service to separate server
- Refactored OpsWorks deploy scripts to independently deploy workers and app
- Configured OpsWorks to horizontally auto-scale app servers on load increase
- Created custom AMIs for faster instance start on Auto-scaling
- Used Terraform to keep all infrastructure as code
These changes allowed the application to get 5 times higher load and saved the client’s budget by avoiding redundant scaling.
Our team implemented onboarding automation that allowed customers to perform 10 times faster at this stage.
Besides, the datarockets team implemented a variety of improvements in the infrastructure:
- Switched from old AWS Classic Load Balancer to Application Load Balancer
- Moved cache stores from local Redis to AWS Elasticache
- Moved Sidekiq service to separate server
- Refactored OpsWorks deploy scripts to independently deploy workers and app
- Configured OpsWorks to horizontally auto-scale app servers on load increase
- Created custom AMIs for faster instance start on Auto-scaling
- Used Terraform to keep all infrastructure as code
These changes allowed the application to get 5 times higher load and saved the client’s budget by avoiding redundant scaling.
Results
Despite the fact that we worked with this kind of project for the first time, our team was able to:
- Automate routine business processes to save time & money for our client.
- Resolve a great number of technical issues working as a customer support team, which resulted in a better customer experience.
- Stabilize the applications by reducing the platform’s downtime overall.
- Make the whole ecosystem of applications scalable so the client was able to grow their customer base significantly.
- Improve the code quality and test coverage which resulted in faster development of new features.
datarockets’ team proved their excellent skills of transparent communication and problem solving that impressed the client in a different kind of experience working with international teams.
Despite the fact that we worked with this kind of project for the first time, our team was able to:
- Automate routine business processes to save time & money for our client.
- Resolve a great number of technical issues working as a customer support team, which resulted in a better customer experience.
- Stabilize the applications by reducing the platform’s downtime overall.
- Make the whole ecosystem of applications scalable so the client was able to grow their customer base significantly.
- Improve the code quality and test coverage which resulted in faster development of new features.
datarockets’ team proved their excellent skills of transparent communication and problem solving that impressed the client in a different kind of experience working with international teams.