上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 三层架构的伸缩