AICon 深圳站 Keynote 嘉宾官宣!共探AI价值转化的实践路径 了解详情
写点什么

InfoQ 专访 eBay 系统架构总监 Tony Ng:聊聊电商网站的架构与安全

  • 2011-12-06
  • 本文字数:2838 字

    阅读完需:约 9 分钟

Tony Ng 是 eBay 的系统架构总监,负责 eBay 平台的技术战略和架构,包括云、Web 服务、内核和消息等。他在本次 QCon 杭州 2011 大会的演讲题目为 eBay 技术平台–掌控十亿级交易数据。在这个演讲中,Tony 首先从宏观的角度对 eBay 的技术堆栈架构进行介绍,然后从支持新用户体验、保证网站可靠性、可伸缩性以及高性能等四个层面,诠释了如何提升开发的生产率。

演讲结束后,Tony 接受了 InfoQ 中文站的专访。

InfoQ:Tony,请您先做个简短的自我介绍吧。

Tony:非常高兴能够来到 QCon。我是 eBay 的系统架构和工程总监 Tony,主要负责系统的整体架构,还有 eBay 技术平台方面的一些总体战略。

InfoQ:在海量数据处理层面,eBay 使用了哪些技术来保证整个网站的可用性不会被拖垮?

Tony:为了处理海量数据,保证数据的可用性,我们使用的关键技术是:数据分区(partioning)。我们首先会看 eBay 现有的这些不同业务领域,然后根据业务领域把数据分别放入不同的数据库里面去。即使是在同一个业务领域里面,我们也会切分数据。举个例子,我们有商品数据库,我们会把商品的 ID 作为主键跨越不同的数据库,这让我们可以把处理的负载分发到不同的数据库中。即使有一个数据库当掉了,也不会影响整个网站,只是这个数据库受影响。

InfoQ:当 eBay 引入新功能时,你们采用了什么样的流程来把这些新功能转移到生产环境中?

Tony:在 eBay,我们有一个名为"实验(experimentation)"的流程。当我们有些新的想法或是功能想介绍给用户使用时,会先把它们放在单独隔离开的地方,并且只让一部分用户先行体验,我们还会针对这些功能设置很多的分析和度量机制,看看这些功能的表现如何,比如用户的交易量是不是因为这些功能上升了,还是这些功能让他们感到困惑。如果新功能表现良好,我们就会把它们发布到正式的生产环境中,但是会以增量方式进行。比如,我们可能会把代码先发布到 5% 的服务器上,然后我们会观察一天,看看性能数据、错误日志等都表现正常;这样我们就可能会增加发布到 50% 的服务器上,然后继续小心翼翼地监控,再发布到所有的服务器上,所以这是一个完全受控的过程,而不会是一锤子买卖。

InfoQ:系统架构师常常要同时面对很多事情、很多问题,在您看来,如何在很多因素之间取得平衡?在面对冲突的时候要怎么处理?

Tony:作为系统架构师,有两件关键的事情要做。第一是做决定。设计架构就是要做出一系列艰难的决定,是未来难以改变的决定,这也是我们之所以需要架构的本质原因。第二件事是权衡。要想在软件系统中拥有一切是不可能的,关键是:对于任何想要实现的系统,要找到你希望系统展现出来的关键特质,可以是可用性、性能、可维护性等等,更重要的是要有优先级,要知道哪些系统特质是最重要的。仅靠系统架构师自己是无法完成这些工作的,你需要跟业务负责人员讨论,帮助他们发现他们到底想要什么。这是架构师很重要的工作,帮助你的客户真正理解他们想要的东西。因为很多时候他们并不是很清楚自己到底想要什么,这是对架构师真正的挑战。一旦有了优先级之后,你就可以使用自己的经验和专业知识来设计系统,来得到你最希望实现的系统特质。

InfoQ:对于 eBay 来说,用户的账户安全一定很重要。你们用了哪些技术来确保欺诈和安全漏洞不会造成危害?

