微服务思考(02):微服务实施前有哪些问题?

一、前言

前一篇文章简朴剖析了微服务的利益,以及会带来的问题。

遇到问题并不恐怖,恐怖的是我们不去面临它,不去想办法解决它,逃避问题是不能能有任何提高。以是努力想办法应对问题并解决问题,才气不停的提高。

前面讲了,微服务一样平常都是由单体演进而来,很少有营业从0就最先举行微服务开发。若是能从0就最先用微服务开发,确实是一件很好的事情,条件是你确实思量清晰了用微服务开发适合当前的营业以及营业的生长需求。

那么问题来了,企业什么时刻引入微服务呢?

二、企业什么时刻引入微服务?

引入缘故原由

单体应用无法知足营业增进的需求,营业的交付、营业的可靠性、稳固性要求,随着时间推移问题会越来越多。– 也就是前面遇到的一些问题

不外也有人,不是从本公司营业生长,开发成本,开发效率来思量问题,而是什么开发大会上看到许多公司微服务的演讲,或者听说许多公司在用微服务,从这些方面来思量,也就是随大流,这种思索方式显然不是准确思索方式。不要为了微服务而微服务。接纳微服务收益一定要大于单体应用,要能解决遇到的问题。

从单体架构升级到微服务架构,一定希望提高研发效率,缩短工期,加速产物交付速率。

那他们在详细生产效率上有什么区别?

凭据马丁·福勒(Martin Fowler)的这篇文章,展现了生产率和复杂度的关系。
在复杂度较小时,单体应用的生产率更高,微服务架构反而降低了生产率。然则,当复杂度到了一定规模,无论接纳单体应用照样微服务架构,都市降低系统的生产率。区别是:单体应用生产率最先急剧下降,而微服务架构则能缓解生产率下降的水平。如下图:
微服务思考(02):微服务实施前有哪些问题?

x 轴是系统复杂度,y 轴是开发的生产力

  • 绿色示意单体应用
  • 蓝色示意微服务架构

单体应用和微服务有一个相交的点,这个点是单体应用生产率急剧下降,微服务平缓下降的交叉点,他们的生产效率最先泛起差别。

这个点就是把单体应用切换到微服务的时间点。

但问题是,这个时间点,文章并没有详细说明什么时刻会泛起,怎么权衡这个时间点。
以是只能各个公司详细问题详细剖析,手艺领导者要思量判断这个时间点。这也是思量手艺领导力的时刻。不外有些思量要素可以参考:

  • 营业交付
    • 营业需求开发是否经常延迟
    • 产物交付是否能跟上营业生长
  • 研发质量
    • 代码是否由于修改而经常泛起bug
    • 代码臃肿重大
  • 手艺力量
    • 有手艺,有意愿
    • 团队人数

等等一些思量因素,在加上前一篇单体应用泛起的一些问题。

在思量清晰之后,决议引入微服务,那么,又会遇到什么问题?

JVM 学习笔记(五)

三、组织架构若何转变?

康威定律

康威定律 (康威规则 , Conway’s Law) 是马尔文·康威1967年提出的:
设计系统的架构受制于发生这些设计的组织的相同结构。

康威定律告诉我们,若是我们实行了微服务,那么组织架构的更改也要随着实行微服务架构而做出响应的调整。这样才有可能顺应微服务的生长。

单体架构和微服务架构

先看看传统单体架构和微服务架构,如下图:
微服务思考(02):微服务实施前有哪些问题?

图片来自:https://martinfowler.com/articles/microservices.html

左半部门的单体架构图:
单体应用将所有功效放到一个历程中
扩展:通过将整个应用复制到多态服务器实现扩展

右半部门的微服务架构图:
微服务架构将功效星散,放到多个差别的历程中
扩展:通过将差别的服务漫衍于差别的服务器上,并按需要复制方式举行扩展

组织架构

  • 单体应用的组织架构
    微服务思考(02):微服务实施前有哪些问题?

图片来自:https://martinfowler.com/articles/microservices.html

它是一个整体式的应用团队,每个团队根据职能来举行划分(图片左半部门),好比:UI团队,中间件团队,DBA团队。

差别职能的人属于差别的团队。做项目的时刻就从差别职能部门选出一些人来卖力项目。这样的组织架构有一个问题就是:跨职能部门相同协调问题。这种团队组织形式不能顺应微服务架构的特点。

  • 微服务应用组织架构
    微服务思考(02):微服务实施前有哪些问题?

图片来自:https://martinfowler.com/articles/microservices.html

微服务架构特点:每个微服务是自力的,团队可以自力开发,自力测试,自力部署,服务是自治的。响应的团队组成职员也有产物,手艺,测试,团队成员在自己内部就可以完整的举行微服务种种功效开发。

这就要打破原先传统的那种按职能划分的组织团队形式,而要把差别职能的人组织在一个团队内,组成一个跨职能的产物组织架构。这样才气把一个微服务功效架构、设计、开发、测试、部署、上线运行,在一个组织内部完成,从而形成完整的营业开发闭环。

团队组织的转变

一图胜千言:

微服务思考(02):微服务实施前有哪些问题?

图片来自:https://insights.thoughtworks.cn/management-of-microservices-team/

原先那种职能型的团队,变成了跨职能的小团队,这种团队和微服务架构对齐。

说明: 以上图片侵删,请联系主页邮箱!

四、参考:

原创文章,作者:dddof新闻网,如若转载,请注明出处:https://www.dddof.com/archives/28232.html