学习总结 -- Week 4
本周介绍了常见互联网应用系统架构案例。
互联网应用需要面对高并发,大流量的挑战,同时基于业务价值,通常要求7X24小时不间断运行,这就提出了高可用的要求。同时大型互联网应用一般都拥有海量用户,每天都会产生海量的数据。这些数据需要被存储和分析。这一特性显著区别于传统C/S架构的应用,对数据管理提出了新的要求。作为架构师,如何权衡架构设计来满足这些要求呢?通常可以从以下五个方面来衡量:
高性能
高可用
可伸缩
可扩展
安全
性能瓶颈可能来自于代码,也可能来自于硬件性能局限。除了提高代码质量来避免性能瓶颈外,也应当关注例如服务器处理能力,数据吞吐能力,网络性能等硬件指标,在预算允许范围内尽量提高硬件性能。而针对吞吐量,对于静态资源请求,可以通过CDN来分散流量压力,同时也提升用户体验。对动态资源的存取,则可以通过缓存服务来应对。缓存服务可以缓存http响应,也可以缓存数据库查询结果。这些服务都有助于应对高并发请求,提高服务性能。
要确保服务高可用,针对服务器集群,应当部署负载均衡服务器,并配置相应fail over策略保证服务器集群整体工作正常。单个数据中心在应对突发自然灾害或其他不可抗力因素时往往是脆弱的。为了保证服务可用,应当同时部署异地灾备服务器。
针对可伸缩和可扩展性需求,传统的方式是进行垂直扩展来应对,既升级单体服务器的性能。因为要预先规划,预留冗余计算能力应对突发流量增长,往往造成大量服务器资源在闲时被浪费。另外,当达到一定规模后,垂直扩展的成本将呈指数级增加。相对垂直扩展,横向扩展将应用部署到相对便宜的服务器。当突发流量来临时,通过启用更多服务器的方式,增加计算资源来应对。当流量高峰过去后,再关闭多余服务器。相比垂直扩展,这种方式可以显著节省成本,尤其是初始投资。
要确保安全性,首先应当加固单个应用服务器的安全,优化防火墙配置,并及时升级操作系统。通过RBAC,MFA等安全手段加强系统安全性。只允许https请求,确保数据传输安全。针对数据安全性,应该确保数据在保存到硬盘时已经用高强度加密算法加密过,同时注意对加密密钥的管理。
版权声明: 本文为 InfoQ 作者【吴炳华】的原创文章。
原文链接:【http://xie.infoq.cn/article/0d0b43f7b4f4c509339bc13e2】。文章转载请联系作者。
评论