Tony:eBay 对于安全问题非常看重。我们有两个专门的团队处理这个领域的问题。一个称为"信息安全团队",这个团队主要关注基础设施层面和信息层面的安全性。我们有很多安全方面的最佳实践和模式可以应用。我们还有扫描工具,确保代码不会出现漏洞。对开发人员的指导也很重要,因此我们有相关培训,比如如何定义模块,来确保开发人员能够写出安全的代码。第二个专门团队重点关注用户账户欺诈行为。我们有一个非常先进的规则引擎,把它与用户度量指标相结合,用来监控大量的用户账户活动。我们会把用户度量指标和活动信息送到规则引擎中,根据用户过去的行为或我们定义的规则,判断用户是否发生了某些可疑的行为。事实证明:我们可以借此发现用户账户存在的某些欺诈行为,然后采取合适的行动。

InfoQ:eBay 向第三方的开发人员和合作伙伴提供开放的 API,那么如何控制 API 访问的频率和资源使用状况?

Tony:这很重要,我们每天有超过十亿次的 API 调用,网站上超过一半的列表都是通过 API 生成的。所以我们实现了所谓的"流量和速率限制系统",可以在其中查看来自不同 IP 地址、不同应用 ID 标识的应用等各层面的 API 调用。对于移动访问,我们还能识别出不同的设备,我们设定了规则,比如:某些特定的 IP 每个小时只能执行一定次数的调用,如果你想获得更多次访问,你必须注册并获得一个应用 ID,这样你就得传递一个标志过来,以标识你拥有那个应用。根据具体情况差异,不同应用会有不同限制。每个进入 eBay 的调用都要经过这个系统,如果应用超过了对它的限制,我们就可以阻止它的进一步调用。

InfoQ:eBay 也使用了云计算相关的技术,您能否介绍下 eBay 在这方面的策略和实践?

Tony:eBay 使用云计算的主要目标是敏捷性。当有新应用上线或是调整现有应用部署环境时,我们希望能够在几分钟内快速完成,这就是我们的目标。我们还相信:用云可以让我们之前的一些人工过程 自动化,比如新硬件配置、向负载均衡器加入新节点以供应用使用等等。云可以帮我们在部署场景中变得更加敏捷。长期来看,我们也关注效率,因为 eBay 上的流量常常出现峰值状况,因此问题在于是否可以使用那些处于空闲状态的基础设施资源,我们相信云在这方面也有很大潜力。

InfoQ:之前您曾在 Sun 和 Yahoo! 工作过,现在您又担任 eBay 的系统架构总监,您拥有丰富的职业经验,能否为中国的开发人员提供一些关于职业发展方面的建议?

Tony:我想有些东西确实很重要,比如你要关注外面的新技术趋势,不妨参加一两个开源项目,这是学习新技术的好方法。有时候你必须要使用或是修改某些代码,而不是仅仅去阅读文章。现在在美国,越来越多公司举办"Hack Day"活动,开发人员聚在一起,花上一天时间来创建某个应用。我们也鼓励开发人员参与这样的活动,想到某个想法,然后去实现它,创造新东西,这个过程确实可以让人学到很多知识。第三个建议是向一些技术会议或是活动提交一个演讲议题,或是撰写文章、博客,并且重点放在某个领域上,这能让你在演讲或写文章之前,认真思考相关技术,获得更深入的理解;这样还能让业界对你有更多了解。

InfoQ:最后,您能对中国的技术社区说几句话吗?

Tony:能来到这里并遇到这么多中国技术社区的工程师,我很兴奋。在技术领域,这里也有很多有趣的公司,我也很高兴能够跟他们交流经验。从我这几天的对话来看,中国的软件工程师们在开源和新技术方面一点都不落后。我想再次重申:希望大家可以紧跟趋势,回馈技术社区和开源项目,多写文章和博客。在这里遇到的人,让我印象深刻。

