面对互联网场景,高并发和高可用已成为企业***的挑战。用友iUAP作为大型企业互联网开放平台,必须要支撑2B应用在面对高并发使用场景下的高性能和稳定性。为此,iUAP对平台进行了百万人的并发压力测试。压测的应用程序都跑在Docker容器里面,由iUAP云运维平台统一进行不同场景的批量发布和扩容缩容。
本次测试使用建筑行业物资结算系统,按照查询和保存9比1的比例设置压力测试场景,基准数据量为2000万行,在此基础上进行100万人并发压力测试。利用压力测试工具UAPRunner,模拟多应用场景来验证产品的运行状况以及系统资源的使用状况。
压力测试运行状况
压力测试环境由40台物理机组成,操作系统采用CentOS7,iUAP云运维平台直接部署在物理机上,其他所有被压测机器由运维平台直接启动Docker容器,并自动加入服务发现。测试过程中由于需要做多组不同场景的对比,需要不断切换测试环境场景,基于iUAP云运维平台,基本在5分钟以内可以快速完成被压测场景的搭建,大大节省了压测的时间成本。
压测场景的拓扑结构图
测试结果表明,iUAP平台百万并发支撑在3万左右TPS稳定运行。继续加大压测并发,***TPS已达到8万,此时达到压测工具的***承受能力,后端应用健康状况依然非常好。该测试结果通过了用友公司承担的国家核高基项目组委托的外部测试专家的认可。
iUAP企业互联网云运维平台支持Native模式和Docker模式部署应用。其中Docker有多种不同的网络模型可选(常用的是bridge和host),经过测试报告可以看出:这三种模式的性能有所不同,然而性能高的模式可能带来的管理问题越复杂。
Docker host网络模型和Native(原生Tomcat)方式,性能几乎无差异,Native方式性能略优秀;Docker bridge网络模型,性能最差,但是以每秒通过的平均事务数来衡量,相比Docker host模型损耗不大,大约在1%左右。
Native模式
Docker host模式
Docker bridge模式
在实际的业务场景中,客户可以选择适合自己的模式。如果是web应用,建议大家选择Docker的bridge模式,这种方式的管理成本***,使用也最方便。如果对性能有一定要求, 建议选择Docker的host模式,但是需要做好端口管理,以防冲突后,服务不能启动。如果对性能有***的要求,如通信的场景,可以选择Native模式,一样可以进行扩容缩容和服务自愈(但是需要处理好环境冲突、端口管理等问题)。
iUAP企业互联网云运维平台使用基于Docker为代表的容器技术,结合容器管理技术,为开发者和企业提供业务快速上线、持续集成、弹性伸缩、日志管理、性能分析、运维监控等功能。能够帮助开发和运维人员彻底释放重复运维和各种线上故障带来的工作负担。
由于基于Docker“一次构建、到处运行”的理念以及其基于镜像的机制,iUAP企业互联网云运维平台能够保证开发、测试、生产环境的使用一致性,大大降低了应用测试、上线和升级的时间成本。
iUAP企业互联网云运维平台为企业带来以下价值:
***,快速搭建高可用系统。为企业节省运维时间成本,快速搭建可用于生产环境的互联网运行平台;
第二,服务自愈,应用管理从此高枕无忧。通过服务健康检测机制,能够发现挂起的应用,并自动重启,保证系统的高可用性和高并发处理能力;
第三,系统不再是黑盒,运行情况一目了然。收集日志进行报表展现,帮助企业了解业务细节,并及时进行容量规划。通过深度性能分析,在线还原业务代码运行逻辑,帮助开发者有针对性调优。