AWS还是Firebase?在移动应用后端应该使用哪个?

作者| Dhananjay Trivedi

翻译 | 天道酬勤,编辑 | Carol

出品| CSDN云计算(ID:CSDNcloud)

我们将按以下顺序比较这两种服务:

  1. 它们有什么共同点?

  2. 如何将它们与你的前端集成?

  3. 它们的优势。

  4. 它们的价格。

  5. 创建和维护所需的成本。

  6. 最后的想法。

 

在我们开始之前,作者想先声明一下,本文并非要从两者中分出一个胜负,所以无论你是哪一方的忠实支持者,都建议你仅客观看待本篇文章。

因为今天我们所讨论的核心问题是:“哪个是适合你需求的解决方案?

 

作者已经开发原生Android应用程序已有一段时间了,并且最近开始在Flutter中开发移动应用程序,并且同时将Firebase和AWS用作后端服务。

 

但是作者最近不得不为移动应用程序寻找解决方案,实际上作者花了很多时间来决定后端的正确服务。

 

因此,作者在这里与大家分享他的观点和理解,来帮助你选择合适的服务而不会浪费很多时间。

这些服务有什么共同点?

核心功能如下:

  • 验证码

  • 推送通知

  • 存储

  • 托管

  • 分析工具

 

所有这些都提供了,因此你可以使用这些平台中的任何一个轻松地部署无服务器解决方案。

 

你如何将后端与应用程序集成?

 

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

 

  • Firebase

Firebase提供了适用于Android、iOS和Web的SDK,因此,你作为前端开发者,实际上可以轻松构建数据驱动的应用程序,而不必依赖后端技能。

 

Firebase还具有一个REST API,你可以在想要构建自己的自定义API(根据自己的需求)时使用。

 

  • AWS

AWS为移动开发者提供了一个非常不错的解决方案,称为AppSync,你可以将其集成到Android、iOS和React Native中。

 

AWSAppSync中还没有对Flutter的官方支持,你可以在此网站上阅读:

https://github.com/aws-amplify/amplify-js/issues/1852

 

如果要在前端使用Flutter,则必须创建自己的API。

建议

  • 查看解决方案的复杂性和业务需求,并牢记可伸缩性,然后决定是否需要创建API。

  • 如果要使用API,那么对SDK的依赖就会消失。此外,拥有API对于更大的项目更有意义。

  • 如果你的解决方案很简单,并且你不想花太多精力使用API,那么请选择提供SDK的服务或前端框架,以便将后端直接集成到前端中。

 

看看它们的优势

Firebase和AWS都有其优势,让我们看看哪一个可以更好地为你服务?

  • AWS

 

1.设置不同的环境

 

在AWS中,用于开发、测试和生产的不同环境更加简洁。

 

你也可以在Firebase中执行此操作,但是你将必须设置不同的项目,这需要花费更多时间。

 

2.持续部署

 

如果你使用过Netlify等服务,则AWS提供了另一个简洁的解决方案来进行连续部署。同样,你也可以使用谷歌云进行CD制作,但是需要更多的配置。

 

3.GraphQL

 

适用于移动应用程序的AWS Amplify SDK与GraphQL和Apollo紧密集成。

 

4.数据库的选择

 

你可以完全控制要在后端使用的数据库类型。Firebase仅提供NoSQL数据库。

 

5.单个安装包解决方案

 

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

 

如果你的整个后端都集中在一个地方,则更易于理解和维护。

  • Firebase

1.专用数据库

 

Firebase提供了两种专用的数据库服务:Cloud Firestore和实时数据库。

 

这两个数据库都是NoSQL数据库,因此你不必担心设置数据库和编写查询来部署数据驱动的应用程序。

 

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

 

2.可调用函数

 

借助Firebase云函数,你可以创建云函数并通过URL设置触发器来把监听器写入数据库。

 

这些功能与AWSLambda相似,但是从应用程序触发Lambda要求设置API网关并添加授权逻辑,这使其变得更加困难。

 

3.质量管理服务

 

Firebase提供了许多服务来监视和维护你的应用程序质量。其中一些服务如下所示:

  • 动态链接:将用户重定向到你应用中的正确位置,无论该应用是否已安装。

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

  • 测试实验室:跨设备测试你的应用。

  • 应用内消息传递:发送广告系列来吸引用户。

  • 分析:帮助你计划未来版本和用户参与的策略。

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

 

4 平台定价(AWS与Firebase)

 

这两个平台的价格都具有吸引力,甚至都提供免费套餐。因此,除非你拥有相当数量的活跃用户,否则你无需付费。

  • AWS

 

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

 

这就是为什么你会发现大多数服务的AWS均比谷歌云服务提供商(GCP)便宜的原因。

 

为了构建实时应用程序,AWS提供了相对昂贵的DynamoDB。

 

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

 

  • Firebase

 

