Written by Ante Esang X Oluwatomi Ayobami
Managing a growing team comes with unique challenges. Our journey began with a disparate group evolving into a large, cross-functional team, operating cohesively to harness diverse talents and perspectives. So far, we have had a satisfactory output and productivity level. However, a team audit raised concerns about our operational costs, prompting us to seek ways to spend less while maintaining or improving output – because, well, capitalism says so!
The Business of the Day
Our primary task was to re-evaluate our operational system, identify inefficiencies contributing to unnecessary costs, and implement strategic measures for cost reduction without compromising quality or productivity.
Key Actions and Strategies Implemented
1. Migrating to a Shared Hosting on our Staging Environment
Transitioning from Netlify to a shared hosting environment was a pivotal decision for our team, prompting a thorough evaluation of our hosting strategy. During the transition, we encountered two main challenges: Firstly, we needed a solution for continuous integration, which was addressed by writing a Git Action script. The second challenge involved configuring the shared hosting server to support JavaScript-based web applications, a task we addressed by implementing a Rewrite Engine.
In the standard scenario, serving projects developed with JavaScript frameworks posed difficulties due to structural differences from conventional HTML. This initiative saw us switching from a monthly to a yearly pricing model with an unbelievable 96% reduction in cost for the first year, and 99% spread over 4 years.
2. Switching to a new Git Hosting Service
To optimize costs associated with per-user charges, we transitioned from GitLab to GitHubs’s CI/CD service. This move not only resulted in substantial cost savings but also streamlined our deployment processes significantly. Unlike GitLab runners, where writing specific scripts for platforms like Heroku was necessary, GitHub allows a direct connection to the Heroku application.
In the GitLab scenario, we had to navigate through runners, each minute of which incurred additional charges. GitHub’s more direct approach not only simplified the deployment process but also eliminated the need for intricate scripts and minimized costs associated with runners charging per minute. This initiative reduced our annual budget allocation for Git hosting service by 87%, even allowing us to comfortably plan for projected new team hires.
3. Using Internal IPs for Traffic Direction
Our analysis found that certain communication between components within the system could be achieved using internal IPs without compromising security. By making this adjustment, we reduced the reliance on external IPs, often associated with additional costs. This move not only trimmed expenses but also enhanced the overall security posture of the system.
4. Shifting to Naira payments for Google Workspace
We transitioned from paying for Google Workspace in USD to utilizing Found Africa – a Google Cloud Partner that facilitates payments for Google Workspace in Naira. This shift brought us economic value by reducing currency conversion costs and mitigating challenges posed by fluctuations in exchange rates. And importantly, this enabled us to conserve our foreign exchange.
5. Optimizing Resource Utilization and Streamlining Operations
Provisioned instances and clusters often operate below their potential if they are left to accumulate over time, leading to wasted resources and unnecessary costs. To address this, we implemented a comprehensive optimization initiative:
- Instance Right-Sizing: Through scrutinizing usage patterns, we identified underutilized instances, subsequently right-sizing them. The outcome was an average monthly cost reduction of $238.65 for a previously 30% utilized instance, contributing to a more efficient allocation of compute resources.
- Cluster Decommissioning: We conducted a thorough review of the existing cluster setup and identified and decommissioned an obsolete cluster that was no longer serving critical functions. This not only reduced costs but also streamlined the system for better performance.
Impact of Implemented Actions
These collectively resulted in an impressive 69% decrease in annual operational costs, with a forecasted cumulative reduction of 71% over the next four years. Additionally, our system’s performance saw a notable improvement, amounting to a decrease in average response time by about 300ms. Our operations became more cost-efficient and aligned with the needs of the team and the company at large.
Lessons Learned and Conclusion
This experience reinforced the significance of flexibility and the need for tailored solutions in addressing challenges. While opting for Netlify initially was a conventional choice, embracing change proved pivotal in discovering more effective solutions. It emphasizes the importance of researching providers, understanding their pros and cons, and adapting solutions accordingly.
As operations mature and expand, conducting a system-wide evaluation becomes crucial. In our case, it helped us discover underutilized clusters and instances.
In Addition, Cost Reduction is crucial for long-term success in teams aiming to optimize resources, especially in startup environments or products in their pre-revenue stage with a primary focus on product development.
As we move forward, sustaining these optimizations requires ongoing collaboration and adaptability. The journey continues as we explore new technologies and strategies to meet future challenges head-on 🚀.