Just how in demand is serverless computing, really? Popularized by Amazon in 2014, serverless computing had already clinched the title of the highest-growth public cloud service as early as 2018. With its total market value shooting past the USD 9 billion mark in 2022 and projected to hit a jaw-dropping USD 90 billion by 2032, it’s safe to say this relative newcomer is doing quite alright for itself.
In this comprehensive four-part blog series, we’ll take a balanced look at different models, weigh their pros and cons, and delve into the compelling reasons behind the growing appeal of serverless architectures (or when they’re the wrong architecture to use). We’ll also take a deep dive into a real-world case study on Amazon Prime Video and draw upon our own experiences. The whole time, we’ll use specific examples to explain why a particular choice was made – keeping in mind big questions like maintainability, scalability, performance, time to market, and cost. So, fasten your seat belts as we navigate the intricacies and nuances of serverless architectures – and their alternatives.
Microservices: Breaking down complex applications for scalability and flexibility
Before diving into serverless, let’s touch on their precursor, or really the enabling technology which made serverless possible: microservices. By breaking applications into smaller, interconnected services, microservices offer a range of benefits that make them an attractive choice for developers and businesses alike. Here’s a rundown of the most significant drivers propelling the transition towards microservice architectures:
- Scalability: Microservices make it easier to scale individual components of an application independently, allowing for better resource allocation and improved handling of increasing workloads.
- Flexibility: Microservice architectures offer greater flexibility in technology choices, as each service can be developed and deployed using different technologies, frameworks, or programming languages.
- Faster Deployment: Smaller, independent components in microservices can be developed, tested, and deployed quicker, leading to shorter development cycles and easier integration of new features.
- Resilience: In a microservice architecture, a failure in one service is less likely to cause a complete system breakdown, as opposed to monolithic systems, where a single failure can have catastrophic effects.
Serverless: Embracing infrastructure-less computing for cost efficiency and agility
Microservices and serverless architectures are complementary approaches that share some common goals, such as scalability, flexibility, and faster development cycles. Microservices focus on breaking applications into smaller, independent components and serverless takes this idea further by eliminating infrastructure management and allowing developers to run code on-demand without provisioning or maintaining servers. The technology’s promise is that by combining these two paradigms, developers can build highly scalable and efficient applications while streamlining their operational processes.
By sweeping away the complexities of server and infrastructure management, serverless technology offers a host of advantages that make it an appealing choice for modern application development. Here are the main reasons why many organizations are choosing serverless architectures over traditional, non-serverless alternatives:
- Cost Efficiency: Serverless architectures typically follow a pay-as-you-go pricing model, where you only pay for the computing resources you use rather than pre-allocating resources, which can result in cost savings.
- Scalability: Serverless platforms automatically manage scaling, making it easier for applications to handle varying workloads and traffic without manual intervention or complex infrastructure management.
- Reduced Operational Overhead: With serverless architectures, developers don’t need to manage or maintain servers, allowing them to focus more on writing code and delivering new features.
- Faster Time-to-Market: By removing infrastructure management, serverless architectures allow developers to deploy and iterate on applications quicker, leading to shorter development cycles and faster product releases.
- Event-Driven Architecture: Serverless platforms often support event-driven architectures, enabling applications to respond to events or triggers, such as API calls or changes in data, allowing for more flexible and responsive systems without requiring developers to build these architectures themselves.
Finding the Right Balance: The Prime Video Case Study
The serverless circles have been abuzz about a recent Amazon Prime Video blog post. The article chronicles how the streaming giant grappled with significant scaling and cost issues with their audio/video monitoring service. Their initial architecture, built on distributed serverless components, led to costly operations and considerable scaling bottlenecks, inhibiting the system’s ability to monitor an increasing number of streams effectively.
The main expense drivers were the orchestration workflow and data transfers between components. Notably, a high number of state transitions for every second of the stream quickly led to account limits. Moreover, passing video frames among different components via an Amazon S3 bucket resulted in costly Tier-1 calls.
Prime Video apparently rearchitected the service to overcome these challenges, transitioning from a distributed to a monolithic system. This involved compiling all components into a single process, thus eliminating the need for an intermediary S3 bucket for video frames storage and reducing the complexity of orchestration logic. Data transfer was now facilitated within the process memory, and orchestration that controls components within a single instance was implemented.
This supposed shift to a monolithic architecture drastically cut infrastructure costs by over 90% and significantly amplified the service’s scaling capabilities.
This unexpected shift to a monolithic architecture by Prime Video and the resulting enhancements and drastic cost reduction have sparked a flurry of debates across DevOps and systems architecture communities. Could it be that Amazon, a global pioneer of microservices and serverless architectures, is signaling a revival of traditional monolith structures in some of its products?
Monoliths are bad, right?
However, a closer reading of the Prime Video case suggests there’s more going on than meets the eye. In the next blog in this series, we’ll dive into the Prime Video case in more detail and analyze the intricacies of Amazon’s architectural decision.