注:本采访录音可在这里下载


给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 [email protected] 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2011-12-06 00:005816
用户头像

发布了 479 篇内容, 共 174.1 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

专访美象科技|中国数字孪生50强为何需要3DCAT实时渲染云的赋能?

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

OptaPlanner快速入门-概述

积木编程

帮助中心案例分析|师爷,给我解释解释什么叫降本增效?

Baklib

降本增效 帮助中心

如何使用游戏引擎进行实时渲染和内容创建

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

为什么3D实时渲染很重要

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

从新零售、物流到广告,搞定指标中台就这么简单!

Kyligence

数据分析 指标管理 指标中台

软件测试 | 测试开发 | 提高Android云真机稳定性的方法

测吧(北京)科技有限公司

测试

全网首发!马士兵内部共享—1658页《Java面试突击核心讲》

Geek_0c76c3

Java 数据库 开源 程序员 开发

Trending热榜关闭前,我把Github今年最火Java面试题汇总扒下来了

Geek_0c76c3

Java 数据库 开源 程序员 开发

一加是OPPO的子品牌?我来说说我的看法

Geek_8a195c

好的,BFS,学会了

掘金安东尼

前端 9月月更

Baklib+伙伴云+企微会话存档,打造伙伴云帮助中心运营体系

Baklib

产品经理必看的高效产品文档撰写指南

Baklib

产品 产品经理 文档

盘点团队在线协作文档工具

Baklib

在线协作文档

一文读懂TDengine的三种查询功能

TDengine

数据库 tdengine 时序数据库 企业号九月金秋榜

ESP32-C3 学习测试 蓝牙 篇(三、认识蓝牙 GATT 协议)

矜辰所致

蓝牙 ESP32-C3 9月月更 GATT

全方位助力数据科学组织协同&个人研究:ModelWhale 产品功能介绍与版本选择指引

ModelWhale

云计算 科技 数据科学 编程建模 组织协同

为了进大厂!吃透了各大厂最新 3000+Java 面试题啃完面试肯定妥了

Geek_0c76c3

Java 开源 程序员 架构 开发

面试整理的45W字Java真题和答案详解(含核心考点及6家大厂真题)

Geek_0c76c3

Java 数据库 开源 程序员 开发

企业IT运维开发一体化解决方案

力软低代码开发平台

ESP32-C3 学习测试 蓝牙 篇(二、蓝牙调试APP、开发板手机连接初体验)

矜辰所致

ESP32-C3 9月月更 蓝牙APP

哪7个场景影响研发效能?

LigaAI

敏捷 LigaAI 企业号九月金秋榜 #敏捷开发 #程序

Java岗史上最全八股文面试真题汇总,堪称2022年面试天花板

Geek_0c76c3

Java 数据库 开源 程序员 开发

开发者有话说|刚毕业的“00后”,歪打误撞进入了SAP行业

暮春零贰

个人成长 9月月更

Apache APISIX 集成 Elasticsearch 实现实时日志监控

API7.ai 技术团队

elasticsearch API网关 APISIX 网关

华为应用市场审核指南解读课程上线,面向开发者讲解应用审核2022年更新要点

最新动态

借助iMazing工具重新安装或升级 iOS系统

淋雨

ios iphone

什么是实时渲染,3D实时渲染的优缺点

3DCAT实时渲染

云计算 元宇宙 实时渲染 实时云渲染 云VR

Vue3入门指北(五)条件渲染

Augus

Vue 3 9月月更

当下企业数字化转型,PaaS是基础解

ToB行业头条

联通研究院霍龙社博士深度解析“AI项目到底适不适合开源”

OpenI启智社区

人工智能 OpenI启智社区 AI开源 CubeAI智立方

InfoQ专访eBay系统架构总监Tony Ng:聊聊电商网站的架构与安全_QCon_郑柯_InfoQ精选文章