论文标题

基于微服务的应用程序的开发框架:评估和比较

Development Frameworks for Microservice-based Applications: Evaluation and Comparison

论文作者

Dinh-Tuan, Hai, Mora-Martinez, Maria, Beierle, Felix, Garzon, Sandro Rodriguez

论文摘要

微服务的建筑风格最近引起了学术界和行业的关注,这是一种新颖的设计,开发和部署云本地应用的方式。这个概念鼓励将整体分解为多个独立部署的单元。典型的基于微服务的应用程序由两种服务类型组成:功能服务,提供核心业务逻辑和基础架构服务,这些服务为微服务生态系统提供了基本功能。为了提高开发人员的生产率,已经开发了许多软件框架来提供这些可重复使用的基础架构服务,从而使程序员可以专注于以任意方式实施微服务。在这项工作中,我们使用四个开源框架来开发基于云的应用程序,以比较和评估其可用性和可实用性。尽管所有选定的框架一般都会促进异步微服务设计,但每个实施服务的方式都存在差异。这会导致互操作性问题,例如消息主题命名约定。此外,一个关键发现是基于JVM的服务的较长启动时间,可能会降低应用程序的弹性和便携性。其他一些优势直接来自编程语言,例如生成本机二进制可执行文件的能力,这会导致非常小而紧凑的docker映像(与其他语言相比,最大78 \%\%)。

The microservice architectural style has gained much attention from both academia and industry recently as a novel way to design, develop, and deploy cloud-native applications. This concept encourages the decomposition of a monolith into multiple independently deployable units. A typical microservices-based application is formed of two service types: functional services, which provide the core business logic, and infrastructure services, which provide essential functionalities for a microservices ecosystem. To improve developers' productivity, many software frameworks have been developed to provide those reusable infrastructure services, allowing programmers to focus on implementing microservices in arbitrary ways. In this work, we made use of four open source frameworks to develop a cloud-based application in order to compare and evaluate their usability and practicability. While all selected frameworks promote asynchronous microservice design in general, there are differences in the ways each implements services. This leads to interoperability issues, such as message topic naming convention. Additionally, a key finding is the long startup times of JVM-based services that might reduce application's resiliency and portability. Some other advantages come directly from the programming language, such as the ability of Go to generate native binary executables, which results in very small and compact Docker images (up to 78\% smaller compared to other languages).

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源