OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

GOTO Berlin: 使用自己的公共 API 的问题

  • 2013-10-23
  • 本文字数:1268 字

    阅读完需:约 4 分钟

Soundcloud 的工程总监 Phil Calcado 在最近的 GOTO Berlin 大会上分享自己管理和构建大型 Rails 应用程序的经验时提到:使用自己的公共 API 可能是一种挑战。

Soundcloud 发展非常迅速,在他的演讲中 Phil 着重介绍了他们在创建一个新的网站时(已于 1 年前发布)所遇到的一些问题。

Soundcloud 开始是一个 Ruby on Rails 应用程序,6 年间它不断的扩展变得非常混乱。很多问题归咎于基础设施,一个使用 MySQL Memcached 的大型 Rails程序

2010 年他们开始考虑一个新的平台。其中的一个想法来源于 Twitter,在他们发布自己重新设计的架构的时候,该架构让Soundcloud 团队确信他们要构建一个相似的应用程序;一个单独的页面JavaScript 应用程序,使用一个公共的API 与后端通信。最终他们开始构建一个新的网站,很多JavaScript 技能娴熟但是缺少一些后端经验的前端开发者基于现在的公共API 用了6、7 个月的时间构建了一个新的Web 网站。

他们最后构建了一个非常稳定的应用程序,但是在即将发布之前他们与Twitter 进行了一次谈话,并且提到他们要发布一个新的网站,新网站受到了新的Twitter 架构的启发,使用了和Twitter 完全相同的想法。对于这个问题来自于Twitter 的人员回答说,他们已经发现新的设计并不是一个好想法。实际上,之后Twitter 已经决定将大部分实现退回到服务器端渲染。

Twitter 人员的回答将团队放到了一个非常有趣的位置,这是一个重要的集成,因此他们应该怎么做,继续还是取消?最后他们决定继续。因为了解 Rails,所以他们确信第一件要出问题的事情会是 Rails,所以他们预分配了很多节点。但是在新设计中一个页面的请求从 3 增长到了超过 100,第一件出问题的事情是他们的高可用性代理。在解决了这个问题之后,memcached 又出问题了,之后是 Rails 和 MySQL。他们现在认识到他们的基础架构有问题。

他们很早就意识到的一个问题是不能重写整个应用。要保留 Rails,因此他们需要一个快速 API,一个能够尽快处理大量请求的 API。他们将大型 Rails 应用程序分割成了更小的部分,并且引入了服务的思想。但是有一个惊喜是,他们依然拥有同样的整体性能,只是从数据库转移到 HTTP 上有性能瓶颈。结论便是他们需要更加快速的 Rails。

仔细看看代码他们发现了很多并发的空间。Rails 不喜欢并行或者并发,因此他们尽量使用 Finagle 这样的工具保持同步并设法获得并行和并发性。他们大大降低了负载,并且让结果的返回更加快速。

他们现在能够更快地服务请求。但是每一个页面依然会产生很多请求,为了查找减少请求数量的方法,他们决定尽力实现一个自定义 API,通过一个请求返回几个页面的数据。为了实现这个目的,他们最终使用了三个专用的 API,分别用于移动、桌面和合作伙伴。

他们现在面对的最有趣的设计挑战是如何建模它们的 API。目前开发者喜欢将一个更加粗粒度的 API 用于移动,将一个更加有体验的 API 用于桌面,目前有两个分离的后端。

2013 年的 GOTO Berlin 大会是 GOTO 大会首次在 Berlin 举行,本次大会有超过 400 位参会者和大约 80 位讲师。

查看英文原文: GOTO Berlin: Problems Using Your Own Public API

2013-10-23 09:042188
用户头像

发布了 321 篇内容, 共 115.9 次阅读, 收获喜欢 18 次。

关注

评论

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

广汽传祺E9上市,3DCAT实时云渲染助力线上3D高清看车体验

3DCAT实时渲染

云渲染 实时云渲染 汽车三维可视化

StoneDB-8.0-V2.1.0 企业版正式发布!免费公测活动正在进行中,快来参加!

StoneDB

MySQL 数据库 HTAP StoneDB

使用虚拟合成数据训练对象检测模型

3D建模设计

人工智能 机器学习 合成数据

一文看懂MySQL 5.7和MySQL 8到底有哪些差异?

树上有只程序猿

MySQL MySQL 5.7 MySQL 8.0

项目管理必备神器!10款好用的在线看板工具推荐。

彭宏豪95

项目管理 效率工具 软件推荐 在线白板 看板工具

一图看懂CodeArts Release三大特性

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云CodeArts

JProfiler 14 for Mac(Java开发分析工具)永久激活版

iMac小白

JProfiler 14激活版 JProfiler 14下载 JProfiler 14 mac

获评AI基础软件「领导者」,九章云极DataCanvas公司技术创新能力最强!

九章云极DataCanvas

如何使用Java调用商品详情API

Noah

AutoCAD 2023 for Mac(cad2023) v2023.2.1注册激活版

mac

苹果mac Windows软件 AutoCAD 2023 三维设计软件 cad2023

【宝藏工具】开源组件信息一键查询,快速获取组件来源、版本、漏洞补丁、推荐版本!

网安云

英特尔与阿里巴巴深化合作,以软硬件创新全方位加速“芯经济”发展

E科讯

软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

测试人

软件测试

3分钟教你linux服务器无损迁移备份Jenkins

javaNice

Java Java’

理论+应用,带你了解数据库资源池

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 数据池

Tower for Mac(Git客户端) v10.1.1注册激活版

iMac小白

Tower下载 Tower破解版 Tower mac

网站加速神器:国外服务器让你的网页飞起来

一只扑棱蛾子

国外服务器

DAPP链上质押挖矿分红开发原理

西安链酷科技

区块链 软件开发 dapp 挖矿

喜讯!INFINI Easysearch 在墨天轮数据库排名中挺进前30!

极限实验室

数据库 easysearch 极限科技 数据库排名 搜索型数据库

低代码助力破解IT开发失败的概率

互联网工科生

软件开发 低代码 IT开发

揭秘!自动化测试效率提升30%如何达成

HarmonyOS开发者

亚信科技斩获“鼎新杯”多项大奖!AntDB数据库在信创赛道再创佳绩

亚信AntDB数据库

AntDB数据库

云算力挖矿系统开发 质押挖矿、双币系统

西安链酷科技

加密货币 dapp 挖矿 云算力 交易所

15种稳定扩散模型的技术示例

3D建模设计

Stable Diffusion 稳定扩散 自动纹理工具

Tower for mac(Git客户端软件) v10.1.1完整激活版

mac

Tower 苹果mac Windows软件 Git客户端软件

能力惊艳!DingoDB多模向量数据库完成首批向量数据库产品测试

九章云极DataCanvas

微软曝光!ChatGPT 真实参数只有 200 亿?大模型评测基准已经失去意义?丨 RTE 开发者日报 Vol.76

声网

使用稳定扩散和SAM修改图像内容

3D建模设计

AI纹理 稳定扩散

Macos必备Redis桌面管理工具:Redis Desktop Manager for Mac中文版 支持M1

影影绰绰一往直前

Mac电脑温度监控软件TG Pro for mac完美激活版

影影绰绰一往直前

TG Pro for mac TG Pro下载 TG Pro 破解、

云图说|新一代Serverless应用托管引擎——CAE

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云Serverless

GOTO Berlin:使用自己的公共API的问题_SOA_Jan Stenberg_InfoQ精选文章