AICon日程100%就绪,9折倒计时最后一周 了解详情
写点什么

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:005477
用户头像

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

关注

评论

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

悦数图数据库:图 + AI 在金融行业的应用及技术前瞻

悦数图数据库

AI 金融 图数据库实战

WICC · 出海嘉年华倒计时!精彩不容错过,「指南」一手掌握

融云 RongCloud

社交 融云 泛娱乐 出海 wicc

启用Windows防火墙后,FTP传输非常慢

镭速

OS 生成文件目录树

Andy

C语言编程-结构体

梦笔生花

数组 函数参数 6 月 优质更文活动

开源教育与人才|2023开放原子全球开源峰会开源教育和人才分论坛即将启幕

开放原子开源基金会

开源 开放原子 教育与人才

项目汇报的正确打开方式

老张

汇报 向上管理

小小机械臂 带动产业自动化

说山水

数字化转型应该如何去做?(技术篇)

数字随行

数字化转型

Java 致命错误: 在类路径或引导类路径中找不到程序包 java.lang

Andy

模块二:微信朋友圈高性能复杂度

家有两宝

架构实战营 微信朋友圈高性能复杂度

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

BlockChain先知

wireshark分析tcp传输之文件上传速率问题

蓝胖子的编程梦

TCP 网络 Wireshark tcpdump 抓包

SDK轻量化,降低日均耗电量和日均流量

MobTech袤博科技

嘉为蓝鲸荣登广东软件风云榜,获评新技术应用最受欢迎产品TOP10

嘉为蓝鲸

软件 新技术 应用程序

多数据中心助力中企出海全球化经营

用友BIP

中企出海

软件测试/测试开发丨接口测试实战学习笔记

测试人

程序员 软件测试 自动化测试 接口测试 测试开发

解读科学计算助力行业高质量发展|2023开放原子全球开源峰会科学智能分论坛即将启幕

开放原子开源基金会

人工智能 开源 开放原子 科学智能

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

大瞿科技

得物App万米高空WiFi拦截记

得物技术

App wifi 得物 拦截

Why Docker? Why not?

K

Docker 镜像 PaaS #云原生

在金融数据里挖呀挖,GaussDB开出了花

脑极体

数据库

2023-06-01:讲一讲Redis常见数据结构以及使用场景。

福大大架构师每日一题

redis 福大大

鲲鹏DevKit助力通付盾Web应用防火墙产品开发,性能提升45%+

说山水

聊点技术 | 可观测性十问十答

博睿数据

可观测性 智能运维 博睿数据 发展趋势 聊点技术

Authing 结合 APISIX 实现统一可配置 API 权限网关(快速启动版)

Authing

API APISIX APISIX 网关 API 接口

1 行代码开启「密钥检测」,给敏感数据加上防护锁

极狐GitLab

DevOps 安全 DevSecOps 安全左移 密钥检测

自媒体行业红利衰退,大部分自媒体作者将生存艰难

石头IT视角

通义千问预体验,如何让 AI 模型应用“奔跑”在函数计算上?

阿里巴巴云原生

阿里云 云原生 函数计算

瑞云科技CTO赵志杰出席广州广告数字创意峰会并发表演讲

3DCAT实时渲染

元宇宙 实时云渲染 云3D渲染

鲲鹏DevKit助力海通证券高效开发互联网行情系统,性能提升26%

说山水

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