国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:向麒麟,彭鑫,赤坂居纱美,李博文
单位:向麒麟,复旦大学 计算机科学技术学院, 上海 201203;上海市数据科学重点实验室(复旦大学), 上海 20120311,彭鑫,复旦大学 计算机科学技术学院, 上海 201203;上海市数据科学重点实验室(复旦大学), 上海 20120302,赤坂居纱美,复旦大学 计算机科学技术学院, 上海 201203;上海市数据科学重点实验室(复旦大学), 上海 20120303,李博文,复旦大学 计算机科学技术学院, 上海 201203;上海市数据科学重点实验室(复旦大学), 上海 20120304
关键词:单体应用;无服务器架构;函数即服务(FaaS);轨迹分析;动态分析;静态分析;冷启动
基金:国家重点研发计划(2018YFB1004803)
作为Serverless架构的一种典型形态,函数即服务(function as a service,FaaS)架构将业务抽象为细粒度的函数,并且提供弹性的自动伸缩等自动化运维功能,能够大幅降低运维成本.当前,许多在线服务系统中的一些高并发、高可用、灵活多变的业务(如支付、红包等)都已经迁移到了FaaS平台上,但是大量传统单体应用还是难以利用FaaS架构的优势.针对这一问题,提出了一种基于动态和静态分析的单体应用FaaS改造方法.该方法针对指定的单体应用API,通过动态分析和静态分析相结合的方式识别并剥离其实现代码和依赖,然后按照函数模板完成代码重构.针对函数在高并发场景下的冷启动问题,该方法利用基于IO多路复用的主从多线程Reactor模型优化了函数模板,提高了单个函数实例的并发处理能力.基于该方法实现了针对Java语言的原型工具Codext,在开源Serverless平台OpenFaaS上,面向4个开源单体系统进行了实验验证.
来源:2022年第11期
《软件学报》期刊编辑部