软件即服务 (SaaS) 应用程序的兴起和容器的广泛采用,使得人们对更高效开发方法的需求与日俱增。作为回应,应用程序本身也在发生变化——从擅长处理多项任务的单体架构,演变为针对具体功能设计的分布式独立服务集合。
微服务的一些主要优势包括:
1.更高的可靠性
每项微服务都在更大的应用程序中执行单一逻辑功能。因此,开发人员提供的更新仅隔离在需要变更的服务中。应用程序内的微服务之间通常有一个定义明确的接口。只要接口保持不变,即使实时进行更改,应用程序也能保持正常运行。
2.更短的开发时间
各服务为每个组件提供定义完善的功能集,可围绕特定需求构建。这支持轻松跨多支团队横向扩展开发工作,也支持更加轻松地快速更新或添加新功能。
3.增强的应用程序功能
开发团队能够创建单个组件,可在多种上下文中重复使用。他们可以创建新应用程序,以适应更广泛的用户,并提供更深入的功能,而无需重复劳动。
4.松散耦合的资源
每个微服务都可以为多个应用程序和接口提供服务,从而减少了开发人员需要定制的实现数量。独立设计还意味着,对一项微服务的更改不会影响另一项微服务。但这也意味着,在客户端和服务器端管理请求时,需要进行负载均衡。
微服务使开发人员能够专注于其应用程序的特定功能,避免因将多个应用程序结合在一起而引发的开发问题。通过将应用程序分解为易于管理的部分,开发人员即可利用新的软件开发技术(例如自动测试),比以往更快地交付高质量的结果。
微服务也更易于维护,因为关联的服务都是独立的。所有依赖服务都在各自的平台上运行,具有单独的管理工具,从而提供更高的一致性。相较于将相关组件嵌入到更大的单体应用程序中,它还使管理相关组件的整个集合更轻松。