在软件行业,微服务架构是一种重要的发展趋势。这一趋势,不仅仅是对企业内的IT信息系统建设,甚至在企业向数字化转型方面,都有着深远的影响。微服务架构与传统的单体软件架构代表着IT产业处理软件开发方式的一个根本性转变,Netflix、Google、亚马逊等组织均已成功采用这一转变。但是,与传统的单体架构相比,微服务的优势是什么呢?
1) 微服务架构vs单体架构
首先,让我们来看下微服务架构和单体架构。单体应用是按单个应用程序单元来构建的。一般来说,企业内的应用程序由三部分组成:数据库(通常由关系数据库管理系统中的许多表组成),客户端用户界面(由HTML页面和/或在浏览器中运行的JavaScript组成)以及服务器端应用程序。服务器端应用程序可以处理HTTP请求,执行某些特定域的逻辑,从数据库中检索和更新数据,以及填充要发送到浏览器的HTML视图。它是一个整体——实现单个逻辑的可执行文件。如果想要对系统进行任何更改,开发人员必须构建和部署服务器端应用程序的更新版本。
相比之下,微服务通过面向业务的API接口来表达其功能。它们封装了核心的业务功能,是业务的宝贵资产。服务的实现细节(可能涉及与数据系统的集成)被完全隐藏,因为API是纯粹使用业务术语来定义的。作为业务的宝贵资产,服务可以较好地适应于多个不同的业务场景中。在业务需要的时候,同一个服务可以在多个业务流程中重用,也可以在不同的业务渠道中使用。采用松耦