尽管AWS的某些服务价格便宜,但Firebase提供了一些完全免费的服务,例如:

  1. 用户认证-使用等效于AWS Cognito的FirebaseAuth。

  2. 推送通知-使用Firebase云推送等效于AWS中的简单通知服务。

 

对于构建实时应用程序,与AWS相比,Firebase似乎便宜得多且易于安装。Firebase负责其数据的实时同步,而你不必为此担心。

 

随着用户数量的增加,Firebase显然似乎是构建实时应用程序的更好选择。

 

但是,如果你对查询优化不够谨慎,Firebase将收你30000美元。

 

顺便说一句,在了解了发生了什么之后,Google放弃了一些案例。

 

某些东西比平台定价还要贵。

 

时间和劳动力

 

这是需要考虑的重要因素,因为你将依赖资源来设置、构建和维护应用程序体系结构。

 

  • Firebase

Firebase确实简化了,使用起来非常简单。前端开发人员实际上可以自己创建和维护整个后端,而只需了解一些有关设置方面的知识。

 

为了创建实时应用程序,Firebase解决了许多复杂性,并为你提供了非常强大且易于使用的SDK,为你节省了大量时间和金钱。

 

  • AWS

 

由于AWS提供的服务是Firebase提供的服务的十倍,因此使用和维护它的复杂性也要十倍。而作者想说的是,与Firebase相比,AWS也有一些学习曲线。

 

为了创建实时应用程序,你需要使用GraphQL API以及DynamoDB实例(该实例又是NoSQL数据库),但是你必须设置API和数据库,这对于简单的实时应用而言似乎有点过头了。

 

总结

Firebase

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

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

 

AWS

  • 提供了更大的灵活性,这在构建大型和复杂的应用程序时有很大帮助,但对于简单的应用程序可能会过大。

  • 一个潜在的解决方案可以满足你所有应用程序的需求,你可以构建一个整齐的包解决方案,但价格可能会更高。

 

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

 

你对这两种方式的体验如何?欢迎评论告诉我们。

 

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3月21日

千万流量支持原创作者

更有专属【勋章】等你来挑战

推荐阅读:Spark大数据分布式机器学习处理实战 | 博文精选5亿整数的大文件,怎么排序 ?面试被问傻!
谁将称霸跨平台应用市场?程序员删库跑路不可防,但是这你应该防了......
深耕技术,与实践赛跑:一文告诉你如何稳妥快速完善区块链技术并有序推动商用?
大脑芯片公司Neuralink计划在人脑内植入芯片,他们到底想干什么?
真香,朕在看了!点击“阅读原文”,参与报名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519055.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对话鲁直:蚂蚁金服中间件的开源头羊 | 穿山甲专访

谈话中,鲁直反问的“你为什么不开源?”这句话让我印象深刻。-- 老王 二月初春,在西子湖畔的细雨中,我拜访了蚂蚁金服中间件团队,和 SOFA 技术负责人鲁直做了一次深入交谈,更妙的是,鲁直也是负责…

与时间赛跑:微盟的数据恢复为什么需要这么长时间

作者| 茹炳晟责编 | Carol出品| CSDN云计算(ID:CSDNcloud)微盟“删库跑路“事件已经过去好几天了,据悉,微盟的服务已经全部恢复,对于新用户,已经能够正常开始所有相关的业务活动了,但…

阿里开发者招聘节 | 面试题08:NAS(Network Attached Storage)协议NFS和SMB相关问题

