Cloud Native Journey at InMobi Technologies

Dhrubajyoti Basu Roy
Dhrubajyoti Basu Roy
4 min read
Posted on May 16, 2022
Cloud Native Journey at InMobi Technologies

A Brief Overview

Datacenters have been driving the tech infrastructure landscape for decades. Organizations spend a fortune on these cost centers to manage their servers and systems in a secure environment. Scaling up infrastructure appears quite cumbersome requiring a lot of forward planning months in advance. You always must be ready for peak workloads and sudden spikes are hard to manage. This turns out to be quite inefficient considering the cost benefit analysis. As an industry disrupter cloud computing came to the rescue.

Cloud provided a level playing field for startups and small businesses who felt datacenter deployments to be capital-intensive and challenging to adapt. Cloud allowed applications and infrastructure to scale up as needed as you follow a pay-per-use model.

Although new players could quickly adapt to cloud, the established players didn’t find it that easy. Migrating all your existing resources from on-premises to a cloud infrastructure was always going to be a challenging feat. All dependencies must be considered while revamping your existing architectures. A lot of investment also goes into reskilling manpower on cloud technologies. 

Inefficiencies in a Datacenter World

During the initial years InMobi relied heavily on datacenters for all its infra needs. Monolithic designs and legacy systems resulted in inefficiency and reporting delays. Basic operational overheads required a lot of time and money. Planning and business forecasting were required months and even quarters ahead with very low margin for error. 

To accommodate revenue generating businesses, infrastructure relocation was frequently needed resulting in engineering nightmares. Multi-quarter timelines were required to setup new datacenters. From a technical standpoint there was hardly any room to experiment and innovate. 

Traffic projections were required for capacity allocation with adequate room for over projection during peak seasons. Although a lot of compute resources mostly stayed idle, capacity crunch at peak loads resulted in revenue loss, since we had to let go several of our potential customers. 

All these operational inefficiencies forced us to rethink on our strategies and adopt a cloud centered business model. 

Our Journey to the Cloud

InMobi’s journey to the cloud began when we had already grown considerable in size. Evidently a lift and shift approach couldn’t work in our favor. So, we adopted a phased and incremental approach that helped us on our migration process in a seamless manner. 

Our journey to the cloud began when we already had grown considerable in size. Quite evidently a rapid transformation to the cloud infrastructure could not be feasible for us. We had to rely on a phased and incremental approach to gradually migrate to cloud.  

Initial Transition to Azure Cloud

We started out with cloud enabled services that helped us to simply lift and shift our existing resources to Azure. We transformed our applications and systems so that their actions and behaviors could exactly be replicated from datacenters to cloud networks likewise. 

The results were evident and we could leverage the advantage of cloud technologies instantly. There was no need for overprovisioning anymore as we could scale up at will. The business started growing organically at a steady pace. Engineering teams were spared of the last-minute changes and there was adequate room for innovation. 

Although we started reaping the benefits of adopting the cloud model, but it came with a few caveats as well. The cloud migration turned out to be twice as expensive for us. New datacenter setups still required a lot of time. Reporting delays still used to haunt us like before. There was no mechanism for autoscaling and absorbing bursts during peak loads, and the excessive costs also resulted in traffic drops.  

Going Cloud Native Full Scale

To fructify the full potential of the cloud technologies it was essential for us to go beyond the realms of cloud enabled services and transform to adapt cloud native practices. Cloud native architectures are highly scalable, flexible, and distributed that helps to abstract many layers of infrastructure such as networks, servers, operating systems, virtual machines (VMs), and containers – allowing them to be defined in code. 

Using Infrastructure as Code (IaC) we automated deployments by defining the infrastructure configurations in code (like how application code works) and drastically reduced the time taken to setup clusters. 

Azure Kubernetes Services (AKS) helped in workload orchestration and optimal infrastructure usage. The Kubernetes ecosystem has opened the door to a plethora of latest technologies at fingertips. 

Virtual Machine Scale Set (VMSS) helped us manage and auto-scale VMs for maximum CPU utilization and efficiency to cope up with variable traffic trends throughout the day. 

Spot VMs helped us reduce cost significantly on scaling our stateless workloads and for applications that can handle frequent interruptions. Our webservices, microservices, and Spark jobs runs on both regular and spot node pool maintained in autoscaling mode. This protects us from situations like mass evictions that are prevalent for Spot VMs. 

We segregated compute and storage requirements for ETL jobs that saved us a ton of cost. Different Platform-as-a-Service (PaaS) offerings from Azure like Blob Storage, Cosmos DB, and Event Hubs replaced various unmanaged applications to leverage our storage needs. 

Azure DevOps helped us maintain and manage our CI/CD pipelines effectively that improved developer productivity. Our reporting was highly enhanced by adopting Snowflake as the cloud data warehousing platform and sooner we are going to migrate to Databricks for more optimization on these fronts. 

The cloud native migration helped us optimize our infrastructure and reduced the costs to one-third compared to what we incurred on a datacenter model. It improved our engineering productivity through better resource utilization. Enhanced monitoring and observability in the cloud native space supported our specific business goals and helped us grow exponentially year on year.