《微服务架构核心20讲》学习笔记

第1讲 什么是微服务架构

Martin flower在博文中给出的微服务的特点如下:

一组小的服务

独立的进程

轻量级部署

基于业务能力(用户服务、登录服务、商品服务)

独立部署(每个团队维护自己的服务,团队之间不需要协调)

无集中式管理

 

Netflix前架构师给出的微服务的定义:

Loosely coupled(松散耦合,服务之间非强依赖)

Service Oriented architecture(本质上还是SOA)

with bounded context(服务之间有边界,可独立演化)

 

第2讲 微服务的利弊

讲了微服务的利和弊

微服务的利

强模块化边界

可独立部署

技术多样性

微服务的弊

分布式复杂性

相对于单体应用,现在,细分成很多服务,开发人员无法理解整个系统是如何工作的。

最终一致性

运维复杂性

测试复杂性

对于单体应用,直接测试整个系统功能就可以了;微服务后,各个系统分散在各个团队,需要多个团队联调做

集成测试。

(我自己的理解:

关于微服务的利与弊,其实就是把一个系统细分为多个服务后,系统可看做整体,每个微服务可看做部分。好处是容易把控每个微服务自己,各个团队负责自己的服务就好了,坏处就是对系统整体的把握上会出现一些不便,比如对系统整理的理解、对系统的测试等)

 

思考以下问题:

运维团队,面对微服务的时候,应该采用什么样的手段来应对运维复杂性?

 

第3讲 康威法则

康威法则:系统的架构等价于组织的架构。

(我自己的理解就是:

如果系统是单体应用,那么应该是一个团队负责。

如果系统微服务化以后,比如分为服务A,B,C,那么组织架构上,也应当划分为A,B,C三个团队,每个团队可独立迭代。

)

 

思考以下问题:

作为架构师, 为什么不仅仅要做技术架构,也要了解组织架构?

 

第4讲 企业应该什么时候引入微服务

image.png

单体优先原则:不宜过早引入微服务,因为系统初期对系统的未来发展无法预知,过早引入微服务风险较高。

(我自己的理解:

不要在系统初期直接上微服务架构,而是在系统演变过程中逐渐引入)

 

抛出的问题:

架构是设计出来的还是演进出来的?

 

第5讲 什么样的组织结构更适合微服务

传统的组织架构:

一个产品需要产品团队、用户体验团队、研发专家团队、测试专家团队、DBA专家团队、运维专家团队等。

微服务组织架构:

每个微服务团队end-end ownership,从开发到测试到运维等,统统自己负责,形成闭环

Archite--->Design--->Develo--->Reivew--->Test--->Deploy--->Run--->Support

 

思考以下问题:

Netflix前总架构师说了一句话,微服务架构本质上是组织架构的重组,你如何理解这句话?

 

第6讲 如何理解阿里巴巴提出的微服务中台战略

5ac4550746f0c.png

大中台,小前台。 强化“技术中台+业务中台”,中台肥沃,在这上面的业务生态才会更繁荣。业务应用更小更灵活,迭代能力变强,按照市场变化不断演化新应用出来。

 

思考以下问题:

大中台,小前台战略。每个架构师怎样在每个公司内部实践。

 

第7讲 如何给出一个清晰简洁的服务分层方式

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdssf.html