最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

App 后端服务,你是选择 AWS 还是 Firebase?

  • 2020-03-02
  • 本文字数:2408 字

    阅读完需:约 8 分钟

App后端服务,你是选择AWS还是Firebase?


我开发原生 Android 应用程序有很长一段时间,最近开始用Flutter开发移动应用程序,并同时使用Firebase和 AWS 作为后端服务。但最近,我不得不为一个移动应用程序找到一个解决方案,这花费我很多时间来选择合适的后端服务。


那 App 的后端服务,你是选择 AWS 还是 Firebase。当然,并不是说AWS就比 Firebase 好,或 Firebase 比 AWS 好。正确的问题应该是:哪种解决方案最适合我的需求?


在此,我分享自己的观点和理解,或许能帮你选择正确服务。


1.服务共同点

核心功能有:


  • 身份验证

  • 推送通知

  • 存储

  • 托管

  • 分析


这些功能,它们都有。因此,你可以用这些平台轻松部署无服务器解决方案。

2.怎样整合后端与应用程序?

集成这些服务最普遍的方法是使用它们的 SDK,但是这符合你的需求吗?

Firebase

Firebase 为 Android、iOS 和 Web 提供 SDK,因此,作为前端开发人员,你可以轻松构建数据驱动的应用程序,而不必受制于后端技能。


Firebase 还有一个 REST API,你能用它构建自己的自定义 API(根据需求)。

AWS

AWS 为移动开发提供一种非常好的解决方案AppSync,你可以把它集成到你的 Android、iOS 和 React Native 中。


AWS AppSync 还未提供对 Flutter 的官方支持,不过,你可以看下这里


如果你想使用 Flutter 开发前端,就必须创建自己的 API。

建议

  • 考虑解决方案的复杂性和业务需求,并考虑可伸缩性,决定是否要创建 API。

  • 如果你希望拥有一个 API,那么就用不到 SDK 了。另外,对于较大的项目,拥有一个 API 更有意义。

  • 如果你的解决方案很简单,并且不想在 API 上投资,那么选择提供 SDK 的服务/前端框架,以便能直接将后端集成到你的前端。

3.双方的各自优势

Firebase 和 AWS 各有优势,哪个更适合你。

AWS

1. 设置不同环境


在 AWS 中,用于开发、测试和生产的不同环境更加“优雅”。


当然,你也能在 Firebase 中这样做,但必须建立不同项目,而这需要更多时间。


2. 持续部署


如果你用过 Netlify 之类的服务,那么 AWS 为持续部署提供另一种优雅的解决方案。同样,你也可以使用谷歌云来实现 CD,但它需要更多配置。


3.GraphQL


面向移动应用程序的 AWS Amplify SDK 与GraphQLApollo紧密集成。


4. 选择数据库


在后端用哪种类型的数据库,完全由你控制,而 Firebase 只提供 NoSQL 数据库。


5. 单包解决方案


AWS 提供应用程序可能需要的所有服务。因此,AWS 是一个云解决方案,你可以完全依赖它来满足所有需求。


如果整个后端都在一个地方,这会更容易理解和维护。

Firebase

1. 专用数据库


Firebase 提供两种专用数据库服务:Cloud Firestore 和 Realtime Database。这两个数据库都是 NoSQL 数据库,因此,你在部署数据驱动的应用程序时不必太操心数据库设置和查询编写。


只要你的需求和要求比较简单,并且知道它未来不会变得更复杂,那么你就可以使用 NoSQL 数据库。


2. 可调用的函数


得益于 Firebase 云函数,你可以创建云函数并通过 URL 设置触发器,以便将侦听器写入数据库。


这些函数类似于 AWS Lambda,但是从应用程序触发一个 Lambda 需要你设置一个 API 网关并添加授权逻辑,这使得实现起来有些困难。


3.质量控制服务


