Serverless computing, particularly Function-as-a-Service (FaaS), has revolutionized cloud computing by abstracting infrastructure management and enabling dynamic resource allocation. This paper examines the performance and compatibility of OpenFaaS, an open-source serverless platform, when deployed on various Kubernetes distributions, including Kubeadm, K3s, MicroK8s, and K0s. Moreover, leveraging the CloudLab infrastructure, this study examines the impact of Python, Go, and Node.js programming languages on the performance of Kubernetes-enabled OpenFaaS, specifically when these languages are used to develop functions deployed on the platform. The performance is evaluated and analyzed under various levels of concurrent invocations using several usage-level metrics, such as throughput and CPU usage, as well as responsiveness metrics, such as delay. According to our findings, Go consistently outperforms Python and Node.js in terms of throughput and CPU usage, making it the ideal runtime for serverless applications. Among the Kubernetes distributions, K3s and Kubeadm exhibit superior performance, with Kubeadm maintaining low latency and efficient CPU usage, and K3s demonstrating high throughput. This study provides valuable insights into optimizing the Kubernetes-enabled OpenFaaS platform, highlighting the strengths and trade-offs of different Kubernetes distributions and language runtimes.
翻译:无服务器计算,特别是函数即服务(FaaS),通过抽象基础设施管理并实现动态资源分配,彻底革新了云计算。本文研究了开源无服务器平台OpenFaaS在多种Kubernetes发行版(包括Kubeadm、K3s、MicroK8s和K0s)上部署时的性能与兼容性。此外,借助CloudLab基础设施,本研究考察了Python、Go和Node.js编程语言对基于Kubernetes的OpenFaaS性能的影响,具体聚焦于这些语言用于开发部署在该平台上的函数时的表现。我们采用多种使用级指标(如吞吐量和CPU使用率)和响应性指标(如延迟),在不同并发调用级别下对性能进行了评估与分析。研究结果表明,Go在吞吐量和CPU使用率方面始终优于Python和Node.js,使其成为无服务器应用的理想运行时。在Kubernetes发行版中,K3s和Kubeadm展现了卓越性能:Kubeadm保持低延迟和高效CPU使用率,而K3s则表现出高吞吐量。本研究为优化基于Kubernetes的OpenFaaS平台提供了宝贵见解,揭示了不同Kubernetes发行版与语言运行时的优势及权衡取舍。