故障,是每个技术人都不愿遇到,但却总会遇到的事件。程序 Bug、安全漏洞、黑客攻击、服务器宕机、网络中断等诸多因素都有可能引发系统故障,使咱们的业务面临瘫痪的困境。这样的例子,国内外都在一直的产生,比方:
2020 年,因为重大的全澳性 IT 故障,Coles 的收银机全副不能联网,down 机瘫痪。收银员扫不了货品顾客也不能结账,澳洲每家 Coles 超市都被迫临时敞开。
2018 年,上海的医疗保险信息系统就突发故障,波及上海各大医院的结算零碎,以致大量市民在就医时无奈失常应用医保卡,泛滥医院的排队窗口前纷纷大排长龙,局面凌乱。事发之后就有不少网友质疑,涉及面如此之广的医保信息系统,“难道没有应急措施?”
这些活生生的实在案例都在揭示咱们,技术赋能业务产生更高效率、获取更多价值的同时,保障系统稳固运行也至关重要。一旦零碎呈现大范畴、长时间故障,以致业务中断的结果可能间接磨灭技术赋能带来的收益,甚至还可能带来经济损失、品牌受损等严重后果。
所以,有必要给咱们的零碎上一份“保险”——构建高可用的零碎架构,这是每个技术团队都在致力的外围指标。
什么是高可用
那么怎么样的零碎是否具备高可用能力的呢?我认为次要考量两个方面:容错与容灾。
容错能力指的是当故障来长期,业务零碎是否能够不中断,持续服务的能力。惯例措施就是集群化部署,同样业务的利用部署多台服务器,即时有个别服务坏了,其余服务仍然能够提供业务反对。这就像飞机配置多台引擎一样,即时有一台坏了,剩下的仍然能够撑持它航行到指定地点平安着陆。
容灾能力指的是当重大劫难来长期,容错能力曾经全副生效了,但咱们仍然有能力通过一些伎俩让业务从新复原。惯例措施就是备份,当某个机房产生了重大的故障,所有服务器都无奈失常工作了,但数据备份还在,那咱们就能够从新加载它们并让零碎从新运行起来。这就好比飞机上的引擎全副坏了,但为了保障航行工作当前还能执行,必须提供爱护飞行员逃生的安装,比方通过弹射跳伞的形式令其能够幸存下来,之后又持续再其余飞机上继续执行工作。
高可用零碎的构建筹备
首先,在构建高可用零碎之前,咱们要对故障有几个根本的意识:没有任何一个设施是 100% 安全可靠的。所以,一个零碎在设计高可用架构的时候,复杂度随波及的设施的数量增多而变高。
其次,咱们须要尽可能的精简运维体系。简略的说,上云是大部分企业的最佳抉择。除非本身团队在同估算的状况下,可能在基建保护上达到雷同乃至更高的可用性。不然你机房建设、服务器、网络等基础设施的保护可能都将要你半条命。
再者,必须平常心看待可用性保障,这个情理就不多说了。意外总是在产生,翻翻过来的那些故障,是不是都还历历在目:
2022 年 6 月,Cloudflare 的意外中断导致大量热门网站拜访呈现问题
2021 年 12 月,AWS 大面积故障导致大量网站无奈服务,亚马逊电商也蒙受重创 2021 年 5 月,IBM Cloud 在短短 5 天里间断产生两次重大的中断事变
2020 年 3 月,Google Cloud 多个地区的云服务瘫痪,工夫长达 14 小时
2019 年 2 月,Google Cloud 因光纤受损呈现网络问题,工夫长达 10 小时
2018 年 4 月,Azure 因受雷雨天气影响导致电压激增而中断服务,工夫长达 28 小时
然而。正因为没有 100% 的无故障,咱们才要用高可用,因为这是惟一解救你造成微小财产损失的机会。
最初,咱们不得不正视一个云服务用户的常见误区。当咱们抉择云服务商的时候,须要明确云厂商到底给咱们提供了哪些高可用能力,而剩下的高可用能力笼罩是须要咱们本人设计和实现的。咱们要晓得,一个高可用零碎的构建是贯通基础设施、中间件、服务端、客户端等多方面的。对稳定性高度敏感的企业肯定要平常心对待故障,用好高可用。
(下图展现了云服务厂商和用户的高可用上的责任模型:云服务商提供的次要是根底硬件服务的高可用能力。而咱们之前所提到的业务容错(负载架构)、容灾(保障数据备份)能力都是在用户侧的。供参考)
所以,如果在上云的时候,对本身业务零碎不做额定的高可用保障,那就很可能呈现文章开始咱们提到的那些业务困境。
总结
明天跟大家聊了聊零碎上云时,容易被疏忽的高可用问题,以及如何做好云上高可用架构的办法。对此你有什么想法呢?留言区一起聊一聊。
欢送关注我的公众号:程序猿 DD。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源