npm建了一个scalenpm,为npm的重构募捐,目标是$ 200,000,目前为止已募集到$ 326,424。

npm 是一款包管理器,随 Node 捆绑发布。它提供了一种简易的方式来为你的应用程序安装模块,并且包括所有必要的依赖模块。

npm现有架构

npm原来的架构比较简单,后端是一个CouchDB,各种东西都往里面塞,然后前面用一个定制的反向代理挡一下。npm的客户端访问registry.npmjs.org,浏览器访问www.npmjs.org,这两部分的流量都导向反向代理。

npm原架构

由于访问量较大,撑不住了,所以加了一个CouchDB,分流一下。但是前面还是靠单一的反向代理服务器挡着。

npm现有架构

这个架构问题很明显:

  1. 压缩包等大文件塞CouchDB,没有必要,严重影响性能
  2. 所有流量导向单一的反向代理,压力过大。

npm重构计划

针对现有架构的问题,重构的计划如下:

  1. www.npmjs.orgregistry.npmjs.org分离开来。www由于压力不大,直接访问CouchDB,registry通过反向代理访问CouchDB,同时将反向代理由一台增加到两台。
  2. 添加多个CouchDB,并且确保有闲置的副本备用。
  3. 将压缩包等文件从CouchDB移出。

npm重构计划

捐款链接 (需外币信用卡)


撰文 SegmentFault


weakish
24.6k 声望844 粉丝

a vigorously lazy deadbeat with matured immaturity