微服务如何才能落地,从三个关键能力说起

本文作者:尚度元科技 CTO,前 ThoughtWorks 首席咨询师,王磊

版权申明:本文由王磊老师授权 StuQ 转载,如需转载请联系作者本人。

微服务架构,虽然诞生的时间不长,但其在各种演讲、文章、书籍上所出现的频率已经让很多人意识到它对软件架构领域带来的影响。经过 2015 年的快速普及,微服务的实施注定不是一个简单的过程,不是一蹴而就的过程,微服务的优势被越来越多的组织和企业所认可。未来的一两年,将会有更多的企业将目光聚焦在如何实践并有效将落地这个核心问题上。本文将探讨微服务实施的三种策略以及落地时企业必备的三个能力。

通常,微服务的实施有如下几种策略:

1. 新产品微服务化

对于新产品构建而言,使用微服务构建存在一定优势:

不必担心同现有遗留系统的整合,在实施上能更加灵活,便于尝试业界先进的开发框架和工具 从零开始构建新产品,易于保持代码结构清晰及制定团队规范。 不过,新产品微服务化也存在一定风险。通常新产品都处于快速试错阶段,需求在不断的变化中,微服务的引入必然会增加额外的开发、运维以及交付成本。

2. 遗留系统的新功能微服务化

对于遗留系统而言,可以将新功能的上线作为微服务化实施的尝试。这类方式实施的优势在于虽然是遗留系统,但新功能部分相对独立,上下文清晰,实施时比较灵活,也便于尝试业界先进的开发框架和工具。不过,这类方式的风险在于:

同现有遗留系统的集成存在风险,尤其是数据部分的访问与共享。 需要与遗留系统共存并为用户提供价值,因此需要构建代理机制,处理不同的请求。

3. 遗留系统的旧功能微服务化

对于遗留系统而言,也可以选择将现有的功能改造成微服务。不过这类方式的风险较大,主要考虑:

如何选择合适的部分进行微服务化。这类部分通常包括但不限于功能独立的模块、频繁使用的模块以及占用特殊资源的模块等。

如何保证改造过程中不对现有的功能造成破坏。对于某些时间较长的遗留系统,通常功能交错复杂,人员更换频繁,在改造的过程中难免需要同遗留系统共存为用户提供价值,因此需要构建代理机制,处理不同的请求。

微服务的概念看似浅显易懂,但实际上却涉及架构演进,领域建模、持续交付,虚拟化以及 DevOps 等多个维度的方法论与实践。在微服务的实践过程中,如下几点也将成为企业实施微服务架构的必备能力:

1. 持续交付是内功

十年以前,软件在一年中的交付次数屈指可数。

过去的十年间,交付的过程一直被不断地优化和改进。从早期的 RUP 模型、敏捷、持续集成,再到近几年的 DevOps,力求能更有效地降低交付过程所耗费的成本并提高效率,从而尽早实现价值。持续交付的提出,极大的优化了软件交付的流程,帮助企业更有效的验证业务想法,并通过快速迭代的方式持续为用户提供价值。

对于构建微服务而言,持续交付机制建立的顺畅与否,直接决定了微服务构架构实施的成本与效率,稳固的持续交付体系能让微服务架构的实施事半功倍。

持续交付和微服务只有组合在一起才能展现出相互的价值。

2. 演进式架构是核心

架构是 IT 领域经久不衰的话题之一。架构的本质是对业务、技术、团队以及可维护性等多重因素下做的平衡。纵览 IT 架构发展的历史长河,存在诸多行之有效的模式与方法,譬如企业架构模式、设计模式及近几年的领域驱动设计,帮助 IT 团队完成架构设计。

在如今市场激烈竞争的环境下,业务快速变化,架构也需要不断的变化。没有完美的架构,只有恰当的平衡。

对于微服务架构的实施过程,很多朋友纠结如何定义 “完美的” 服务划分,其实架构的演进过程中,必然会经历服务的定义、拆分、合并以及组合,微服务实施的过程也是一个架构不断动态平衡的过程,不必太纠结初期多么 "完美"。业务在变,技术在变,架构也在变,拥抱变化,完善内部的微服务生态圈(开发流程、交付流程、自动化机制、部署以及监控),寻找演进式架构的动态平衡才是核心。

3. DevOps 是动力

运维能力是企业实施微服务的关键动力。相比于传统架构,微服务的落地增加了大量的运维工作。随着服务的增多,有更多的服务需要部署、监控。另外,随着服务的增多,出错的可能性大大增加,出错时如何快速恢复也是件很复杂的事。因此,在实施微服务的过程中,运维能力直接决定了实施的效率和产出。 另外,在加强运维能力本身的同时,微服务的实施还需要很强的 DevOps 文化。如果开发团队和运维团队之间无法密切协作,那实施过程将会存在很大的沟通成本。因此,运维能力和 DevOps 是企业实施微服务的关键动力。

除此之外,微服务带来的不仅仅是技术上的变革,也带来企业组织结构上的变革。传统的按照技能划分部门的方式,将越来越难以适应当今业务的激烈竞争和市场的快速变化。通过将大部门基于业务、基于服务,组织成适当的的小团队,不仅能有效提高成员的主人翁精神,也容易在实现层面给予团队充分的自由度,这也是目前硅谷诸多顶尖 IT 公司青睐的方式。

综上所述,微服务的实施注定不是一蹴而就的,是需要企业潜心积累、循序渐进的过程。企业需要根据不同的业务,不同的发展阶段,选择不同的实施策略,并在实施的过程中不断提高关键能力,并构建企业内部的微服务生态系统,才能享受到微服务架构带来的巨大价值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 本文是GitChat《为什么微服务实施那么难?如何高效推进微服务架构演进》的下半部分。标题和部分内容已做修改。 微...
    顾宇阅读 5,523评论 0 35
  • 转载本文需注明出处:微信公众号EAWorld,违者必究。 微服务架构现在是谈到企业应用架构时必聊的话题,微服务之所...
    72a1f772fe47阅读 3,474评论 0 38
  • 《微服务进展缓慢的5个难点》中描述了实施微服务常见的主要阻碍。本文针对前文提到的5个难点提出了7个步骤。每个步骤分...
    ThoughtWorks阅读 1,521评论 0 11
  • “微服务架构”这一术语在前几年横空出世,用于描述这样一种特定的软件设计方法,即以若干组可独立部署的服务的方式进行软...
    ThoughtWorks阅读 16,889评论 1 71
  • 作者:禚娴静 这两年,微服务架构火了。在国内,从消费级互联网应用,到企业级应用;从金融领域,到电信领域;从新开发系...
    ThoughtWorks阅读 1,118评论 0 8