传统服务化(SOA)与微服务(微服务)的融合之道

  

传统服务化(SOA)与微服务(微服务),并不是相互排斥的,相反,它们是融合在一块的。

  

国富论与它企业组织架构

  

经济学鼻祖亚当斯密在其《国富论》著作中,第一章就是论分工。亚当斯密认为分工的作用有:促进劳动生产力的提升,提高劳动力操作熟练程度,强化劳动力技能,增强劳动力的判断力。

  

既然分工是合理的,企业也采用分工理论,那么根据它企业所在服务的行业不同,所服务的客户规模不同,它企业内部必然出现适合企业自身的部门划分,各部门各司其职,相互协作。

  

组织沟通形式与软件设计的表达形式

  

康威定律为大家所熟知,它的大概意思是:组织形式等同于系统设计。

  

传统服务化(SOA)与微服务(微服务)的融合之道

  

服务化与微服务其实是组织形式的表现

  

将服务化或微服务运用的很好的企业或组织,必然,它们的组织形式是“服务化”的。每个单元组织,都是实际负责一个或多个系统的生命周期。

  

举个栗子,企业设立A, B两个组织部门,分别负责1 ~ 2个软件产品的生命周期,从产品设计到上线运维,产品改进直至最终产品消亡或被替换。每个组织部门拥有完整的团队建制,包括产品设计人员,开发,测试等等。当然,处于安全或效率的需要,也有一些职能是由公共服务组织提供支持的,比如运维,培训等。虽说是公共服务组织提供的服务,但公共服务组织还是一定程度上对A, B不同给予了定制化的专门服务。如此一来,A, B组织就可以很顺畅地对外提供服务了,整个企业也就SOA化了。

  

传统服务化(SOA)与微服务(微服务)的融合之道

  

微服务是相对的

  

根据笔者实际观察,传统SOA方式,是可以在拥有数千名技术从业者的这组织内运作良好的。每个软件产品都能够得到良好的开发,维护与改进,产品之间协作良好,共同对外部客户提供服务。这个规模的它企业,拥有上千个软件产品,或者称之为服务,每个产品(服务)由一个几乎全副武装的小团队负责,若干个小团队组成一个个研发中心。从企业角度来看,研发中心之间是SOA,而从小团队级别来看这不就是“微服务”了吗?

传统服务化(SOA)与微服务(微服务)的融合之道