Azure Kubernetes Service Case Study : Carbon

Challenge:Keeping Cloud Costs Low While Managing Disruptions in a Micro-Services Framework

Carbon processes over 1 billion events every day (including intent signals, context, brand affinity, browsing behavior & demographics) and by integrating with other parts of the marketing technology stack such as ad-servers, demand side platforms (DSPs) and content management platforms, Carbon turns those events into insights and actionable data points.

In order to manage and support the growing requirements of their platform, Carbon’s engineering group came to realize that their current cloud architecture is gradually becoming insufficient, therefore, they decided to transition Carbon’s back-end infrastructure to a microservices container architecture.

Choosing AKS for Managed Kubernetes Services

The Carbon team settled on Kubernetes as their container orchestration platform, but sought an even better way to manage the building process of Kubernetes clusters in the cloud. The solution needed to quickly scale during unpredictable, peak traffic hours, and support a complex work queue to keep their application environment clean post-execution.

Carbon was looking for a way to deliver new services faster, in order to provide more value for its customers. The solution required more agility, elasticity and the ability to quickly and dynamically scale up and down while maintaining the lowest costs possible.

The Carbon team ultimately deployed their Kubernetes clusters on top of AKS (Azure Kubernetes Service), Microsoft’s managed Kubernetes service, as the control plane for their entire K8s infrastructure. “Carbon has been working with Microsoft for many years, so choosing AKS as our Kubernetes managed service was a natural choice for us,” noted Alistair McLean, CTO at Carbon.

After completing the migration to Kubernetes, Carbon realized that the last missing piece in their cloud architecture was the ability to provision the underlying infrastructure seamlessly and in the most cost-efficient way. Due to the nature of their business, Carbon required a solution that would support a fast yet simple infrastructure auto-scaling, when the application reaches unpredictable peak traffic from their global customers throughout the business day.

Azure Low-Priority VMs — DIY Causing Application Downtime

Carbon’s engineering team were hoping to leverage Azure’s Low-priority VMs as the underlying infrastructure nodes to host the Kubernetes clusters, as they were motivated to dramatically lower their cloud operational costs.

The main challenge with their homegrown solution for Low-Priority VMs was that detached machines were not drained properly when removed from the Kubernetes cluster, which resulted in occasional application downtime, due to synchronization issues that arose from pods not being scheduled correctly.

Solution and Benefits — Automating AKS, Increasing Application Availability, All While Reducing Cost by 80%

To tackle their technological challenges with running AKS clusters on low priority VM’s, Carbon decided to approach Spot to help with managing and orchestrating the underlying infrastructure of their Kubernetes clusters. Spot’s solution automates the entire process that drains and cleans up the VM when it is removed from the K8s cluster due to a short lifecycle replacement of the Low-priority VMs.

Spot cordons the containers, migrates and restarts them on different hosts. This eliminates the concern of the VM shutting down incorrectly and contributes to the overall cluster synchronization. This helps ensure that pods are scheduled properly, thus preventing application downtime.

Thanks to the seamless integration between Spot and AKS, Carbon was able to not only enjoy average discounts of 80% on their cloud-compute costs, but also a fully stable Kubernetes cluster. Whenever Low-Priority VMs are interrupted, the affected machines are properly drained and detached from the cluster. In cases that the Low-Priority VM market is unstable or unavailable for a particular VM type, Spot guarantees availability by automatically falling back to On-Demand.

Alistair enthused “It’s a turn-key product, we’ve allocated the nodes via Spot’s console, and since the initial configuration we didn’t really have to touch anything.”

Visibility Into Azure Cloud Costs and AKS Cluster Activity

Furthermore, Spot provided the Carbon team with deeper visibility into what is going on in their Kubernetes clusters, in terms of:

→ CPU\Memory Utilization of Pods, VM’s, overall cluster health

→ Cost breakdown

→ Management and monitoring

→ Pod distribution across nodes

Conclusion

Based on our observation of AKS, it is a proven instrument to simplify container orchestration. The various features of Azure Kubernetes Services can provide developers with the ease of deploying and managing containers. The specific application of Kubernetes in Azure provides important benefits such as automatic upgrades.

Thank - You for Reading …

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store