从苹果供应链的业务永续说起
每次苹果出新机,全球各地旗舰店就大排长龙统一发售,堪称全球化的一景。有没有想过,iPhone是怎么保障全球消费者能在一天内买到几百万部手机的?
很简单:同时用多个供应商。苹果供应链非常发达,仅组装厂全球就有18家,如富士康7家、广达3家、和硕2家。而在每个零部件环节也都会有多个供应商支持(用了哪几家供应商都成了新闻)。并在产品层面采取了统一标准,确保哪怕地震、洪水也能按时交付同样质量的产品。
反过来说,一些较小的手机厂商经常因为“泰国洪水”、“日本地震”、“台湾断电”而无法正常发货。
用互联网行业的话来说,苹果做到了“业务永续”。而其他手机商出现了典型的“单点故障”导致的“停摆”。
小结:供应链出现问题就会影响到品牌形象。所以业务永续是你和客户之间的约定,“多个供应商”是你做到这个约定的手段之一。
而方法呢?业务永续首先是架构设计层的职责。尽可能消除单点故障风险,做好关键节点的冗余。换成人话就是:想好可能出现问题的地方,做好准备,比如说多备点存货,用多个供应商,避免出现一个天灾人祸你就跪了的局面。
云计算故障了,但为什么有的网站没挂
供应链不是制造业独有的,互联网行业也是如此。云计算可以看作是很多公司的供应商,当他宕机时,有很多公司也会受到影响。
比如说,去年AWS弗吉尼亚节点宕机,导致包括Netflix、Airbnb、Product Hunt、Medium、SocialFlow、Buffer、GroupMe、Pocket、Viber和亚马逊Echo等停摆。而国内云计算厂商也遭遇过雷击、挖掘机、断电等多种问题。
云计算出现宕机当然是导致网站停摆的导火索,持续提高稳定性是云计算公司该承担的责任没跑。但大部分人没有看到的是,同样是这个节点故障,却还是有很多网站并没有挂掉。真正该问的问题是,为什么有的挂了而有的没挂!
“因为不仅仅是在弗吉尼亚有服务器,一出问题我就切到另一个节点了。”狡兔三窟的客户都是这么回答的。“云计算厂商只承诺全年99.999%的时间是可靠的,剩下的时间要看运气了。如果我只是依赖一个节点,他挂我就一定会挂掉,就会影响品牌形象。”
可能会出问题的就必然会出问题,这就是墨菲定律。除了自己应用层的可靠性,在基础资源上索性就在不同的“可用区”(AZ)、“地域节点”(Region)都做一些部署。一些大型的公司甚至是在不同的云计算厂商之间都做了准备。
云计算公司为什么不做“异地多活”
还有人好奇,为什么AWS和阿里云会出问题?云计算不也是“异地多活”吗?
这里有个致命的错误,云计算行业尤其是IaaS层一般会提供一个可用性指标(SLA),例如说99.999%,即承诺全年有这个概率是可用的。而比如淘宝为了实现业务永续做了一个技术方案“异地多活”,这是他对于自己消费者的承诺(保证买买买不停)的实现手段。淘宝用了多个99.999%的节点同时运行,只要不是这些节点同时挂,他就不会挂。(不用说,难度很高也很贵)
他们之间的关系是:消费者——》亚马逊网站、淘宝——》(云计算1+云计算2+云计算3)。云计算123随意挂掉一个都不会影响业务的稳定。
也就是说靠谱的云计算厂商会告诉你自己服务能力的边界和极限是什么,使用它们的时候要根据他们的能力来规划自己的业务设计,以达到自己的业务永续。
打个比方,你把女朋友的照片同时放在iCloud、电脑、移动硬盘里,只要不是3个同时丢失,你女朋友的照片就不会丢。但如果只存了一个地方,不幸又丢失了,那你说该怪谁?
总结:
1、业务永续是你和客户之间的约定,“高可用性”首先是架构设计层的职责
2、云计算行业不存在“异地多活”的说法,一般只承诺99.999%的可用性(SLA)
3、但你可以用多个云计算节点来设计出100%业务永续的方案
关键看你有多关心用户,钱有多少。