本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

报码:【j2开奖】从淘宝到云端,阿里高可用架构演进实战(3)

时间:2017-05-16 16:03来源:本港台现场报码 作者:118开奖 点击:
另外一点非常重要的是,在设计一个技术方案的时候,就会把容灾的设计融入到方案里。比如在设计技术方案的时候,在最后一章单独有一个容灾设计,这

另外一点非常重要的是,在设计一个技术方案的时候,就会把容灾的设计融入到方案里。比如在设计技术方案的时候,在最后一章单独有一个容灾设计,这个节点里任何服务挂掉的时候,你要保持什么样的方式保持这个服务是可用的。

在容灾设计时有几点必须考虑,比如我引了一个新 jar 包或者调了一个新的 RPC 的服务、引入了分布式的存储,以前没用过也不知道它稳不稳定,第一想法是它肯定会挂,它挂了我们怎么做,我们当时在做前台系统的异步化的时候,因为 Redis 支持 map 的数据结构,所以我们就是用 Redis 的 hmget 从这个 map 里拿出部分的 key 减少网卡的流量,但即使这个挂掉了,我们还会走老的 Cache,只不过网卡流量会大一些,但是对用户的服务是无损的,所以这里要考虑如果它挂了怎么做降级,有什么样的恢复流程。

另外是发布计划,在新系统上线时就会关注这些问题,比如这次有没有做数据迁移,比如以前我是 8 个库不够用了我拆到 16 个库或者 32 个库,中间一定是有数据迁移的,涉及到数据迁移一定要有一套对账系统保证这个数据是新数据和老数据是对得平的,不然一定有问题,因为我们是做交易相关的,订单、金额绝对不能出问题。

另外是你的发布顺序是不是有依赖,如果出了问题的时候,谁要先回滚,这里是取决于技术设计。另外是否要通过客服公告的方式告诉外部用户说有 5 分钟的不可用,如果真的有用户打电话有疑问客服同学可以向用户解释。

在高可用这个领域做久了会有一种直觉,这个直觉很重要,来源于你的经验转换成这种直觉,但是对于一个成熟的团队来说,需要把这种直觉转化为产品或工具。有很多牛人他们的技能都只能叫手艺,你需要把这种手艺转换成产品和工具。

  公有云高可用设计

2015 年我去做云产品,这里给大家分享下我们是怎么样帮客户包括我们的系统在云上是做高可用的。

  经典故障案例

报码:【j2开奖】从淘宝到云端,阿里高可用架构演进实战

首先看两个经典故障案例,第一个是 Gitlab 生产数据库删了,它恢复了很久,Snapshot 等全都没有生效,做了五六层的备份也都没有什么用。这个事情说明第一我们的故障要定期演练,比如中间件在做的线上故障演练,你说你的系统可用性好,我把这个主库断了,虚拟机挂掉几台试试,做这些演练就可以知道你这个容灾体系是不是可靠的,如果没有这个演练的话,当真正的故障发生时你才会发现这个东西是不 OK 的。

另外一个很典型的问题,Gitlab 对备份的原理是不够了解的。比如当时用的 PostgreSQL 的一个版本,当时是有问题的,没有验证,开发人员对这个又不是特别了解的情况下就会出现这个问题,这就是为什么要去了解你的依赖以及你依赖的依赖。

去年我们做压测,有个应用一边压测一边在优化做发布,发现第一批发的起不来了,就只是改了一两行代加日志,他就去看什么原因,最后发现依赖的某个 jar 包依赖一个配置,而这个配置在压测中被降级了,一个 jar 包就把应用启动卡住了。如果在双十一当天或者在平时业务高峰期的时候发现这个问题是来不及修复的。所以这个时候,我们就要求,依赖的二方 jar 包必须看一下里面是怎么实现的,依赖哪些东西。

反过来说,别人依赖我的客户端就意味着他不仅依赖着我的服务还依赖着我的缓存,这个缓存出了问题对他也有影响,我们每年双十一前有一个强弱依赖梳理,不仅要梳理自己应用里面的,还有依赖的所有东西都梳理出来,中间任何一个节点挂掉了你应该怎么办,需要给一个明确答复。

第二个故障案例是今年发生的,AWS S3 敲错了一个命令把基础核心服务下线了,有一个对象索引服务和位置服务系统被 offline,后来也做了一些改进,每次敲的命令有一个静默期,让你有个反悔的机会,线上有个最小的资源保证服务。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容