BBC 云端重建,迁移至 AWS

来源: OSCHINA
2020-11-09

没投过票?千万别说你来过 OSC

https://www.oschina.net/project/top_cn_2020

英国广播公司(BBC)方面宣布,其设计和工程团队已经对 BBC 网站进行了全面的重建。目前,BBC 网站大部分已经迁移到了 AWS(Amazon Web Services),约有一半的网站已基于 AWS Lambda 呈现。

在过去的几年中,我们在 BBC 的设计与工程团队中已经完全重建了 BBC 网站。我们用一个为云计算而设计和构建的新网站取代了在我们数据中心托管的网站。大多数为网站提供动力的工具和系统也已经转移。我们采用了现代的方法和技术,比如 serverless。我们更新了设计、方法和编辑工作流程,为未来做好准备。数百人参与其中,历时数年。而这一切都刚刚完成。

架构负责人 Matthew Clark 称,就像科技一样,如果你站在原地不动,你就会倒退。他表示,就在前不久,BBC 网站的大部分内容还都是用 PHP 编写的,托管在伦敦附近的两个数据中心。“这在 2010 年的时候是一个明智的技术选择;但在现在却不是。”

因此,在过去的几年中,重新创建 BBC Online 一直是他们的战略。现如今,BBC 网站几乎每个部分都已在云上重建。Clark 称,他们已经利用了云带来的许多好处,例如几乎立即配置新服务的灵活性。同时还已经使用了最佳实践的工具和技术,例如 React 框架和 DevOps 模型。

Clark 在介绍重建的基本原理时表示,在流量管理层方面,网络流量最初会进入一个全球流量管理器(GTM),这是一个基于 Nginx 网络服务器的内部解决方案,每秒处理数万个请求。但由于规模巨大,并且需要提供极低的延迟,因此其部分在内部运行(表明 BBC 并没有完全放弃数据中心),部分在 AWS 上运行。而对于网站的某些部分,他们有时会使用第二个流量管理层,这些服务托管在 AWS EC2 上。

网站渲染层方面,BBC 的绝大多数网页都是使用 React 在 AWS 上呈现的。Clark 称,已经有越来越多地渲染发生在 AWS Lambda 上。每秒约有 2,000 个 lambdas 运行,以创建 BBC 网站;他们预计这个数字还会继续增长。

他指出,之所以选择 Lambda 是因为 Lambda 的伸缩性比 AWS Elastic Compute Cloud(EC2)上的 VMs 要更好。当有重大新闻事件发生时,网站的流量水平会立即上升;Lambda 可以处理这种情况,而 EC2 的 auto-scaling 则无法做到。

BBC 网站重建的另一个方面是请求内容的逻辑,Clark 称之为 "业务层",它的工作是为网站渲染层提供一个(RESTful)API,精确地提供创建页面所需的正确内容。该团队战略的一个关键部分则是简化创建业务层的过程。他介绍道,一个名为 "Fast Agnostic Business Layer"(FABL)的内部系统将允许不同的团队创建自己的业务逻辑。这样既能满足不同的需求,又能共享同一个系统,比如访问控制和缓存。

更多基本原理介绍可查看博客内容。

对于 BBC 网站的这次重构,外界的看法如何?

Hacker News 上有一个用户评论称,他认为在 Lambda 上运行一个像 BBC 这么大的网站,简直是对政府补贴预算的过度浪费。并表示,BBC 此举绝对是疯了,这就是 serverless 错误应用的一个典范。

另一位经营一家名为 News Sniffer 的头条聚合网站的用户则表示,生成的 HTML 并不 clean。"我运行着 News Sniffer 项目,该项目要解析 BBC 新闻页面,几周前我就知道这次推出的消息,当时 HTML 都完全改变了格式,我的解析器也坏了。顺便说一句,新的 HTML 比以前复杂多了,解析起来也难多了--我知道目的不是为了帮助解析内容,但看到它的结局,我还是很难过。"

此外,还有一些人对 Clark 尚未解答的问题感到好奇。比如:从企业内部转移到 AWS 的成本影响是什么、Lambda 与使用 EC2 的成本影响是什么、如果缓存和内容交付网络按预期工作,为什么每秒需要 2000个 lamdbas?对此,TheRegister 已经去信给 BBC,以询问更多细节内容,但暂时还未收到任何回复。

展开阅读全文
1 收藏
分享
加载中
精彩评论
这就是 serverless 错误应用的一个典范
2020-11-09 10:40
1
举报
最新评论 (3)
BBC 应该是大部分页面都是静态生成的,为什么 serverless 和流量产生会一起判断?
2020-11-09 16:15
0
回复
举报
BBC在lamba里用的什么语言?react?
2020-11-09 15:43
0
回复
举报
这就是 serverless 错误应用的一个典范
2020-11-09 10:40
1
回复
举报
更多评论
3 评论
1 收藏
分享
返回顶部
顶部