Online services strive to maintain application responsiveness even when the traffic is unpredictable and fluctuating. Today's online services are commonly deployed as chains of microservices, each microservice packaged as one or more containers inside virtual machines (VMs). While performant and affordable when the load is steady, VM-based deployments are known to be slow to scale when the load spikes, resulting in degraded performance for end-users of the service. To avoid such performance degradations, service providers can over-provision their deployments; however, such a strategy is costly and inefficient, leaving resources under-utilized for extended periods. To address the challenge of unpredictable load spikes, we propose Flare, a hybrid microservice architecture that combines VMs with serverless computing. Flare utilizes VMs to cost-effectively handle steady workloads and leverages serverless elasticity to absorb traffic spikes. When a spike occurs, Flare detects which specific service(s) are overloaded and shifts the excess load of only those services to serverless, thus minimizing the cost overhead. Flare seamlessly integrates into existing auto-scaling and serverless infrastructure, requiring minimal changes to the control plane and no modifications to the application.
翻译:在线服务致力于在流量不可预测且波动的情况下保持应用响应性。当前在线服务通常以微服务链形式部署,每个微服务封装为虚拟机内部的一个或多个容器。尽管在负载稳定时性能表现良好且成本可控,但基于虚拟机的部署在负载峰值出现时扩展缓慢,导致终端用户体验下降。为避免此类性能退化,服务提供商可过度配置部署,但这种策略成本高昂且效率低下,会导致资源长期低利用率。为应对不可预测的负载峰值挑战,我们提出Flare——一种结合虚拟机与无服务器计算的混合微服务架构。Flare利用虚拟机经济高效地处理稳定工作负载,并借助无服务器弹性吸收流量峰值。当峰值出现时,Flare检测过载的具体服务,仅将过量负载转移至无服务器环境,从而最小化额外成本。Flare可无缝集成现有自动扩展与无服务器基础设施,仅需对控制平面进行最小修改,且无需调整应用程序。