写点什么

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

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

关注

评论

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

闲鱼商品列表API技术文档

tbapi

闲鱼API 闲鱼商品详情接口 闲鱼商品列表接口 闲鱼数据采集

直击WAIC | 百度袁佛玉:加速具身智能技术及产品研发,助力场景应用多样化落地

百度Geek说

高效掌控全局,安全运筹帷幄:鸿蒙电脑大屏理财,商务精英必备!

最新动态

手把手玩转本地大模型:Ollama+DeepSeek+Dify 零门槛全流程指南

测试人

软件测试

突破上下文限制!8大AI记忆优化策略全解析

聚客AI学院

人工智能 agent LLM 大模型落地 AI 智能体

如何安装DashVector向量检索服务SDK

DashVector

数据库 大数据 AI 大模型

智能汽车,不只是造出来的,更是“拟”出来的

DevOps和数字孪生

智能汽车 数字样机

重复文件查找工具:DataSecurity Plus 全面提升企业文件管理效率

运维有小邓

重复文件查找工具

KWDB 分布式部署过程与 deploy.sh cluster -i 命令分析

KaiwuDB

Gemini 2.5模型重大升级:更智能的AI技术

qife122

深度学习 AI

2025-07-31

Joseph295

重塑AI算力底座!阿里云服务器操作系统V4正式发布

新消费日报

LazyLLM 教程 | 第 2 讲:10 分钟上手一个最小可用 RAG 系统

商汤万象开发者

行业预测:海外舆情监测系统将成为下一个出海必备工具

沃观Wovision

出海企业 海外舆情监控 沃观Wovision 舆情监测系统

AWS高级解决方案架构师黄海波:GenAI 时代非结构化数据处理的实践与趋势洞察

数新网络官方账号

慢查询日志在性能优化中的价值

电子尖叫食人鱼

性能优化

稳居第一,实至名归!

天翼云开发者社区

云服务

全球AI大模型综合排名(Top 20)

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

人工智能 软件测试 测试开发

Coze开源本地部署教程

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

人工智能 软件测试 测试开发 Coze开源

智能化测试基础架构

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

人工智能 软件测试 测试开发 agent

微帧GPU视频硬编优化引擎:面向人工智能大时代的AI算法与硬编协同优化方案

微帧Visionular

基于深度学习的YOLO框架实现金属工业表面缺陷识别|开箱即用系统级项目(源码+模型+界面)

程序员Geek

人工智能

黑客正积极利用PaperCut旧漏洞

qife122

网络安全 PaperCut

WAIC 2025重磅!天翼云发布算网一体服务!

天翼云开发者社区

人工智能

多分支注意力机制提升表格数据建模效果

qife122

机器学习 表格数据

基于 Amazon Nova 实现优化呼叫中心导航场景

亚马逊云科技 (Amazon Web Services)

SAKE:基于激活导向的知识编辑技术

qife122

知识编辑 最优传输

一个普通IT人的20年奋斗:从小白到编程教育布道者

编程启航栈

技术人成长

研发效能的下一站:AI是否会让你“无事可做”?

思码逸研发效能

研发效能 效能度量 效能管理 智能编程 思码逸

不要傻呵呵等金九银十了!

王磊

孙宇晨的而立之年:争议未远,传奇已立

极客天地

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