Martin Fowler竟然不是第一个提出微服务架构概念的?

王磊:前ThoughtWorks首席咨询师,《微服务架构与实践》作者,翻译有《DevOps Handbook》,国内较早倡导和实践微服务的先行者,有丰富的微服务/DevOps/持续交付实战经验

微服务架构那点事

相信很多朋友了解微服务架构都是从Martin Fowler的那篇文章开始。而实际上,Martin却并不是最早谈及微服务架构的,本篇文章就和你聊聊微服务架构定义的那点事。

最易懂的版本

Martin Fowler的这篇文章《Microservices》通俗易懂的讲解了什么是微服务架构.

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。

我在2015年4月QCon的《基于微服务架构,改造企业遗留系统的实践》演讲上,将这四个特性定义抽象为“小、独、轻、松”。最后一个字之所以定义成松,是为了读起来能朗朗上口。确切的讲,松所代表的含义其实是服务具备独立的流水线,能够被独立的构建,并且被独立的部署。实际上,Martin Fowler并不是最早提出微服务架构概念的人。

最早期的版本

最早提出微服务架构概念的,是Fred George。他一位非常传奇的人物,从业40多年,接触过70+编程语言,就职过IBM、TW等多家公司,并在社区和大会上做过很多分享。后来成立独立的咨询公司,为金融、电信、保险、航空等多个行业提供敏捷、持续交付、DevOps等转型服务,他也是最早实践XP、Scrum、和看板的人之一.

在2012年3月的Agile India上,Fred George分享了题为

Micro (u)Services Architecture -small, short lived services rather than SOA.

的演讲。在演讲中,他描述了从2005~2009年期间,他和所在的团队是如何将100万行的传统J2EE程序,通过解耦、自动化验证等实践,逐渐分解成20多个5K行代码的小服务,又分解成200多个500行代码的服务的过程,而其中,也大谈了基于Kafka的消息解耦服务间依赖。我认为,这是对微服务定义的最早版本了。

最简洁的版本

Adrain Cockcroft,Netflix的云架构师,主导了Netflix从2009到2016年服务化拆分、从数据中心迁移到云平台、以及组织、流程、工具等的演进等.

他对微服务的定义是:

Loosely coupled service oriented architecture with bounded contexts.

其中两个核心点Loosely coupled 和 Bounded context。Loosely coupled表明,服务之间是松耦合的。什么叫松耦合?就是指服务能够被独立更新。如果不能被独立更新,那证明服务就不是松耦合的。Bounded context,源于DDD(领域驱动设计),表明对于服务而言,它的业务是独立的,我们不需要知道它的依赖者,根据接口就可以更新服务的代码。我认为,这是对微服务定义的最简洁版本了。

最与时俱进的版本

第三个版本,来自Neal Ford,他是TW的资深技术专家,《卓有成效的程序员》作者,也是TW技术雷达的发起者和维护者之一。

他对微服务架构的定义是

“Microservices are the first post DevOps revolution architecture.

这是第一次将微服务和DevOps紧密关联起来的版本。

实际上,DevOps作为一场开发与运维手拉手,心连心的运动,正在席卷着整个社区。DevOps所涵盖的一系列文化、实践以及自动化的理念(CALMS),是微服务演进过程中必不可少的先决条件。可以说,在传统的运维模式下,有效实现微服务架构几乎是不可能的,因为微服务的实施需要自动化基础设施、自动化部署、自动化验证、以及利用有效的工具完成运维、监控、告警等。而只有将DevOps与微服务紧密的结合起来,才能达到事半功倍的效果。

总结

如上就是我认为微服务演进过程中,最具有代表性的几个定义,当然,除了这3位大师,还有很多其他大师,譬如Sam Newman,James Lewis等发表的见解。

感兴趣的朋友可以继续挖掘一下,了解微服务架构演进过程中,大师们是如何看待微服务架构的。

来源:中生代技术

原文链接

时间: 2024-08-04 03:01:14

Martin Fowler竟然不是第一个提出微服务架构概念的?的相关文章

BaaS云架构核心模式之Serverless架构 - 用服务代替服务器(Martin Fowler)

Martin Fowler最近非常推崇的serverless架构模式,是BaaS云架构实现的核心架构模式. Martin Fowler在2016.6.17号发表了一篇博客: <Serverless Architectures>,引起业界广泛关注: 在这篇博客里,他介绍了serverless架构,以及FaaS,Microservice,Docker等流行的架构和概念,描述了Amazon AWS lambda的价值, 进一步将这种云时代的架构清晰的展现在大家的视野里. 本文很多内容来自这篇博客,让

微服务(Microservices)—Martin Flower【翻译】【转载】

本文转载自:http://www.cnblogs.com/liuning8023/p/4493156.html ---------------------------------------------------------------------------- 原文是 Martin Flower 于 2014 年 3 月 25 日写的<Microservices>. 本文内容 微服务 微服务风格的特性 组件化(Componentization )与服务(Services) 围绕业务功能的组

