传统服务化(SOA)与微服务(Micro Service),并非相互排斥的,相反,它们是融合在一块的。安全
经济学鼻祖亚当斯密在其《国富论》著做中,第一章就是论分工。亚当斯密认为分工的做用有:促进劳动生产力的提高、提升劳动力操做熟练程度、强化劳动力技能、加强劳动力的判断力。架构
既然分工是合理的,企业也采用分工理论,那么根据IT企业所在服务的行业不一样、所服务的客户规模不一样,IT企业内部必然出现适合企业自身的部门划分,各部门各司其职、相互协做。运维
康威定律为你们所熟知,它的大概意思是:组织形式等同于系统设计。微服务
将服务化或微服务运用的很好的企业或组织,必然,它们的组织形式是“服务化”的。每一个单元组织,都是实际负责一个或多个系统的生命周期。测试
举个栗子,企业设立A、B两个组织部门,分别负责1~2个软件产品的生命周期,从产品设计到上线运维、产品改进直至最终产品消亡或被替换。每一个组织部门拥有完整的团队建制,包括产品设计人员、开发、测试等等。固然,处于安全或效率的须要,也有一些职能是由公共服务组织提供支持的,好比运维、培训等。虽然说是公共服务组织提供的服务,但公共服务组织仍是必定程度上对A、B不一样给予了定制化的专门服务。如此一来,A、B组织就能够很顺畅地对外提供服务了,整个企业也就SOA化了。spa
根据笔者实际观察,传统SOA方式,是能够在拥有数千名技术从业者的IT组织内运做良好的。每一个软件产品都可以获得良好的开发、维护与改进,产品之间协做良好,共同对外部客户提供服务。这个规模的IT企业,拥有上千个软件产品,或者称之为服务,每一个产品(服务)由一个几乎全副武装的小团队负责,若干个小团队组成一个个研发中心。从IT企业角度来看,研发中心之间是SOA,而从小团队级别来看这不就是“微服务”了吗?设计