Joyent的可延展架构
构建于Joyent云平台之上的应用可以做到:
- 每月数十亿次页面访问
- 每秒轻松推送3G数据
- 每秒处理数万次请求
想做到上述可延展性,需要使用直接支持延展的架构,在延展架构中结合多个Accelerator。本部分会介绍一些类似的架构模式。
CPU自动突发功能让Accelerator性能强大20倍

即使是最小容量的1GB Accelerator都提供CPU自动突发功能。当您需要额外的处理能力时,您马上就能得到额外的8个内核的处理能力。性能上的爆发是非常巨大的。举例来说,一个1GB的Joyent Accelerator,在其上运行基于Apache和MySQL的PHP应用,它每秒支持的页面请求数是一个标准的1.7GB EC2 AMI运行同样代码所能支持请求数的20倍。Joyent Accelerator的性能优势直接来自于访问更多处理器内核与更佳网络状况的能力。
当您采用垂直扩展(scale up)架构来支持您的应用时,如此的性能提升意味着您需要的Web层服务器更少,因此可以节省您相当多的开销。
阶段1——基本部署方式

您可以在单个Accelerator™上成功启动一个应用。例如,如果是运行在Apache和MySQL上的PHP应用,您可以将Apache和MySQL同时安装、运行在第一个Accelerator上。您仍可以接入Joyent第一流的网络,而且您仍可访问我们提供的其他服务,比如NFS驱动器,这可以用来备份,或是作为存储设备以供将来在多台Web层服务器间共享。
随着您的应用的流量增长,您可以在需要的时候添加额外的基础架构。
阶段2——负载均衡、缓存、冗余的web层和冗余的数据库层

第二个阶段加入了一个Zeus Accelerator™,您可以使用其中功能强大而又易于使用的web图形用户界面进行配置,然后运行负载均衡和页面缓存。负载均衡能让您将众多请求发布到多个运行Accelerator™的web层服务器上。页面缓存在内存中保留了多份动态生成的页面拷贝,然后就能以最高每秒响应4000次请求的速度对外提供服务。这可以极大降低您后端服务器的负载,但具体表现会根据您的应用本身特点的不同而有所差异。
配备了负载均衡功能后,您只要加入第二个Accelerator™来运行您的应用,接下来就可以开始水平扩展您的Web层服务器了。举个例子:您可以有两个Accelerator,上面同时运行Apache和您的PHP应用。同样的原则也适用于运行于Mongrel服务器之上或在Passenger之内的Rails应用。
接下来,您就可以切分您的数据层服务器了,还能运行一个冗余的配置,诸如双主机MySQL Accelerator™。
阶段3——使用冗余的负载均衡、缓存和网络流量管理

接下来的典型步骤就是加入第二个Zeus Accelerator™,从而做到网络流量管理的冗余。Zeus会自动适应并处理集群方式部署的服务器,也就是说您通常只需几分钟的配置,就可以加入故障转移功能、增加缓存处理能力和吞吐处理能力。
阶段4——水平延展Web层

在第四个阶段中,只需水平延展Web层就能加入额外的处理能力。如果一个web服务器每秒可以处理500个请求,而您的应用需要每秒支持2500个请求,那您就需要5个Accelerators™来运行Web层。
阶段5——垂直延展数据库层

延展一个web应用的最后一个主要步骤,通常都是水平扩展数据库层。这就意味着要增加您运行数据库所使用的Accelerator大小,从1GB增加到2GB、4GB、8GB、16GB乃至32GB。我们推荐您的数据库使用的内存永远不要超过可用内存的80%,这样一来,MySQL、PostgreSQL、Oracle或是DB2、CouchDB等数据库就可以在不访问硬盘数据的情况下去响应查询了。从内存读取数据总是要比从硬盘读取速度快。

