Implementing Non-functional Production Regression Testing with Kubernetes
摘要
This study examines how the adoption of DevOps practices and microservices architecture shifts the responsibility for maintenance from operations teams to developers, who are now tasked with managing both their code and its dependencies. Although containerization technologies facilitate this transition, a significant limitation persists in the continuous delivery pipeline, which typically supports developers only until deployment. To overcome this challenge, Non-functional Production Regression Testing (NPRT) is introduced as an extension of the pipeline into the production environment. NPRT automates the deployment of a new version (canary) alongside a stable version, monitoring and comparing their performance and executing an automatic rollback in the event of a detected regression. We implemented NPRT within Kubernetes by developing Deployer, a tool that integrates continuous integration systems with monitoring frameworks and Kubernetes clusters. The effectiveness of NPRT was evaluated through real-world applications, including an Apache middleware and Rails application, ensuring continuous, automated testing and improved production reliability.