康威法则和微服务给架构师怎样的启示
什么是康威法则?
康威法则,就是康威说了一段说,这段话就是康威法则,大家自行百度吧。
总结来说,就是说一个项目,多个团队围绕着一个模块进行开发时候,如果某个团队对该模块进行了升级或者优化,就会导致其他团队也要进行整体优化,这样成本很高.
那对于微服务来说,如果我们把这一个模块进行细拆分,每个团队负责的东西都是相互独立,那就不会出现这种冲突,这样就会更加高效的开发.
企业应该在什么时候开始考虑引入微服务?
首先我们来看这样一张图,绿色代表微服务架构,蓝色代表单体架构
项目初期,项目的用户量不大,业务也并不是很复杂,我们如果选择单体项目的话,我们的开发成本最低,开发效率最高,而选择微服务架构,我们要准备很多资源,开发成本较高,开发的效率也就很低;
随着项目的更新迭代,用户群里变多,往往要在老模块上更新迭代,那如果选择单体,我们就要做一系列的改动,就类似于康威法则中描述的问题,容易产生冲突,那如果选择了微服务架构,我们就可以很好的解决这个问题,从而效率变高.
我们可以观察下这个图有一个交叉点,个人理解,可以项目初期使用单体架构,但要对项目的包结构,模块等有一定的规划,方便我们整改成微服务架构,当我们发现继续使用单体项目开发和整改成微服务的成本几乎差不多的时候,我们就要根据项目的发展以及规模考虑是否要拆分成微服务架构.