摘要:高可用架构的主要手段,是数据和服务的冗余备份及失效转移。
本文分享自华为云社区《高可用网站架构云化解决方案解析》,作者:琴棋书画-Linda。
早期互联网产品用户量少,并发量低,数据量小,多数只需要单个应用服务器可以满足需要,而数据库和文件服务部署在外部单个服务器上。随着业务在线化、互联网化的高速发展,企业对核心业务系统的稳定性、可靠性、有效性、业务连续性等有了更高的要求。
在大规模网站系统中,硬件故障是常态,网站的高可用架构设计的主要目的就是保证服务器硬件故障时,服务依然可用、数据依然保存并能够访问。采用高可用系统架构支持重要系统、为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。
网站对用户提供服务时,如果只使用1台弹性云服务器ECS搭建应用,就面临极高的单点故障风险:当这台服务器因各种故障(磁盘故障、内存故障、网线松动等各种问题)离线或宕机时,整个网站业务也会完全停服。
利用打折、秒杀等促销活动吸引用户,助推业务快速增长是互联网类型公司常见的运营手段。秒杀会对现有网站的冲击,因为秒杀活动只是网站的一个营销所附带的一个网络附加活动,这个活动具有的特点是:时间短,并发能力强。如果网站和原有应用部署在一起,必然会对网站本身的业务造成冲击,稍有不慎,整个网站就会发生瘫痪。
实际上,企业系统架构能力无法应对此类活动的案例并不鲜见,最近的案例如Costco促销期间网站宕机。突发新冠疫情引发的核酸检测系统尖峰访问流量导致系统崩溃是类似的场景,如果系统提前采用基于云产品的高可用网站架构,相信能运行更加稳定。
网站后台存储数据丢失常见的原因有:停电、设备故障或故障、意外删除数据、不小心格式化硬盘、硬盘读写头损坏、软件崩溃、逻辑错误、固件损坏、硬盘驱动器物理损坏等。重要数据丢失且无备份会造成无可挽回的损失。
数据库是网站的核心组件,由于数据库性能、故障导致的可用性问题可能会带来业务严重受损。
高可用架构的主要手段,是数据和服务的冗余备份及失效转移。一旦某些服务器宕机,就将服务切换到其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取数据。
高可用网站架构云化解决方案由弹性负载均衡ELB,弹性云服务器ECS,云数据库RDS for MySQL等(对象存储服务OBS,云备份CBR,云监控CES等可选服务)产品组成,解决方案的整体架构图如下:
高可用网站架构云化解决方案架构图
该方案具有以下三个典型优势:
高可用网站架构云化解决方案以ELB后端挂载多台ECS实现流量分发,有两方面最重要的特性:
(1)提升网站业务连续性。当后端ECS有一台出现宕机等故障时,通过健康检查功能自动摘除,前端的ELB自动将流量分发到健康的ECS上,从而确保网站正常运行。
(2)提升网站应对高并发访问能力。ELB 将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错。
高可用网站架构云化一键部署
ELB挂载多个后端ECS实现高可用网站的基本要求是:一个完整的请求交互无论分配到哪台服务器(ELB通过会话保持功能实现同一个用户的请求调度到同一台服务器上),返回的结果都是一样的。如果客户的业务响应不满足这个条件,往往不适合使用基于ELB的高可用网站架构云化。
(1)App建站需求:当客户提到需要构建App时,后端推荐使用高可用网站架构云化
(2)小程序建站需求:当客户提到需要构建小程序应用时,后端推荐使用高可用网站架构云化。
(3)对客Web网站:当客户构建对客Web网站时,后端推荐使用高可用网站架构云化,对于互联网、电商、教育、游戏、医疗等行业重点推荐。
对照华为云客户行业分布,高可用网站适合泛互联网、教育、生产制造等行业,具有普适性。
高可用网站架构对客户的价值如下所示:
客户价值
我们对高可用网站方案的深刻理解与最佳实践沉淀,可以让客户在最短时间内提升系统架构水平,构建对标业界最佳实践的系统。