Firebase 提供很多服务来监控和保证应用程序的质量。这些服务包括:


  • 动态链接:将用户导航到你应用程序的正确位置,无论它是否已经安装。

  • 远程配置:使用服务器端配置自定义并试验应用程序行为。

  • 测试实验室:跨设备测试 App。

  • 应用内消息传递:发送用户参与活动。

  • 分析:帮你规划未来的发布和用户参与策略。

  • ML Kit:在应用程序的前端或后端为你的解决方案添加机器学习功能。


4.平台定价(AWS vs Firebase)

这两个平台的价格都很有吸引力,甚至还有一个免费档,所以你无需为任何东西付费,除非你有相当数量的活跃用户。

AWS

AWS 掌握其服务的定价,他们以便宜得多的价格提供许多很棒的服务。随着时间推移,他们实际上能将服务价格降低 80%以上。


这就是为什么,你会发现 AWS 比 GCP 更便宜。对于构建实时应用程序,AWS 提供了相对昂贵的DynamoDB


对于云函数,AWS 提供的服务价格是 Firebase 的一半。

Firebase

虽然 AWS 的某些服务更便宜,但 Firebase 提供一些完全免费的服务,比如:


  • 用户认证——通过FirebaseAuth,等同于AWS Cognito

  • 推送通知——使用 Firebase 云消息传递,相当于 AWS 中的简单通知服务。


对于构建实时应用程序,与 AWS 相比,Firebase 的设置成本似乎要低得多,也更容易。Firebase 负责数据的实时同步,你无需过多操心。


随着用户数量的增加,Firebase 显然是构建实时应用程序的更好选择。但是如果不小心优化你的查询,Firebase会给你寄来一张3万美元的账单


顺便说一句,谷歌在了解发生的事情后,已经放弃一些应用场景。有些东西比平台定价更贵……

5.时间和人力

这是一个需要考虑的重要因素,因为你将需要这些资源来设置、构建和维护应用程序架构。

Firebase

Firebase 非常简单,容易上手。实际上,前端开发人员可以创建和维护整个后端,只需要一点设置方面的知识。


对于创建实时应用程序,Firebase 处理了大量的复杂性,并为你提供一个非常强大且易于使用的 SDK,帮你节省大量时间,而时间就是金钱。

AWS

因为 AWS 提供的服务是 Firebase 的十倍,所以它的使用和维护也要复杂十倍。我想说的是,与 Firebase 相比,AWS 有一点学习曲线。


对于创建实时应用程序,你需要搭配使用 GraphQL API 和 DynamoDB 实例(同样是一个 NoSQL 数据库),并且你还必须设置 API 和数据库,对于一个简单的实时应用程序来说,这似乎显得有些多余。

最后的思考

Firebase

  • 易于设置、使用和维护。

  • 需要你做的决定更少,非常适合简单的应用程序。

AWS

  • 提供更大的灵活性,这对构建大型、复杂的应用程序有很大帮助,但对简单的应用程序来说可能有些多余。

  • 一个潜在的解决方案可以满足你所有的应用程序需求。你可以构建一个整洁打包的解决方案,但是其可能成本更高。


我希望这能帮你做出正确决定,并在尝试构建应用程序时提出更好的问题。


英文原文:


Should You Use AWS or Firebase For the Back end of Your Mobile App?


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-03-02 07:006729
用户头像

发布了 688 篇内容, 共 397.8 次阅读, 收获喜欢 1498 次。

关注

评论 4 条评论

发布
用户头像
和Firebase与AWS提供的服务比,首选Azure PaaS (1天从小白到大师的学习路线)。进阶后再选Kubernetes (我选择Azure Kubernetes Service)。

Firebase不一定比aws好,反之亦然。但Azure PaaS确实绝对性的比这两个好(不过只限定在.net core和node.js)。关于数据库,网络安全,存储服务,数据处理,分布式管理,数据分析等等等等基本用的到的所有功能,Azure PaaS的学习成本是1天学会所有需要的技术。
2020-03-02 12:12
回复
选择Kubernetes只针对APP的运行~ 其他的PaaS服务不建议用Kubernetes。前列建议使用Azure DevOps做DevOps工作。简直是神器~~ 超级神器~~ 任何手机应用部署+绝大多数主流后端服务,都可以毫无缝隙的快速集成
2020-03-02 12:14
回复
用户头像
都挺好,都用不了 :)
2020-03-02 10:08
回复
哈哈哈
2020-03-02 11:56
回复
没有更多了
发现更多内容

