2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

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

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

关注

评论

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

云效流水线 Flow 是什么?为什么选择云效「Flow」

阿里云云效

阿里云 云原生 持续交付 研发 云效流水线 Flow

关于在hive任务中number of reducers的探讨

编程江湖

Linux内核权限提升漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

《中国金融科技与数字普惠金融发展报告(2022)》发布 十大趋势研判未来行业发展

BeeWorks

机器使用成本下降 50%,TDengine 在同程旅行基础监控中的实践

TDengine

数据库 tdengine

不后悔的星期四,明道云首次全网公开直播零代码训练营

明道云

字节跳动基于 Apache Hudi 的多流拼接实践

字节跳动数据平台

字节跳动 实时数仓 Hudi

Apache Shiro Realm实战及认证授权源码解读

编程江湖

协同·转型·智慧,WorkPlus移动平台帮助企业走好数字化转型之路

BeeWorks

长治测评机构公司有几家?是正规的吗?

行云管家

网络安全 等保 等保测评

阿里云智能编码插件,Cosy文档搜索上新了

阿里云云效

阿里云 代码管理 代码库 阿里云智能编码插件 Cosy

私有化部署是什么意思?企业私有化部署的几种类型和利弊分析

BeeWorks

减少计算、简化架构——TDengine在灌区信息化平台中的应用

TDengine

数据库 tdengine 物联网

视觉Transformer中的输入可视化方法

百度Geek说

后端

区块链中的共识机制简介

中原银行

区块链 中原银行

学生管理系统毕业架构设计

天琪实刚亮

「架构实战营」

星河标杆案例 | 洞见科技与智慧齐鲁「基于隐私计算的省级公共数据开放平台建设」实践

洞见科技

隐私计算 数据流通

分布式事务揭秘

中原银行

分布式 分布式事务 云原生 中原银行

基于Prometheus的企业级监控体系探索与实践

中原银行

分布式 微服务 云原生 Prometheus 中原银行

华为公布终端云最新数据:终端全球月活用户超过7.3亿

叶落便知秋

华为

固定资产管理系统的主要功能和优点

低代码小观

低代码 企业管理 资产管理 企业管理系统 CRM系统

一起来DIVE!在基础软件知识海洋遨游,还能赢取万元奖品!

InfoQ写作社区官方

热门活动 DIVE

Apache Flink 在翼支付的实践应用

Apache Flink

大数据 flink 编程 流计算 实时计算

优酷播放黑科技 | 自由视角技术的全链路策略与落地实践

阿里巴巴终端技术

客户端 音视频技术 视频技术

NFT游戏NFT交易系统开发技术

薇電13242772558

NFT

网络编程入门从未如此简单(三):什么是IPv6?漫画式图文,一篇即懂!

JackJiang

网络编程 ipv6 ipv4 即时通讯IM

《2021年IT行业项目管理调查报告》重磅发布!

禅道项目管理

项目管理 DevOps 加班

下一代对话系统中的关键技术

硬科技星球

Flink CDC 2.2 正式发布,新增四种数据源,支持动态加表,提供增量快照框架

Apache Flink

大数据 flink 编程 流计算 实时计算

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