组织架构和工程架构
![](https://img9.doubanio.com/icon/u2778286-4.jpg)
> 如果你有四个小组开发编译器,那么你会得到一个四步编译器。
这是《新黑客字典》的说法。
另一种更学术化的说法是:
> 任何组织在设计一套系统(广义概念上的系统)时,所交付的设计方案在结构上都与该组织的沟通架构保持一致。
如果一个系统很大,以至于开发的它的人分成了很多个小组。显然,一个小组负责一个模块是非常好的管理方式。
模块之间怎么交互?自然,我们可以直接调用,也可以使用服务来互相调用。
这本书讲述的就是如果使用服务来互相调用的方式来制作大项目的方式。
服务该怎么划分呢?书里面给出的准则是能够在2周内完成的。我的意见是开发人员也不要超过6个人,毕竟在一起吃饭,这是最多的人了。
很多服务,意味着很多服务器,也意味着严重的网络依赖。我们需要考虑应对机房故障,应对各种微服务特有的问题。时常演习,比如某机房坏掉了,或者地震洪水,网络丢包严重。
他提到技术有:
Java RMI
Thrift
protocol buffers
Mongo
Cassandra
Squid
Varnish
Zookeeper
Consul
Packer
Vagrand
Eureka
Swagger
HAL
这是《新黑客字典》的说法。
另一种更学术化的说法是:
> 任何组织在设计一套系统(广义概念上的系统)时,所交付的设计方案在结构上都与该组织的沟通架构保持一致。
如果一个系统很大,以至于开发的它的人分成了很多个小组。显然,一个小组负责一个模块是非常好的管理方式。
模块之间怎么交互?自然,我们可以直接调用,也可以使用服务来互相调用。
这本书讲述的就是如果使用服务来互相调用的方式来制作大项目的方式。
服务该怎么划分呢?书里面给出的准则是能够在2周内完成的。我的意见是开发人员也不要超过6个人,毕竟在一起吃饭,这是最多的人了。
很多服务,意味着很多服务器,也意味着严重的网络依赖。我们需要考虑应对机房故障,应对各种微服务特有的问题。时常演习,比如某机房坏掉了,或者地震洪水,网络丢包严重。
他提到技术有:
Java RMI
Thrift
protocol buffers
Mongo
Cassandra
Squid
Varnish
Zookeeper
Consul
Packer
Vagrand
Eureka
Swagger
HAL
有关键情节透露