影响LED显示屏使用的因素有哪些?

Dylan

LED显示屏 led显示屏厂家

微服务平滑迁移上云最佳实践

阿里巴巴云原生

阿里云 微服务 云原生

阿里P8大佬神创“Netty突击笔记”,堪称全网最全最牛逼的核心原理手册

程序知音

Java Netty JAVA开发 java架构 后端技术

5年Java开发4面阿里挂在JVM,临走时面试官给了我一份JVM手册

钟奕礼

Java java程序员 java面试 java编程

Rancher 全球化部署最佳实践

Rancher

Kubernetes k8s rancher

什么是组织孤岛?它会带来哪些影响?可以这样去对付它

Baklib

Java 反射 (二) Class类

浅辄

Java 反射 11月月更

浅析分布式事务的底层实现模型

移动云大数据

PCB焊接出问题了,是PCB工程师的锅吗?

华秋PCB

PCB PCB设计 焊接

聊聊mybatis的架构模块

急需上岸的小谢

11月月更

聊一聊华为云弹性公网IP的那些事儿

爱尚科技

深圳等级保护测评机构新名单看这里!

行云管家

等保 深圳 等级保护 等级保护机构

行业首个测试开发技术大赛开始报名啦~ 10万现金奖励等你来挑战

测试人

软件测试 自动化测试 测试开发 测试比赛

被性能优化撂倒无数次后的顿悟!465页调优笔记助力大厂面试之旅

程序知音

Java JVM 性能调优 java架构 后端技术

索引数据结构千千万 , 为什么B+Tree独领风骚

程序知音

一个 3 年 Java 程序员 5 家大厂的面试总结(已拿Offer)

钟奕礼

Java java程序员 java面试 java编程

Zookeeper安装与基础命令操作

石臻臻的杂货铺

zookeeper 11月月更

防止会议被入侵,华为云会议更专业

IT科技苏辞

剖析一下"抢茅台"脚本底层逻辑

京东科技开发者

接口 后端 脚本 风险识别 风险控制

Java面试读这一篇就够了:100个互联网大厂Java面试真题整理

钟奕礼

Java Java 面试 java程序员 java编程

Camtasia2023如下免费下载?有啥新功能

茶色酒

Camtasia Camtasia2023

进大厂必刷的Java面试题

钟奕礼

Java java程序员 java面试 java编程

我服了,阿里挖过来的leader连垃圾回收都说不清楚

钟奕礼

Java java程序员 java面试 java编程

聊聊索引

急需上岸的小谢

11月月更

IDC 2022上半年中国IT安全软件市场15.1亿美元,行云管家为企业信息安全持续赋能

行云管家

信息安全 数据安全 企业安全

万级并发分布式全链路压测工具 autotest 实践

车江毅

自动化测试 全链路测试 性能压测 生产环境全链路压测

「美团」Java岗150道面试题:集合+JVM+设计模式+spring+Redis等

钟奕礼

Java java程序员 java面试 java编程

2022年秋招成功斩获offer秘籍:九大核心知识+1000道大厂面试真题

程序知音

Java java面试 大厂面试 java架构 Java面试八股文

聊聊mybatis的反射之Reflector类

急需上岸的小谢

11月月更

2020最新阿里P7岗面试真题、简历模板,搞懂吊打面试官不是问题

钟奕礼

Java Java 面试 java程序员 java编程

2022 Java 企业面试题汇总

钟奕礼

Java java程序员 java面试 java编程

App后端服务,你是选择AWS还是Firebase?_语言 & 开发_Dhananjay Trivedi_InfoQ精选文章