在2020年的全球软件质量与效能大会上,携程的技术专家陈亮先生分享了关于AVD(Android Virtual Device)容器化的规模化应用实践报告。该报告主要探讨了携程在面临的问题和痛点驱动下,如何采用AVD技术以及将其容器化以提高软件质量和工程效率。
首先,陈亮先生阐述了携程面临的挑战,包括性能瓶颈、运维复杂性、资源浪费以及成本控制等。这些问题促使他们寻求通过AVD容器化来解决,旨在优化测试环境,特别是针对CI/CD(持续集成和持续交付)流程中的性能提升和资源利用率。
AVD与AVD容器化是核心议题,陈亮解释了两者之间的关系,即AVD原本作为模拟器用于本地开发和测试,而容器化则允许其在生产环境中更加灵活地部署和扩展。通过容器技术,如Kubernetes (K8S)、OpenStack组件(如Neutron、OVS)和容器编排工具,携程实现了AVD的高效部署。
在部署方案上,他详细介绍了两个步骤:一是基于基础Linux镜像的容器化部署,确保兼容性和稳定性;二是结合虚拟化技术,利用K8S进行容器部署,同时关注网络嵌套和ARM/X86指令转换对性能的影响。结果表明,AVD容器化在性能、可扩展性、管理性和成本方面都优于传统的云真机解决方案。
在实际应用中,AVD容器化显著提高了测试效率,例如在场景1中,通过部署容器,携程能在1分钟内部署50台设备,相比真机集群的1周时间,性能提升明显。同样,在场景2中,从零开始,AVD容器化使得大规模部署变得更为可行,自动化测试用例的执行效率平均提升了80%以上。
此外,报告还展示了AVD容器化的规模化效果,包括大规模设备使用、多部门协作(如CI/CD团队)、以及对Android新特性的支持。携程正在构建一个混合架构,将90%的测试负载分配给AVD集群,仅保留10%的真实设备用于特定场景,从而降低成本并提升效率。
未来,携程计划进一步增强AVD的功能,如一键切换不同操作系统和分辨率、实时流模式交互访问和调试,以及充分利用Android 11的新特性。这些发展预示着AVD容器化将在携程的软件测试和工程实践中发挥更大作用。
陈亮先生的分享提供了携程如何通过AVD容器化克服挑战,提升测试效率,降低运营成本,并规划未来发展方向的具体实例,对于IT行业的容器化实践具有参考价值。