Nowadays IoT applications consist of a collection of loosely coupled modules, namely microservices, that can be managed and placed in a heterogeneous environment consisting of private and public resources. It follows that distributing the application logic introduces new challenges in guaranteeing performance and reducing costs. However, most existing solutions are focused on reducing pay-per-use costs without considering a microservice-based architecture. We propose a cost-effective workload allocation for microservice-based applications. We model the problem as an integer programming problem and we formulate an efficient and near-optimal heuristic solution given the NP-hardness of the original problem. Numerical results demonstrate the good performance of the proposed heuristic in terms of cost reduction and performance with respect to optimal and state-of-the-art solutions. Moreover, an evaluation conducted in a Kubernetes cluster running in an OpenStack ecosystem confirms the feasibility and the validity of the proposed solution.
翻译:目前,IoT应用程序包括一系列松散的模块,即微观服务,可以管理,并置于由私人和公共资源组成的不同环境中,因此,应用逻辑的分布在保证绩效和降低成本方面带来了新的挑战;然而,大多数现有解决方案侧重于降低每用成本,而没有考虑以微观服务为基础的结构;我们建议对基于微观服务的应用进行具有成本效益的工作量分配;我们将这一问题作为一个整数的编程问题来模拟,并且鉴于最初的问题的NP-硬性,我们制定了一个高效和近乎最佳的超常解决方案;数字结果表明,在最佳和最新解决方案方面,拟议的超常性在降低成本和绩效方面表现良好;此外,在OpenStack生态系统运行的Kubernetes集群中进行的评估证实了拟议解决方案的可行性和有效性。