As more and more companies are migrating (or planning to migrate) from on-premise to Cloud, their focus is to find anomalies and deficits as early as possible in the development life cycle. We propose Frisbee, a declarative language and associated runtime components for testing cloud-native applications on top of Kubernetes. Given a template describing the system under test and a workflow describing the experiment, Frisbee automatically interfaces with Kubernetes to deploy the necessary software in containers, launch needed sidecars, execute the workflow steps, and perform automated checks for deviation from expected behavior. We evaluate Frisbee through a series of tests, to demonstrate its role in designing, and evaluating cloud-native applications; Frisbee helps in testing uncertainties at the level of application (e.g., dynamically changing request patterns), infrastructure (e.g., crashes, network partitions), and deployment (e.g., saturation points). Our findings have strong implications for the design, deployment, and evaluation of cloud applications. The most prominent is that: erroneous benchmark outputs can cause an apparent performance improvement, automated failover mechanisms may require interoperability with clients, and that a proper placement policy should also account for the clock frequency, not only the number of cores.
翻译:随着越来越多的公司从预谋阶段迁移到云层(或计划迁移),它们的侧重点是尽早发现发展生命周期中的异常和缺陷。我们提议Frisbee,一种宣示性语言和相关运行时间组件,用于在Kubernetes上测试云型应用程序。鉴于一个描述正在测试中的系统的模板和描述实验的工作流程,Frisbee与Kubernetes的自动接口,以在集装箱中部署必要的软件,启动所需的侧车,执行工作流程步骤,并对偏离预期行为进行自动检查。我们通过一系列测试来评估Frisbee,以展示其在设计和评价云型应用程序方面的作用;Frisbee帮助测试应用层面的不确定性(例如动态变化的请求模式)、基础设施(例如碰撞、网络隔断层)和部署(例如饱和点)。我们的调查结果对云应用的设计、部署和评价有着强烈的影响。最突出的是:错误的基准产出可以导致明显的性改进性能,自动故障超时钟机制在设计、客户的频率和正确定位的频率方面可能需要对核心政策进行互操作性核算。