不存在百分百的安全,该给你的系统上个保险了

存在,百分百,安全,系统,上个,保险 · 浏览次数 : 656

小编点评

**高可用架构的理解** 高可用架构是指在多个物理服务器上运行相同服务的集合,以确保在事件性故障发生时继续提供服务的能力。通过这种方式,即使单个服务器出现故障,其他服务器可以接替并继续提供服务。 **容错和容灾的理解** * **容错:** 当故障发生时,业务系统能够不中断服务的能力。 * **容灾:** 当重大灾难发生时,容错系统能够重新启动并恢复服务的能力。 **高可用系统的构建** 构建高可用系统需要考虑以下因素: * **故障容错:** 通过使用多个服务器运行相同的应用程序,以降低单个服务器故障对系统的影响。 * **容灾:** 通过备份和数据恢复,以确保在重大灾难发生时能够恢复系统服务。 * **运维简化:** 通过使用自动化工具,简化系统运维,降低维护成本。 **云服务的高可用性** 云服务商通常提供以下高可用性服务: * **基础硬件服务:** 例如,AWS EC2、Azure VMs、Google Cloud VMs。 * **业务容错:** 例如,Google Cloud自动切换到其他可用服务器。 * **容灾:** 例如,Azure 数据备份、AWS灾难恢复。 **高可用性的重要性** 高可用性是云服务的重要保障措施,因为它可以确保用户始终能够访问到稳定和可靠的服务。如果一个云服务失去高可用性,用户可能会面临以下问题: * 无法访问网站或应用程序。 * 无法使用云存储或数据库。 * 无法进行重要操作,例如支付或订单处理。 **如何提高云服务的高可用性** * 选择可靠的云服务商。 * 优化应用程序性能。 * 使用负载均衡和故障检测机制。 * 备份数据并进行灾难恢复测试。

正文

故障,是每个技术人都不愿遇到,但却总会遇到的事件。程序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。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源

与不存在百分百的安全,该给你的系统上个保险了相似的内容:

不存在百分百的安全,该给你的系统上个保险了

故障,是每个技术人都不愿遇到,但却总会遇到的事件。程序Bug、安全漏洞、黑客攻击、服务器宕机、网络中断等诸多因素都有可能引发系统故障,使我们的业务面临瘫痪的窘境。这样的例子,国内外都在不断的发生,比如: 2020年,由于严重的全澳性IT故障,Coles的收银机全部不能联网,down机瘫痪。收银员扫不

Vue3使用Vuex 教程(这才是真正的小白教程!)

我的项目是vue3+element-plus 我是个菜鸡,我不懂前端。想做一个tags的导航标签页。但是点击标签页之后页面仍然是会重新请求。感觉这不就跟没做一样吗? 遂百度GPT,第一种方式采用的就是存储到session里。搞了大半天,突然觉得这样好捞,遂采用vuex。虽然两者理论上区别不大,但是说

物理学又不存在了?ChatGPT:室温超导是物理学的一个梦想

大家好,我是小彭。 就在前天,一组微信聊天记录突然开始在各大群中流传: 随后,这一新闻直接引爆各大社交媒体,物理学又双叒叕不存在了吗? 到底是什么重磅消息呢? 原来在美国物理学会的三月会议上,美国纽约罗切斯特大学的 Ranga Dias 团队发布了一项研究成果 —— 他们发现了能够在室温环境下实现超

处理尚不存在的 DOM 节点

探索 MutationObserver API 与传统轮询等待最终被创建的节点方法相比的优劣。 有时候,您需要操作尚未存在的 DOM 的某个部分。 出现这种需求的原因有很多,但你最常看到的是在处理第三方脚本时,这些脚本会异步地将标记注入页面。举个例子,我最近需要在用户关闭Google reCAPTC

[转帖]Shell 判断文件或文件夹是否存在(不存在则创建)

目录 1. 文件夹不存在创建文件夹 2. 判断文件夹是否存在 3. 判断文件是否存在 4. 常用的文件比较符 1. 文件夹不存在创建文件夹 if [ ! -d "/data/" ];then mkdir /dataelse echo "文件夹已经存在"fi 2. 判断文件夹是否存在 if [ -d

Oracle数据库权限学习--表或者是视图不存在

Oracle数据库权限学习--表或者是视图不存在 摘要 本文写于: 12.10 01:00 巴西踢的太烂了 帮同事看一下补丁执行报错的问题. 问题原因很简单. user_all_table能够后去本用户权限 下所有架构表空间下面的表. 如果A架构下没有一个表, 但是同一个数据库instanceID下

Windows 映射网络驱动器及删除-此网格连接不存在

将共享目录,映射到本地磁盘,可以方便快速访问 添加 点击【此电脑】菜单栏中,选择【计算机】->【映射网格驱动器】-> 文件夹中输入 共享目录地址,如下图 删除 右击,网格映射盘,右击【断开连接】 异常 映射的IP发生变化后,将无法断开连接,此时报“此网格连接不存在”错误 解决异常 命令gpedit.

事务,不只ACID

事务是应用程序将多个读写操作组合成一个逻辑单元的一种形式,这样其中所有的读写操作都被视为单个操作来执行,要么成功提交,要么失败回滚,不存在任何部分成功和部分失败的情况。现在,几乎所有的关系型数据库和一些非关系型数据库都支持事务。

[转帖]三种缓存策略分析:Cache aside,Read/Write through,Write Back

Cache aside 旁路缓存,旁路缓存操作逻辑是查询缓存,如果不存在那么就读取数据库并更新到缓存当中. 如果是更新数据库,那么操作完数据库后,删除缓存. 注意旁路缓存,缓存中的内容是不做更新操作的,只有写入和删除操作. 问题 1.请求1查询不到缓存,查询数据库.请求2更新数据,删除缓存,请求1写

AR Engine毫秒级平面检测,带来更准确的呈现效果

近年来,AR版块成为时下大热,这是一种将现实环境中不存在的虚拟物体融合到真实环境里的技术,用户借助显示设备可以拥有真实的感官体验。AR的应用场景十分广泛,涉及娱乐、社交、广告、购物、教育等领域:AR可以让游戏更具互动性;商品通过AR展示更真实;使用AR进行教育教学让抽象事物更形象等,可以说AR技术已