洞见-微服务文集(二)

ThoughtWorks中国
【认识微服务】 微服务 作者:Martin Fowler & James Lewis 译者:伍斌 微服务 有关这个新的技术架构术语的定义 “微服务架构”这一术语在前几年横空出世,用于描述这样一种特定的软件设计方法,即以若干组可独立部署的服务的方式进行软件应用系统的设计。尽管这种架构风格尚无明确的定义,但其在下述方面还是存在一定的共性,即围绕业务功能的组织、自动化部署、端点智能、以及在编程语言和数据方面进行去中心化的控制。 图片 本文目录 微服务架构的九大特性 • 特性一:“组件化”与“多服务” • 特性二:围绕“业务功能”组织团队 • 特性三:“做产品”而不是“做项目” • 特性四:“智能端点”与“傻瓜管道” • 特性五:“去中心化”地治理技术 • 特性六:“去中心化”地管理数据 • 特性七:“基础设施”自动化 • 特性八:“容错”设计 • 特性九:“演进式”设计 未来的方向是“微服务”吗? 图片 “微服务”——这是在“软件架构”这条熙熙攘攘的大街上出现的又一个新词语。我们很容易对它不屑一顾,但是这个小小的术语却描述了一种引人入胜的软件系统风格。在近几年中,我们越来越多的看到许多项目使用了这种风格,而且就目前来说结果都是不错的,以至于许多ThoughtWorker都把它看作构建企业应用系统的默认风格。然而,很不幸的是,我们找不到有关它的概要信息,即什么是微服务风格,以及如何设计微服务风格的架构。 简而言之,微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。对这些微服务,我们仅做最低限度的集中管理。 在开始介绍微服务风…