Satisfactory software performance is essential for the adoption and the success of a product. In organizations that follow traditional software development models (e.g., waterfall), Software Performance Engineering (SPE) involves time-consuming experimental modeling and performance testing outside the actual production environment. Such existing SPE methods, however, are not optimized for environments utilizing Continuous Integration (CI) and Continuous Delivery (CD) that result in high frequency and high volume of code changes. We present a summary of lessons learned and propose improvements to the SPE process in the context of CI/CD. Our findings are based on SPE work on products A and B conducted over 5 years at an online services company X. We find that (a) SPE has mainly become a post hoc activity based on data from the production environment, (b) successful application of SPE techniques require frequent re-evaluation of priorities, and (c) engineers working on SPE require a broader skill set than one traditionally possessed by engineers working on performance.
翻译:采用传统软件开发模型(如瀑布)的组织,软件性能工程(SPE)涉及在实际生产环境之外进行耗时的实验模型和性能测试,然而,在利用连续整合和连续交付的环境上,这种现有的SPE方法并不优化,因为利用连续整合和连续交付的环境导致高频率和大量代码变化;我们总结了在CI/CD方面吸取的经验教训,并提议改进SPE进程;我们的调查结果基于SPE在一家在线服务公司X5年时间里对产品A和B进行的工作。 我们发现:(a) SPE主要已成为基于生产环境数据的一项特别活动,(b) 成功应用SPE技术需要经常重新评估优先事项,(c) 从事SPE工作的工程师需要比从事业绩工作的工程师传统上掌握的技能更为广泛的技能。