技术沙龙
今天技术沙龙的压轴是当当网的架构总监史海峰先生,他的话题是‘‘当当高可用架构设计之道’’,讲的非常生动有趣,幽默感实足,写的了代码,讲得了段子,我觉得工程师都该成为这样有趣的人。系统不可用有三大原因:一、天灾,比如说过光缆被挖、机房被雷劈。二、人祸,携程528事件,线上代码由于认为失误被删,整个系统半天宕机。三、幽灵事件、黑天鹅,就是一线莫名其妙的问题,不可重现,或者几率很低,几年发生一次。高可用架构并不是永远不出问题,某天测试mm过来说出bug了,程序员第一反应肯定是:不可能,如同泰坦尼克号再怎么牛,号称‘‘永不沉没’’,但还是撞上冰山了,‘‘墨菲定律’’,一件你认为永远不可能发生的事情,它往往会发生,并且是坏的方面,这种情况往往无法避免,我们能做的只有时刻准备着,工作中往往是在在线上出了bug时,肾上腺激素猛增,会快速解决问题,也是快速成长的时候,比你平时慢悠悠的看一个月的书效果好。我们的产品原来是一个阿帕奇,产品的运营其实是一个边修边飞的过程,随着产品的发展,你会发现它变成了F16、F22,但由于技术没有实现好,它坠机了,这个时候往往技术就要背黑锅了,而却没有考虑过是否产品的设计有问题。领域切分,就是讲不同的业务拆分开来,俗话就是鸡蛋不要放在一个篮子里。数据独立,不是你的数据坚决不允许你直接访问,也就是‘‘绿帽子’’原则。统一框架,规范标准,近年来由于互联网泡沫,年轻人很少在一个公司沉淀超过两三年,通过框架可以减少失误,还有就是防止‘‘锤子现象’’,团队里的一个强人,花了30天学了项新技术,于是就非常想把他应用到现有系统中,不让他用吧,就会觉得英雄无用武之地,但实际上是不可行的,他手上有了锤子,眼里的东西都是钉子喽。压力测试,没经过压测没人敢拍胸脯保证没有问题。网站限流,已经成为所有电商网站的标配,我的系统可以支持10万流量的访问,20万也么问题,但超过20万就不能保证了,为了保持系统的可用,超过的部分就限制掉,不服务了,我们只保证20万的流量访问没有问题,双11时,有部分用户的客户端不可用,但大部分人都是没有问题,就是限流导致的。所有的大型网站发展到一定阶段,架构其实都差不多了,大携程的架构也是很牛叉的。