原文:Your Parse backend was always a bad idea 作者:Jameson Quave 译者:Lanford3_3
也许你还不知道,不久前 Facebook 关闭了它所拥有的一个 BaaS(Backend as a Service)服务--Parse。这让许多开发者都感到了一丝失落,甚至感觉被 Facebook 背叛了。在 Parse 关闭前有人截取了它的主页, 我把这张截图发到了 Twitter 上--千言万语,尽在此图中:
我不需要再强调些什么,他们自己已经说了: “千千万万的开发者信赖着我们”。看看他们在图片上所展示的东西,你就能明白为什么开发者们都觉得遭到了背叛。对于 React Native, React JS, HHVM, Relay, 或者任何其他的 Facebook 技术,在知道了 Facebook 很可能随意地决定停止对它们的支持之后,还有人会继续使用它们吗?
确实,这些都是开源的,开源社区能够接管它们,但是开源项目需要维护者,有企业作为后盾将对其有极大助益。Facebook 已被证明是个无法信任的对象,但是任何曾经使用过 Facebook 或是其他任何第三方社交媒体 API 的人,对此都应该感到毫不意外。我稍后会再做进一步阐述,现在让我们改变焦点,谈一谈房间里的另一头庞然大物,Twitter,以及更重要的 Twitter Fabric, 一个拥有着 Crashlytics 并集成了大量由 Felix Krause 所开发的优异功能的移动应用开发平台。
但为了理解 Twitter 过去是如何对待他的开发社区的, 我觉得我们首先得聊聊一个叫 Meerkat 的小应用。我保证我们会回过头来谈论 Parse 和 Facebook, 但是现在要讲的故事也可谓是异曲同工,所以耐心点,听我说。
先来点背景资料:我生活在德州奥斯汀, 这就意味着每年的SXSW大会 1都能在前排拿到个座位,面对那些接下来一年将会壮大的创业公司。 Twitter, Foursquare, GameSalad, 甚至包括 Four-Hour Work Week 全都曾在 SXSW 上亮相过。这些是比较成功的部分例子,但每年都有大量的年轻而生气勃勃的创业者来到奥斯汀展示他们的作品,希望它能在与会者中一炮而红。Meerkat 就是 2015 年 SXSW 会议上毋庸置疑的胜利者。
总的说来,Meerkat 是一个 P2P 视频直播平台,人们能直接通过他们的 iPhone 把直播视频发送给其他用户,这款应用 在 SXSW 上刮起了一场风暴。 在去年的 SXSW 大会期间,漫步奥斯汀,你会发现到处都是印着 Meerkat 的衣服,大佬们都在直播音乐,SXSW 会议,他们的午餐或者是他们正在做的任何事儿。但突然间,一切都停下来了,出于一个非常特殊的原因:
在 Meerkat 起步的关键时刻,Twitter 封禁了他们的 API 接入权限,而在釜底抽薪之前两小时才对他们做出通知。
如果你熟悉 iOS 应用商店的流程的话,你应该能理解为什么这算是个大问题。想想看,即使 Meerkat 的员工们能够有办法重写整个应用,使之不再依赖于 Twitter 的 API,他们也无法在两小时内让这次更新通过应用商店的审核……实际上这大概要花费三周的时间。
在 Meerkat 起步的关键时刻,Twitter 封禁了他们的 API 接入权限,而在釜底抽薪之前两小时才对他们做出通知。
就个人而言,我并不感到惊讶,但是许多人都在困惑,为什么 Twitter 搞这么一出...是不是 Meerkat 违反了 API 使用协议?还是说他们做了什么不法勾当?
好吧,并非如此。
事实上,让 Twitter 决定妨碍这个近年来最为成功的,基于 Twitter 的应用的根本原因是:Twitter 在自己的产品线上有个 Meerkat 的竞品,名为 Periscope, 在此我拒绝为之添加链接。
就这样,故事讲完了,现在 Twitter 又在请求开发社区的信任了。 唉……
看吧,我告诉过你我们会回到 Parse 的!
考虑到 Twitter 和 Facebook 从根本上说只是社交媒体的两面,似乎对我来说,不管信任他们中的哪一个,后果都是相似的。 每当我思考一个技术公司将如何为未来谋划时,我总是重复一句真言:“向钱进”。 这通常能够告诉你,大公司,特别是那些股票公开发行的上市公司(Twitter 和 Facebook 都属此列),为了未来的发展将会作何行动。美国的上市公司都得用每季的财报来向他们的股东交待,有时他们的顾客和(或者)他们的合作伙伴会因此蒙受损失。当我看到 Parse 的“免费服务”有着如此高的门槛时,我真的感到十分担心。在我看来,似乎 99% 甚至更多的应用都从未能跨过那道门槛,而这是他们此前花点钱就可以做到的。当 Facebook 推出他的开发者工具,特别是 BaaS 服务的时候,他到底打着怎样的算盘?我觉得答案应该是十分明了的:**他们想要你的数据,然而这被证明一文不值。**所以他们决定不再在 Parse 上花费任何时间。他们无法通过为成千上万的开发者们提供一个免费的后端服务来盈利,所以他们关停了这个服务。用 Facebook 自己的话来说就是:
能够帮助如此多的你们开发出伟大的移动应用,我们感到非常骄傲,但是我们需要把资源集中到其他地方了。
翻译一下:“你们没让我们赚够钱啊”
Facebook 通过广告业务来获取他的全部利润,正如 Twitter, 正如那超越了 Apple 的,目前世界上市值最高的公司--Google。实际上,只有一个主流平台提供商不是通过广告业务来获取大部分利润的,那就是 Apple。
今天早间时候,我发了这条推:
(有人问我,在他们的代码中应该如何替换 Parse: 如果不亲自构建、管理你的服务端代码,你的后端将时刻处于危险之中。)
确实是这样,你真的不能盲目地信赖这些社交媒体公司并把后端交给他们。你必须向钱看,来找出这些家伙掺和进来的动机。如果他们的动机不是通过给你提供良好的服务以获取利润的话,他们应该不会驻足太久。如果你是一家创业公司的创始人或 CEO 的话,这也是分析你自己事业的一个好方法。在你和任何人共事的时候,你必须确定他们的财务动机与你一致,否则你们终将会离心离德. 这同样适用于选择雇员,联合创始人,合作伙伴和提供商等等。
在 Facebook API 的早期阶段,你能够轻松地获取一个用户的联系人列表。也正因此产生了大量来自 Facebook 游戏的垃圾邮件,并促成了 Farmville 的崛起。但后来 Facebook 觉得他们不再喜欢这样了,所以他们收回了这项权限, 而这让许多应用以及 Zynga 的股价都蒙受了损失。让我们严肃点,看看这项决定对 Zynga 的股价产生了怎样的影响
如果你的事业依赖于一个 app, 那么你的后端会是一项你必须牢牢把控的至关重要的商业资产。 Salesforce 及其他基于云的企业花费了近十年才成长为大公司,而即使在今天,他们中的大部分都还在使用软件的现场托管版本。其原因在于,在一项发展良好的事业中,你得把握所有关键事项。这将增加维护费用及最初部署开销,但倘若不这样做,你的事业将依托于那些总是心血来潮又难以信赖,还挖你数据来为他们广告业务服务的家伙。你愿意让这些家伙控制你的服务端?你对 Facebook, Twitter 和 Google 是有多信赖啊?
要为你的移动应用提供一个稳定而又在你掌控之中的后端,唯一正解就是你自己去构建一个。我知道这听起来有点困难,但是用 Ruby on Rails 或者 NodeJS 做出一个简单的 API 来为你的移动应用服务真的没那么难。
坦白说,写个 NodeJS 应用,拿些 node 模块来做简单的 API 发布,再用 MongoDB 数据库撑起这一切,就和 Parse 后端以及他基于 javascript 的事件差不了多少了。如果这听起来真的很难,那就花上几个小时读一读网上的一些教程,你就会明白自己来搞定这些会有多简单。还有个替代方案,你雇我的公司就行了,做这些我们已是轻车熟路(不要脸的宣传)
如果你真的雇了一个提供商来建立你的后端,请确保拿到源代码以及用于把它加载到任意你所需要的服务器的必要工具。利用 Docker 是个不错的方式,它包含了一个应用所需要的所有环境,而像 Heroku 这样的服务也让部署 Rails 应用变得简单。
一个有趣的事实: 在我写这篇文章写到大概 95% 的时候,我插入的讽刺推文破坏了所有格式,所以我不得不重整这篇文章的格式。
Footnotes
-
西南偏南(South by Southwest,简称:SXSW)是每年在美国德克萨斯州奥斯汀举行的一系列电影、交互式多媒体和音乐的艺术节与大会。--译者注 ↩