利用 NGINX 最大化 Python 性能,第一部分:Web 服务和缓存

[编者按]本文主要介绍 nginx 的主要功能以及如何通过 NGINX 优化 Python 应用性能.本文系国内 ITOM 管理平台 OneAPM 编译呈现. Python 的著名之处在于使用简单方便,软件开发简单,而且据说运行性能优于其它脚本语言.(虽然最新版本的 PHP.PHP 7 可能会与它展开激烈竞争.) 所有人都希望自己的网站和应用程序运行得更快一些.但是,每个网站在流量增长或骤然出现流量峰值时都很容易发生性能问题.甚至宕机(这一般会在服务器最繁忙的时候发生).此外在运行期间,无论是流

Spring Boot与Docker(三):构建你的第一个微服务和相关容器以及容器的连接

本文讲的是Spring Boot与Docker(三):构建你的第一个微服务和相关容器以及容器的连接,[编者的话]本篇是<使用Spring Boot和Docker构建微服务架构>系列的第三篇,本篇我们将会准备开始构建一个员工对象微服务.原文作者为3Pillar环球旗下美国Adbanced技术集团的总监Dan Greene,Dan有十八年的软件设计和开发经验,包括在电子商务.B2B集成.空间分析.SOA架构.大数据以及云计算等领域的软件产品架构经验,他是AWS认证解决方案架构师,在3Pillar之

Martin Fowler对将page对象用于Web测试的基本经验法则

本文源自Martin Fowler,文章最初由ThoughtWorks工程师黄博文翻译在自己的博客上,并由译者本人推荐至InfoQ中文站博文共赏专栏.本译文在Martin Fowler本人的许可下,由InfoQ中文站进行修订后,在这里给大家分享. 当你在为Web页面编写测试时,你需要操作该Web页面上的元素来点击链接或验证显示的内容.然而,如果你在测试代码中直接操作HTML元素,那么你的代码是及其脆弱的,因为UI会经常变动.一个page对象可以封装一个HTML页面或部分页面,你可以通过提供的应用

Martin Fowler谈如何理解事件驱动

去年年底,ThoughtWorks内部开展了一个研讨会,讨论"事件驱动"应用程序的性质.在过去的几年里,他们建立了许多基于事件的系统,有被称赞,也有被吐槽.ThoughtWorks的北美办公室组织了一次峰会,来自世界各地的ThoughtWorks高级开发人员在会上分享了他们的想法. 峰会的最大结果是得出这样的一个结论:当人们谈论"事件"时,他们实际上意味着一些完全不同的事情. 所以Martin Fowler花了很多时间试图从中挑出一些有用的模式, 本文就是对这些内容

5G核心网基础架构确认,采用中国26家企业联合提出的SBA架构

2017年6月6日,国际移动通信标准组织3GPP在近日举办的专业会议上正式确认,5G核心网将采用中国移动牵头联合26家公司提出的SBA架构(Service-Based architecture/基于服务的网络架构),作为统一的基础架构. 这是以服务为基础的架构,可以通过下图看出,service占据了重要的位置,他们的架构模式往往是以服务为第一重要的架构组件,来实现平台业务或者非业务相关的功能. 一位业内人士表示,服务是资源拥有者,这里的资源可以是硬件,比如虚拟主机,也可以是算法,比如在线的人脸识

互联网金融的三个本质 中金副总经理谢平最早提出互联网金融这个概念

中金副总经理谢平最早提出互联网金融这个概念.从2013年起,互联网金融行业开始兴起.通过梳理学术界的认知和自己理解,互联网金融特点可以从三个方面来概括. 第一个本质是"改变数据渠道" 我们之前通过银行网点去开户购买金银产品,而现在,我们先去搜索贷款.理财产品,通过官网或者旗舰店等渠道购买.这个原因显而易见,现代人生活节奏太快,去银行成本较高.尽管电商只占到大零售行业的8%,但参照淘宝或者京东这样的公司,其实规模仍然很大.并且由于金融产品后端不需要物流,未来会有更多的金融行为发生在线上,

天猫总裁乔峰在天猫战略发布会中提出品牌时尚化概念

摘要: 4月28日消息,天猫总裁乔峰近日在天猫战略发布会中提出品牌时尚化概念.421天猫新时尚作为最重要的夏装上新营销活动彻底颠覆了以往的展示逻辑和整体布局:国际品牌和一线品牌几 4月28日消息,天猫总裁乔峰近日在天猫战略发布会中提出"品牌时尚化"概念.421天猫新时尚作为最重要的夏装上新营销活动彻底颠覆了以往的展示逻辑和整体布局:国际品牌和一线品牌几乎占据了会场页面前面几屏的所有资源位. "大规模引入国际品牌"的行动显示出天猫希望提高一二线城市渗透率和打造电商时尚