From Monolith to Microservices: Exploring the collaboration between Solo.io and AWS
In the dynamic realm of cloud computing, organizations are modernizing and scaling their applications securely and efficiently. In this blog, we explain how CARFAX used products from Solo.io and AWS infrastructure services to enable seamless application migration from monolith to microservices so they can thrive in the cloud-native era.
Customers have relied on AWS to provide the robust infrastructure to support their move to the cloud. For customers building virtual environments in the cloud, AWS EC2 offers the broadest and deepest compute platform for those workloads. AWS EKS provides customers a way to start, run, and scale Kubernetes for their containerized workloads. For developers that want to run their code without thinking about servers or clusters, AWS Lambda takes computing to the next level by offering a serverless environment for those workloads.
Solo.io builds products that help our customers ease the adoption of the AWS resources in the cloud. Gloo Platform empowers organizations to seamlessly connect their applications running in various AWS environments, whether it be virtual machines (VMs/EC2), Kubernetes (K8s/EKS), or serverless architectures (Lambda). Built on the best distribution of open source technologies such as Istio, Envoy, Cilium, GraphQL and eBPF with enterprise capabilities, Gloo Platform allows businesses to modernize their applications at their own pace while leveraging the scalability and reliability of AWS infrastructure.
Gloo Platform also seamlessly integrates with a wide array of other existing AWS services, including ElastiCache, Cognito, DynamoDB, ACM, X-Ray, AWS Prometheus, and AWS Grafana, enabling organizations to leverage the full potential of the AWS ecosystem.
Let’s look at how CARFAX brought Gloo Platform to their AWS environment for carfax.com
CARFAX provides millions of people with information on shopping, buying, selling, and maintaining their car more confidently. To do that, they have a ton of data that stands behind their products and services from over 31 billion records coming from 139,000 data sources related to vehicles and automobiles.
CARFAX serves a diverse range of customers, including car shoppers, dealers, automotive manufacturers, banks, insurance companies, and more, across multiple markets such as the U.S., Canada, and Europe. With their significant online traffic, ranking 224th* in the U.S., CARFAX faces unique challenges in managing their operations effectively
The needs of CARFAX
Web traffic for carfax.com can often encounter unexpected spikes due to factors like customer buying behaviors and anticipated spikes from viewership of their TV commercials. For instance, after airing a commercial during the Super Bowl or the Olympics, CARFAX experiences an immediate surge in traffic. To effectively handle these fluctuations, CARFAX requires an infrastructure that can seamlessly scale and promptly cater to the increased demands, meeting the surge in web traffic efficiently and delivering a smooth user experience during these high-traffic periods.
The CARFAX journey to AWS & Gloo
CARFAX underwent a journey of migrating their carfax.com infrastructure from on-premises data centers to the cloud, building with the AWS infrastructure. Initially, they treated the cloud as a new data center, gradually shifting the traffic from their data centers to the cloud in a 50/50 split. As they progressed, they focused on moving the entry point of traffic to the cloud, enabling failover between different regions and achieving a more granular control over traffic routing.
In 2017, CARFAX embarked on a migration cloud journey by moving their blog platform application to AWS. Initially, the application was hosted on AWS Elastic Beanstalk, and later it was further migrated to EKS (Elastic Kubernetes Service).
Encouraged by the successful migration, CARFAX continued their carfax.com cloud adoption journey and within a year, they extended the migration to other critical applications, including their home page, used car listings, and research pages. This transition marked a significant shift for CARFAX, as they moved from a combination of on-premises data centers and AWS to a more cloud-native infrastructure, fully leveraging the scalability and flexibility offered by AWS services.
CARFAX initially employed a failover model, gradually refining their approach to gain more precise control over traffic routing. During this migration, CARFAX took advantage of the benefits of the cloud, such as robust networking solutions that spanned hybrid architectures, allowing traffic to flow seamlessly between the on-premises environment and AWS. Monitoring, logging, and the development experience were improved as well, with the cloud providing a different set of environments for deploying code and offering a wider range of options compared to the less flexible on-premises architecture. As the migration advances, carfax.com will reach a point where all their stacks are running on the cloud, reducing the need for their on-premises infrastructure.
As CARFAX embraced new features and technologies available in the cloud, Gloo Mesh emerged as a particularly suitable solution for their cloud-based architecture. Gloo Mesh provided them with enhanced granular control and management capabilities for their distributed systems, making it a better fit for their cloud environment.
High level architecture
CARFAX’s Kubernetes environment is spread across two AWS regions, with an EKS cluster in each of those regions. When a user visits carfax.com the first entry point that they land on is AWS CloudFront which is an AWS CDN product. For apps that can be cached, we configure CloudFront to load their content from S3 and serve it back to the user immediately.
For dynamic content, CloudFront will forward the request to one of the EKS clusters, depending on the request origin location. The requests reach one of the external load balancers and then forwarded to Gloo Edge ALB running in the EKS cluster. Gloo Edge then handles the routing from there forward.
Gloo Edge as an ingress controller
Initially, CARFAX faced challenges with an Ingress controller that failed to meet their traffic requirements. As their Kubernetes clusters hosted an increasing number of applications, such as Single Page Applications, Server-side rendering Applications, and APIs, they required an ingress controller capable of granular path-based routing, redirection, authentication, rate-limiting, firewall capabilities, and the ability to route to external destinations. With Gloo Edge they now have a robust solution that now efficiently handles ~1.8 billion requests per month, serving as the ideal ingress controller for CARFAX’s diverse needs.
Growth on AWS
In the future, CARFAX aims to accommodate growing demands and ensure high availability for their services by scaling. To do this, CARFAX envisions expanding their infrastructure by adding more clusters and using Gloo to route traffic directly to existing AWS Lambda functions to leverage serverless computing and further enhance the agility and scalability of their applications. Workloads running in any Kubernetes cluster or as a Lambda get advanced service mesh functionality such as locality failover, strong identity and authorization, and deep observability. These strategic advancements will enable CARFAX to continue delivering innovative solutions and exceptional experiences to their customers in the evolving automotive industry.
Gloo Platform and AWS for the win
Companies like CARFAX and others are using Kubernetes and AWS to deploy applications across the globe with agility and speed. As customers realize there is additional complexity at scale, Gloo Platform can help organizations on any stage of their journey realize the following benefits of managing and running Kubernetes:
- More secure
- More resilient
- Less operational overhead
- Faster time to market
In our next blog, we will dive into the topic of getting started on your journey today on AWS or exploring the next steps if you’re already on your way. We’ll provide valuable insights and guidance to help you navigate your path effectively. From identifying key priorities to selecting the right tools and strategies, our actionable steps will help you make informed decisions that align with your goals. Stay tuned to our blog as we empower you with the knowledge and resources needed to embark on your journey or take it to the next level.
Get started with a free trial in the AWS Marketplace.
- Customer Case Study: Vonage – API Gateway Migration
- Getting started with Solo
- Getting started with EKS
Solo is proud to be a member of The AWS Partner Network (APN), a thriving global community of partners that collaboratively leverages various programs, expertise, and resources to develop, promote, and offer innovative customer solutions. With over 100,000 partners spanning across more than 150 countries, this diverse network provides a rich ecosystem for collaboration and growth. As an ISV Global Start-up Partner and an ISV Accelerate Partner, Solo ensures that its AWS solutions undergo rigorous validation, instilling confidence in customers regarding their quality and reliability. By leveraging Solo’s validated solutions, customers can easily adopt these offerings and experience accelerated time to market.
Solo also enables customers to streamline their billing process by offering private pricing options in the AWS Marketplace. This consolidation of billing, along with the added advantages of the Enterprise Discount Program (EDP), facilitates faster time to market and enhances the overall customer experience.