专访阿里钱磊:如何打造第三方的开放账号体系

阅读数:3032 2015 年 9 月 27 日

话题:移动阿里巴巴语言 & 开发架构

如今,使用第三方的云服务对移动开发者来说并不是难以接受的事情,但如果连最核心的账号系统也交给第三方呢?在考虑有没有人敢这么做之前,阿里的百川项目已经将它做出来并对外开放了。

云账号(OpenAccount)是阿里百川项目开放出来的一个业务组件,今年 7 月正式上线,阿里百川是阿里巴巴集团无线开放平台,为移动开发者(涵盖移动创业者)提供快速搭建 APP、加速 APP 商业化、提升用户体验的解决方案。

从云账号的文档可以看到,目前它提供新账号注册、开发者已有账号体系集成、第三方社交平台开放账号体系等功能,可以在开发者已有的账号系统进行双向同步和备份操作,并且提供可定制 UI 的 iOS、Android 客户端集成的 SDK。

据 InfoQ 进一步了解,这套系统是由阿里会员系统 Havana 产品化并开放而来,InfoQ 采访了 Havana 与云账号的技术负责人钱磊,了解了他们为何决定开放账号体系,如何保证账号系统的安全和稳定性,以及后台的架构和性能优化等相关问题。

受访嘉宾介绍:

钱磊,阿里巴巴资深技术专家,在阿里负责过纯技术的产品研发,产出 Shy3、Dubbo 等优秀的技术产品;其中 Dubbo 产品已经开源。带领过业务平台的搭建,历经三年打通阿里巴巴全集团的会员体系,阿里巴巴会员体系目前已经承载了淘系几亿级的用户体量,经历了多次双十一的稳定考验。近期负责阿里巴巴百川移动端开放,为移动端创业者搭建集技术、产品、商业为一体的创业孵化平台。

InfoQ:请介绍一下云账号系统的研发经历,为了将它开放出来做了哪些工作?

钱磊:谈这个问题之前,我说下两个背景。首先是百川会放出哪些能力,原则是什么。我们的思考是把阿里做的好 的东西产品化出来让开发者使用,通过百川平台让开发者使用到业界第一流的系统。移动端应用细节很重要,有一流的工程师团队在为你服务,可以放心的把专业的 事交给专业的人,开发者可以专注于自己的核心业务逻辑,把场景做透。

我们已经释放出的云账户、短信、TAE、多媒体云、OpenIM 等产品都是在内部有过长时间沉淀,产品化后供开发者使用。

然后,说到云账号不得不提阿里巴巴的会员体系 Havana,我本人也是会员体系的负责人。最早在整个集团有多套账户体系,淘宝、支付宝各一套、 B2B 有两套,阿里云有一套,一些并购过来的业务,也有自己的账户,头绪很多;多套账户体系对用户造成很多麻烦,要记多套账户名和密码,有时还要绑来绑 去;账户不通很多基础业务系统很难复用,重复建设很严重。11 年开始经过三年的努力将所有的账户系统终于统一到了 Havana,过程中产品和技术层面都做 了大量的工作。Havana 支持了全集团的会员各种业务,从 PC 到移动端、从国内用户到海外用户,整个产品链路非常完整。经历过多年双 11 大促的考验,稳 定性也有保障。

云账号是在 Havana 系统的基础上产品化而来的,然而对内和对外场景上的差异还是很大的,开放给第三方使用也做了大量的改造。例如模型简化、多租户设计、支持定制化、安全方案等等。

InfoQ:对于账号系统,安全性是重中之重,Havana 和云账号在账号安全上做了哪些工作?

钱磊:这个问题提的非常好,移动端应用的安全比 Web 应用难做很多。原因是 Web 应用的客户端是浏览器,能 力不强,以做展现为主,逻辑和数据也都少;体验不太好做,但服务端重,防控的点比较集中;而移动端应用的情况就完全不同了,用户体验可以做极致,数据和逻 辑就很自然的在端上变的重了,所以安全要从端到云做通盘考虑,很考验功力和积累;账户无疑是黑产最想攻击的点,用户在应用内有大量的隐私信息和数据资产, 账户是获取这些资产的钥匙。

账户安全是个整体,有两个方面。一方面是基础安全,移动端应用的终端安全、通讯安全、服务端安全我们都做了大量的工作,使用了阿里集团众多基础 安全产品。例如终端的安全保障就有设备指纹、人机识别、反跟踪调试、代码混淆等方面的设计。通讯安全在性能和安全中我们做了很多取舍,最终选择了使用私有 协议,实现会话级的安全通道。另一方面是业务安全,各类账户操作的安全和风控策略上我们都有大量的积累。例如在垃圾注册、防刷库等,我们有长期的攻防经 验,沉淀了很多数据和策略。

InfoQ:云账号的后台架构是怎么样的?有哪些关键系统?如何保证稳定性?

钱磊:整个后台其实分了好几层,处理着不同的问题。大致上有网络接入层、网关层、业务逻辑层、存储层,网络 接入层是复用了手淘的体系;网关层有流控、权限、多租户隔离、灾备等设计;业务层对外的强依赖很少,基本上只会依赖存储,非关键依赖都有降级策略。稳定性 还受益于阿里巴巴整体的技术体系,从网络架构到中间件,到线上监控和运维系统,无论是架构上的稳定性,还是线上运维能力和经验,都是业界一流的。

InfoQ:你们在后台的性能优化上做了哪些工作?

钱磊:后台性能方面有三个关键因素,第一是中间件的选择,受益于阿里强大的中间件体系,我们使用的 HSF、 TDDL、Tair 等,都是业界一流的中间件系统,性能和稳定性上都做的非常好;第二是设计上的考量,其中很多是细节,例如登录场景,我们对账户名做了反 向索引,账密登录只需要访问两次缓存,效率非常高。例如在写请求中状态一致性的处理,我们采用的是同步更新 DB,异步清除缓存,以确保写请求的 RT 是稳定 的,不受缓存设计变化的影响;第三是人的因素,做云账号的团队源于做 Havana 的同学,处理分布式和高并发问题是我们的强项。

InfoQ:用户对于开放账号体系有哪些定制化需求?云账号有什么开发计划?

钱磊:目前看到的定制化需求主要是在功能和 UI 层面,例如用哪几种 SNS 登录方式,登录界面的颜色和文案等,这些我们都已经有支持。

从整体设计上,我们还会提供更多的定制能力,从 功能和 UI 到 业务流程 再到 数据模型,都会逐步的释放出来。