在 2013 年 7 月的阿里技术嘉年华上,来自阿里巴巴的刘昊旻(伯昊)和侯前明(林轩)介绍了为第三方代码提供托管平台的 TAE。TAE 是建立在淘宝私有云 T4 基础上的一个第三方代码托管平台,是一个 PaaS,发端于店铺系统,现在应用于淘宝 U 站,淘宝 TMS,天猫品牌站等。
我最近在整理 ADC 上对伯昊和林轩的采访实录,最近采访实录已经整理完毕,经过两位的确认,已经准备发布。今天的微信内容选择了本次采访的一些相关内容分享给大家,主要讲的是 TAE 是如何起源的,以及它在发展过程中经历的不同阶段。里面反映出一些很有意思的观念,尤其是对技术、业务与人这三个层面的思考。
InfoQ:TAE 是什么时候开始做的?经历过哪些发展阶段?
林轩:TAE 是从 11 年 7 月底以后发起,当时最初的需求是来自旺铺的装修市场。淘宝的店铺有个装修市场,当时装修市场的功能是允许第三方设计师通过 PHP、HTML5、CSS 来为卖家的店铺提供美化和渲染,主要是一些偏前端的展现的问题。
到后期我们有 Java 的需求慢慢浮现出来的时候,就开始做 Java 这块系统层面的安全。因为围绕托管,Java 代码、系统和容器本身都是 Java 的,这样容器的代码和第三方代码是同质的,它一旦通突破 Java 这个沙箱之后,那它和系统代码是同一水平的,具有完全相同的权限。这个一定要通过系统层面来解决。
(从技术的层面,)大致可以分为这么两个阶段:一个前期的 PHP 容器阶段,后期的 Java 容器的阶段。
伯昊:我从另外一个侧面补充一下,就是从人的层面。这个项目刚开始还是声势浩大的,不少牛人在里边的,后来因为业务还不明朗,资源投入减小了很多。
林轩:这个跟淘宝的业务有关系。在淘宝内部,很多项目的特点就是一定要有业务场景、有需求才会投资源去做。在业务需求不是很明朗、或者不是很急迫的时候,就没有更多的资源投入进来。
伯昊:从这个角度来讲,第一个阶段差不多是从 11 年初到大概 12 年年中的时候,这个阶段主要是打基础,做了很多重要的事情。
然后就进入了第二个阶段。12 年下半年的时候,我们有一个业务终于进来了,是淘宝 UZ,UZ.taobao.com,它的业务是把第三方的开发者引入进来,让他们在淘宝提供的环境上开发,包括使用淘宝的域名等,在店铺业务服务的帮助之下,让他们在去建导购网站。这个业务进来之后,我们就有更多的人加入。这段时间我们做了很多工作,第一个是产品化,第二个是把我们整个 PaaS 的运维、弹性这套东西给做起来。这是真正能够让 PaaS 运转起来的、底层的基础支撑系统。
从第二个阶段开始,我们逐渐发现,我们的定位实际上就是去支持淘宝的开放。
淘宝的开放有个特点:需要受控的开放。这些开放肯定都是插入到淘宝整个体系当中去的,比如说店铺里面有模块,UZ 里边有别人写的网站,但是他们都是共同在淘宝或者天猫这样的域名之下。受控的开放有几个点,一个是要保护浏览淘宝网站的用户,保护他们的体验和安全;第二是要保护这些开发者们的数据和安全,不要因为他们经验不够导致他们的数据经常被干掉;第三是要确保淘宝自己的数据安全。
从淘宝业务线的发展可以看到这种特点。比如淘宝最开始做 TOP,后来我们弄了聚石塔,把第三方的程序拿到淘宝的机房去运行。但是还不够,因为他拿到你的机器后还是可以做很多东西。第三步就是我们推出的 PaaS 这样的一些产品,希望能够把第三方应用程序的生命周期都接管过来。接管过来之后,第一是为他们提供更多的服务,第二个是可以做更多的控制。
所以说到 TAE 分几个阶段,我觉得是三个。第一阶段是实验室,通过一些非常重要的实验对重要基础点进行验证和突破;第二阶段是产品化。我们现在属于第三个阶段:发展期。我们认识到自己的定位之后,现在就打着这个旗号在集团内部到处去接业务。
InfoQ:TAE 开发过程中遇到过什么难点?不一定是技术方面的,也可以包括一些业务调度方面的。
林轩:安全肯定是最难的。
(技术细节略)
伯昊:非技术上的难点,就是在推广。
林轩:从业务线做平台性的产品,有优势也有劣势。优势是,做出来如果有合适的业务产品马上可以落地,马上就会有大量业务过来,平台可以不断的成熟,成长会很快。但是劣势也是这个:如果没有业务,就没有资源投入。
伯昊:没有资源投入,就很难进行快速的技术积累。这个是比较矛盾的,有时候就是鸡生蛋,蛋生鸡的问题,这个很痛苦。所以,就看你能不能坚持了。
评论