解决方案架构师修炼之道
上QQ阅读APP看书,第一时间看更新

3.1.2 架构伸缩

继续以电子商务网站为例,我们来思考一下,在当今流行的三层架构下如何在应用程序的不同层上实现弹性。这里我们只需要关注架构设计的弹性和可伸缩性两个方面,其他方面详见第6章。

图3-3展示了AWS云技术栈的三层架构。从图3-3的架构图可以看到很多组件,例如:

□虚拟服务器(Amazon EC2)。

□数据库(Amazon RDS)。

□负载均衡器(Amazon弹性负载均衡器)。

□DNS服务器(Amazon Route 53)。

□CDN服务(Amazon CloudFront)。

□网络边界(虚拟私有云(Virtual Private Cloud,VPC))和对象存储(Amazon S3)。

如图3-3所示,负载均衡器后面有一组Web服务器和应用服务器。在这种架构下,用户向负载均衡器发送请求,负载均衡器再将流量路由到Web服务器。随着用户流量的增加,自动伸缩机制会在Web和应用程序群中添加更多服务器。当需求较小时,它会优雅地删除多余的服务器。这种自动伸缩机制可以根据CPU利用率和内存利用率的度量组合来自动添加或删除服务器。例如,可以配置当CPU利用率超过60%时,添加3台新服务器;低于30%时,则从现有的服务器中删除2台。

在本书中,我们将深入探讨以上每个组件。下一节将介绍静态内容的伸缩。

图3-3 三层架构的伸缩