2016 · 40 citations · 20 references
ComputingComputer SystemsSystems EngineeringA/b TestingCloud InfrastructureCloud MonitoringSoftware TestingTestbenchesMicroservice DeploymentPerformance OverheadPerformance Overhead AnalysisPublic CloudTesting MicroservicesTesting Strategies
Live testing is used in the context of continuous delivery and deployment to test changes or new features in the production environment. This includes canary releases, dark launches, A/B tests, and gradual rollouts. Oftentimes, multiple of these live testing practices need to be combined (e.g., running an A/B test after a dark launch). Manually administering such multi-phase live testing strategies is a daunting task for developers or release engineers. In this paper, we introduce a formal model for multi-phase live testing, and present Bifrost as a Node.js based prototype implementation that allows developers to define and automatically enact complex live testing strategies. We extensively evaluate the runtime behavior of Bifrost in three rollout scenarios of a microservice-based case study application, and conclude that the performance overhead of our prototype is at or below 8 ms for most scenarios. Further, we show that more than 100 parallel strategies can be enacted even on cheap public cloud instances.
20
Online controlled experiments at large scale
Ron Kohavi, Alex Deng, Brian Frasca et al. · 2013 · 432 citations
Practical guide to controlled experiments on the web
Ron Kohavi, Randal M. Henne, Dan Sommerfield · 2007 · 383 citations
Business, Data Science, A/b Testing +14
André van Hoorn, Jan Waller, Wilhelm Hasselbring · 2012 · 286 citations
Continuous Delivery: Huge Benefits, but Challenges Too
Lianping Chen · IEEE Software · 2015 · 255 citations
Computing, Information Technology, Continuous Improvement +10