1、请您先介绍一下自己以及工作经历
2、此次WOT您演讲的主题是《高可用之路》,能否提前透露一些内容呢?
3、目前我们看到诸多互联网企业都构建了分布式架构平台,您对此怎么看?分布式是最适合互联网的架构吗?
4、陌陌的系统架构有什么特点?面临最大的挑战是什么?
5、您认为什么样的系统才称得上具备高可用性?
6、现在国内云计算企业林立,您对此怎么看?
7、对于国产服务器与存储您是否使用过?相比国外品牌,您认为这些产品是否还存在技术上的差距?
8、您认为未来值得关注的技术有哪些?请谈谈对这些技术的看法。
展开/折起 - 头部

《高可用之路》问答手稿

答应了51cto参加2016WOT,以《高可用之路》为题分享高可用设计方面的经验与教训。这篇手稿是答复主办方的一段参访,记录如下。

原文链接:http://server.51cto.com/Review-515542.htm

1、请您先介绍一下自己以及工作经历

刚毕业时,先和朋友创业,之后去了百度负责开放平台与移动云的一些事情。来陌陌是13年,有幸赶上了陌陌爆发性增长的整个过程,经历了各种各样的问题。现在负责技术保障部团队,含基础架构、运维、安全、信息化四个方向。

2、此次WOT您演讲的主题是《高可用之路》,能否提前透露一些内容呢?

主要是做架构设计、解决高可用问题时,根据工作经历总结的经验与模式。

俗话说,授人以鱼不如授人以渔,一些内部产品的介绍,大家接受起来会有很大的信息损失,因为每一个团队的场景不同,未必能把握住其中对自己有用的抽象后可复用的经验。这一次我对工作中经常碰到的问题进行归类,从问题出发,介绍高可用设计中常用的模式与工具,以及在使用这些模式与工具时,容易犯的错误。

3、目前我们看到诸多互联网企业都构建了分布式架构平台,您对此怎么看?分布式是最适合互联网的架构吗?

分布式的概念太广了,这里以逻辑层来说,即通常说的微服务架构。

互联网企业的范围太大,不能以一概全,没有绝对的适合与不适合,需要用业务发展的位置作为参数来衡量。 对于小企业,单体应用是效率最高的。如果一个创业公司用分布式架构去搞自己的第一个初版产品,那应该趁早换掉技术负责人,这样的思路属于炫技,费钱是小事,对业务发展速度的影响是大事。

当企业变大之后,微服务化便不仅仅是适合,而是必须的了。我们可以类比一下团队管理,单体应用类似于一个高度内聚的团队,但公司变大之后,谁也没见过CEO直接管理每一位员工,这时候需要对组织关系进行重新梳理进行分权,建立众多的独立小部门来完成全部的工作,提高单位组织的独立性才有利提高整体的效率。并不是互联网技术架构如此,像管理、市场等,任何事物变复杂后,都会用分层+拆分的形式来重构自己的工作方式。

个体的能力是有极限的,需要合理运用团队的力量才能创造更大的价值,分布式架构便是由依赖单个英雄横冲直撞到依赖一个军团协同作战的典型案例。

4、陌陌的系统架构有什么特点?面临最大的挑战是什么?

在陌陌,有一个非常重要的架构设计基调,这是我们技术VP在很早以前定下的——基于异常的设计。 核心系统的设计,每一都要考虑如果出错了怎么办,而不仅仅是考虑功能是否能跑起来。陌陌仍然处于快速的发展期,需要我们集中时间解决最为核心的问题,尤其是业务中最新的需要,比如快速发展的直播。 所以,整体架构仍然以实用为主,不会有太多的花架子。陌陌架构能很好的处理压力问题,比如IM,晚高峰要处理近700万的并发连接,而且还有很大余量。

不过在我眼里看到的问题会更多一些,有两类比较棘手的。 一便是历史遗留下来的一些开发流程导致的架构弊端已难以更改,要做几乎是脱胎换骨般的痛苦,但还是要做; 二是多机房问题,主要是如何以合适的成本实现比较彻底的机房互备、甚至热备双活,按照两地三中心的思路去搞成本实在太高,是目前架构上面临的一个较大挑战。

5、您认为什么样的系统才称得上具备高可用性?

很多地方都喜欢讲SLA,讲几个九,我不知道国内有多少公司在准确、严格的计算自己的SLA。

从技术角度来看,高可用的系统应该非常鲁棒,简单说就是自身不会轻易被外界的变化干扰,比如服务器掉电、数据库宕机等等。

从非技术角度看,用户不骂,就算是高可用的。从某些程度上来讲,这个标准更适合用来评判自己的系统高可用性是否已经达到要求了,防止消耗一些无谓的成本。你定个kpi,说要把公司订餐系统高从3个九做到5个九,有什么用呢,是吧。

6、现在国内云计算企业林立,您对此怎么看?

无论最后谁家为王,充分竞争的局面对用户总是有利的。

7、对于国产服务器与存储您是否使用过?相比国外品牌,您认为这些产品是否还存在技术上的差距?

像国产硬件产品,有采用或者测试。只是我们的量级与BAT相比还很小,结果不足以供大家参考。

但作为技术负责人,技术体系中一定要注意统一化原则,无论采用哪一家的产品,要保证一致,不要把自己IDC搞成每个商家的试验场。

8、您认为未来值得关注的技术有哪些?请谈谈对这些技术的看法。

技术体系,简单切分起来就是接入、业务、数据三层,我一直认为数据层是架构体系的核心所在,也是难点所在。

接入与业务其实都好做,就算碰到问题也总能较快解决,他俩大都是无状态的,高可用上几乎没什么压力。但数据层便不一样了,规模越大、需求越高,难点越多。而且数据层的建设一般都超出了普通研发团队可控的范畴。

在机房内部,有很多HA机制可以封装数据库的高可用问题,但一旦落到跨机房,问题便变多了,性能问题、同步问题、事务问题,等等等等,在没有很好的解决方案之前,只能靠更多的渗透上层逻辑来解决,这样是不优雅的。数据层的每一个进化都会给架构体系带来革命性的影响,如nosql的出现。我非常期望能够封装机房、地域概念的企业级数据产品出现,它对技术架构带来的变化肯定是革命级的!

2016.08

--EOF--

知识共享许可协议 本作品采用知识共享署名 3.0 未本地化版本许可协议进行许可。
comments powered by Disqus