公司要转型微服务,真的有必要么?

今天参加了DevOps的国际峰会,一整天听了两个专题,分别是和微服务相关的,以及和kubernetes相关的,现将听后的一些心得记录下来,分享给大家。

文/谦益

这篇主要是给大家分享微服务相关的。

现在,在互联网圈子里,不知道何时微服务这个概念已经深入到了我们圈内的各个角落,似乎如果不赶上这个潮流,公司的产品就将被淘汰了。

这个专场开场时,老师给我们说了个他的一段经历。

一天他邻居问他:“你的微服务课程我可以去听么?”
老师很是惊讶,说:“你做微商的怎么这么好学呀,你知道啥是微服务么?”
邻居说:“微服务不是为微商服务的么?”

当然这略带有点喜剧性了,不过对于微服务,真的是和我们理解的那样么?我在听这场分享之前我一直认为,微服务不就是把业务按照功能模块切割,让他独立出来么?

听完这场分享,对微服务的定义,有了全新的认识。


01 微服务不是简单的模块切割

目前业内对微服务存在的误解有很多,这里ThoughtWorks的架构师和坚老师给我们列出来几点:

  • 构建HTTP服务,实用Docker容器运行它,并且用Kubernets做集群管理,就是微服务
  • 使用API Gateway和服务发现以及服务registry,这就是微服务
  • 使用Spring Boot框架构建http服务,并使用Netflix OSS,这就是微服务
  • 使用Azure Service Fabric 构建并且运行应用程序,这就是微服务
  • 构建轻量级的RESTful API,这就是微服务
  • 有很多框架声称是微服务框架。使用这些框架的任意一种来构建应用程序,这就是微服务

看完这些,我就有点蒙圈了,那到底怎样的才算微服务呢?下面是老师对微服务的一个概括:

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

同时和坚老师给我们分享了微服务具有以下几点特点:

  • 通过服务进行组件化
  • 围绕业务能力组织
  • 做产品而不是做项目
  • 只能端点与傻瓜管道
  • 去中心化地治理技术
  • 去中心化地管理数据
  • 基础设施自动化
  • 容错设计
  • 演进式设计

我这里的理解是微服务其实是围绕业务能力组织进行划分的一整套服务集群,但是该怎么划分呢?他的粒度是什么呢?


02 别一不小心把微服务切成了小的单体

假设有一天你的系统已经进行了“微服务”改造,由于你的业务发展,新的需求如潮水般涌来,渐渐的发现某些“微服务”开始慢慢的膨胀起来。

发现膨胀的“微服务”有一部分业务又需要拆分了,而且这个服务内部还高度耦合,这不就又变成了,拆分之前的服务了么?

你拆分成的不是微服务,而是一个小的单体。

关于怎么拆分微服务,和坚老师给我推荐了一个叫DDD服务设计的思想:

要求我们从业务视角去分离复杂度,最终目标都是为最求高响应力。

让业务架构和系统架构形成绑定关系,从而当我们去响应业务变化调整业务架构时,系统架构的改变是随之而发的。

虽然短短的两句话,但是要理解做好,真不是那么容易,还待深入学习。

目前微服务只存在一个概念性的阶段,要想将我们现有的服务切分成微服务,按照什么标准进行切分,不同的行业,不同的业务场景,将是不同的,这是一个难题?

当我们辛辛苦苦的把业务切成了一个一个小的服务在跑时,如果哪天业务发展,发现这两个服务还是和在一起跑比较好,这时,你将面临的不是单单的把两个代码合在一起这么简单。

代码上的冲突,修改上下游的依赖,部署架构都将是一个挑战。

微服务的合并,比拆分更难。


03 一个完整的微服务离不开完善的自动化运维

当我们的项目被拆分成了微服务在线上跑了,我们的开发看到的将不再是一整个业务的代码,而是一个一个小的模块服务。

我们的开发将面临:我们得把整体的所有服务了解个遍,或者相关的服务模块了解完。

如果不能了解完,将会出现:在版本迭代时,我们修改的代码,能保证这个服务上没问题,不能保证上线后对其他的业务不会有影响。

对于这个问题,微软的MVP陈锋逸老师提出了一个建议,借助一些代码即架构的工具来弥补这块。

微服务落地,我们还将面临,我们的服务散落在各个地方,运维的同事将怎么进行监控,怎么知道此时此刻哪个服务挂了,哪个服务超载了,超载时我们怎么进行扩容,这都是我们要解决的问题。

还有,如果我们辛辛苦苦做成了微服务,在版本发布时,怎么保证线上所有容器的版本一直性,也是要解决的问题。

这一系列的问题就涉及到可持续性交付这块了,从开发提交代码,到测试,到构建,再到测试用例的覆盖,最后到生产这一连贯的工作,怎么让他们自动化?如果做不到自动化,那投入的成本将可能是传统的架构的N倍。


04 结束语

我不是一个架构师,只是一个小小的开发者,所有行文都是按照一个开发者的角度结合今天老师讲的所写,所以可能有诸多不恰当的措词,欢迎指正。

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