FreeWheel’s Journey: Transforming a Monolithic Application into a Cloud‑Native Microservices System
This article details FreeWheel’s migration from a decade‑old Ruby monolith to a cloud‑native architecture, explaining cloud‑native fundamentals, the Strangler Pattern, containerization, Kubernetes/EKS orchestration, Istio service‑mesh integration, serverless extensions, and the internal platforms that support the new hybrid system.
FreeWheel, a high‑end video‑advertising technology provider under Comcast, shares how its core business system evolved from a large Ruby monolith into a cloud‑native microservices platform.
The Cloud Native Computing Foundation defines a cloud‑native application as one built with containers, service mesh, microservices, immutable infrastructure, and declarative APIs, enabling elastic scaling across public, private, or hybrid clouds.
Applying this definition, FreeWheel identified three essential parts of a distributed system—business logic, control logic, and technical framework—and emphasized that business logic drives commercial value while non‑functional requirements often dominate development effort.
The migration followed three stages: (1) Application lift, where the monolith was gradually replaced using the Strangler Pattern and the codebase was rewritten in Go; (2) Cloud refactoring, which involved containerizing services, deploying them on Amazon EKS, selecting appropriate Kubernetes resources (Deployments, StatefulSets, DaemonSets, Jobs), exposing services via API Gateway, and adopting Istio for traffic management, observability, and resilience; (3) Building new applications, leveraging AWS Lambda for asynchronous, compute‑intensive workloads and a low‑code platform (Bingo) to generate serverless or microservice scaffolding with automated CI/CD pipelines.
In parallel, the team built internal tools such as the FreeWheel Operation Center (FOC) for deep Kubernetes cluster management, and migrated data stores to suitable solutions like NoSQL key‑value databases for ad‑inventory metadata.
The resulting architecture is a hybrid cloud‑native system that combines microservices, containers, Kubernetes orchestration, Istio service‑mesh governance, and serverless functions, providing a unified, observable, and scalable platform.
Looking ahead, FreeWheel aims to develop applications natively by default—using declarative Kubernetes controllers, service‑mesh capabilities, and proactive observability—to fully realize the cloud‑native vision of business‑centric software development.
For readers interested in deeper technical details, the article also promotes the book “Cloud‑Native Application Architecture: Best Practices for Microservice Development,” which expands on the case study and related technologies.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
DevOps Cloud Academy
Exploring industry DevOps practices and technical expertise.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