为帮助开发者们提升面试技能、有机会入职阿里,云栖社区特别制作了这个专辑——阿里巴巴资深技术专家们结合多年的工作、面试经验总结提炼而成的面试真题这一次将陆续放出(面试题官方参考答案将在专辑结束后统一汇总分享,点此进入答题并围观他…

android studio n3710,英特尔奔腾N3710性能跑分和评测 | ZMMOO

英特尔奔腾N3710 是针对入门级笔记本电脑,它的频率为1.1- 2.56 GHz。由于采用三栅极晶体管的新型14纳米低功耗工艺(P1273),与其前代Bay Trail(例如奔腾 N3520)相比,能效得到了显着提升 。除了CPU内核之外,SoC还提供支持DirectX 11…

淘宝千万级并发架构的十四次演进

责编 | Carol来源 | 架构师技术联盟概述本文以淘宝作为例子,介绍从一百个到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原…

linux 15秒 搭建VSFTPD文件服务器

文章目录1. 在线安装2. 创建用户3. 限制用户活动范围4. 添加用户管制5. 关闭匿名访问6. 编辑一个安全文件7. 重新启动vsftpd8. 客户端测试9. 本机测试10. 再次本机测试1. 在线安装 yum install vsftpd2. 创建用户 useradd ftpuser passwd ftpuser3. 限制用户活动范围 vim vs…

阿里开源!轻量级深度学习端侧推理引擎 MNN

AI科学家贾扬清如此评价道:“与 Tensorflow、Caffe2 等同时覆盖训练和推理的通用框架相比,MNN 更注重在推理时的加速和优化,解决在模型部署的阶段的效率问题,从而在移动端更高效地实现模型背后的业务。这和服务器端 TensorRT 等推…

冰雪复古鸿蒙碎片哪里出,冰雪复古:玩法攻略,如何高爆率搞回收!

原标题:冰雪复古:玩法攻略,如何高爆率搞回收!冰冻传说这个手游游戏刚内部测试的时候我就开始玩这个游戏了,第一方面这个游戏全部的装备都是靠打野怪获取的,这点很符合我的喜好,现在分享一些在个…

与时间赛跑:微盟的数据恢复为什么需要这么长时间?

作者| 茹炳晟 责编 | Carol 出品| CSDN云计算(ID:CSDNcloud) 微盟“删库跑路“事件已经过去好几天了,据悉,微盟的服务已经全部恢复,对于新用户,已经能够正常开始所有相关的业务活动了&#x…

X-Pack Spark归档POLARDB数据做分析

简介 POLARDB数据库是阿里云自研的下一代关系型云数据库,100%兼容MySQL,性能最高是MySQL的6倍,但是随着数据量不断增大,面临着单条SQL无法分析出结果的现状。X-Pack Spark为数据库提供分析引擎,旨在打造数据库闭环&am…

阿里云Kubernetes服务上使用Tekton完成应用发布初体验

Tekton 是一个功能强大且灵活的 Kubernetes 原生开源框架,用于创建持续集成和交付(CI/CD)系统。通过抽象底层实现细节,用户可以跨多云平台和本地系统进行构建、测试和部署。 本文是基于阿里云Kubernetes服务部署Tekton Pipeline&…

在线教育如何应对流量洪峰?阿里云专家:上云+云数据库是最佳路径

2月中下旬原本是全国各地春季学期开学的日子,但这场突如其来的疫情使得1.8亿中小学生只能纷纷在家开启“停课不停学”的学习生活,而线上教育也顺势成为了这一特殊时期首选的学习方式。 但突如其来的流量洪峰,却让许多线上教育平台力不从心。…

会 SQL 就能搞定 AI!蚂蚁金服重磅开源机器学习工具 SQLFlow

5 月 6 日,在QCon 全球软件开发大会(北京站)2019上,蚂蚁金服副 CTO 胡喜正式宣布开源机器学习工具 SQLFlow,他在演讲中表示:“未来三年,AI 能力会成为每一位技术人员的基本能力。我们希望通过开…

什么是 CD 管道?一文告诉你如何借助Kubernetes、Ansible和Jenkins创建CD管道!

作者 | Magalix翻译 | 火火酱,责编 | Carol来源 | 架构师技术联盟封图 | CSDN付费下载于IC photoCI/CD要解决的是什么问题?CI/CD(CI全名Continuous Integration,持续集成;CD全名Continuous Deployment,持续…

使用kettle导入数据到ADB for PostgreSQL

Kettle简介 Kettle(现也称为Pentaho Data Integration,简称PDI)是一款非常受欢迎的开源ETL工具软件,主要用于数据整合、转换和迁移。Kettle除了支持各种关系型数据库,HBase MongoDB这样的NoSQL数据源外,它还支持Excel、Access这类…

Android11vivox21刷机包,vivo x21旧版官方固件rom系统刷机包

这是vivo x21旧版官方固件rom系统刷机包,可以做备用,降级可用!!vivo x21已经提示更新了,如果你的手机更新之后系统没有之前好用的,可以选择降级用,直接完整版的固件rom包下载,解压出…

集结阿里云数据库最强阵容 DTCC 2019 八大亮点抢先看

2019年5月8日-5月10日,由国内知名IT技术社区主办的数据库技术交流盛会——DTCC 2019将在北京新云南皇冠假日大酒店召开。数据风云,十年变迁,DTCC见证并铭记了国内数据库技术的关键成长历程。作为DTCC的老朋友和全球领先的云计算厂商&#xff…

行!看到抖音上Python程序员晒得工资条,我沉默了......

Python上抖音热搜了?作为短视频爱好者最近刷到了一个Python工程师的工资条然后我默默的打开看了然后我默默的关闭了我想这个工资算下来好像也不算高我就去其他渠道搜索了一下相关的Python工作岗位的工资好吧,都是比这个工资更高的(拉勾网3.2日…

为什么强烈禁止开发人员使用isSuccess作为变量名

在日常开发中,我们会经常要在类中定义布尔类型的变量,比如在给外部系统提供一个RPC接口的时候,我们一般会定义一个字段表示本次请求是否成功的。 关于这个"本次请求是否成功"的字段的定义,其实是有很多种讲究和坑的&am…

现代IM系统中的消息系统架构 - 模型篇

前言 在架构篇中我们介绍了现代IM消息系统的架构,介绍了Timeline的抽象模型以及基于Timeline模型构建的一个支持『消息漫游』、『多端同步』和『消息检索』多种高级功能的消息系统的典型架构。架构篇中为了简化读者对Tablestore Timeline模型的理解,概要…