面向 AWS 专业人员的 Google Cloud Platform 简介:移动后端

更新时间:2017 年 10 月 17 日

比较 Amazon Web Services (AWS) 和 Google Cloud Platform (GCP) 在各自的云端环境中提供的移动后端服务。

服务模式比较

AWS Mobile Hub 和 Firebase 都提供身份验证、数据存储、无服务器例程、内容分发、通知、设备测试和分析等服务。不过,这两个平台的范围有所不同。

AWS Mobile Hub 提供一系列适用于移动后端开发的服务。在 GCP 中,Firebase 不仅提供一套后端服务,而且还提供一些包含前端功能的客户端库,可加速客户端应用开发。

这些功能包括用于身份验证的界面流程、集成的应用性能监控、共享功能、远程配置、应用索引,以及动态链接。

功能 AWS Mobile Hub Firebase
身份验证 Amazon Cognito Firebase 身份验证(包括界面流程)
数据库 Amazon DynamoDB Firebase 实时数据库
数据存储/CDN Amazon S3 和 Amazon CloudFront Firebase 托管
无服务器例程 Cloud Logic 和 AWS Lambda Firebase 托管Cloud Functions for Firebase
通知 Amazon SNS Firebase 云消息传递
客户端应用服务 不适用 性能监控、应用索引、应用监控、崩溃报告、应用共享、远程配置、动态链接

支持的平台

AWS Mobile Hub 和 Firebase 都支持大多数主流移动平台。此外,Firebase 提供 JavaScript 库,可以直接集成到网页应用和框架(例如 Angular)中。AWS Mobile Hub 则与其他一些移动应用开发平台集成,包括 Xamarin 和 React Native。

功能 AWS Mobile Hub Firebase
REST HTTP API
Android
iOS
Xamarin
React Native
Unity 有(开发者预览版)
JavaScript

身份验证

AWS Mobile Hub 和 Firebase 都提供用于身份验证的后端和 SDK。AWS 提供的是 Amazon Cognito,Firebase 提供的是 Firebase 身份验证。这两种服务都通过多家联合提供商提供电子邮件和密码身份验证,包括 Facebook、Google、Twitter 和 GitHub 身份验证。Amazon Cognito 还支持 Amazon 身份验证。

这两个平台提供的身份验证支持类型有所不同。Amazon Cognito 提供用于执行身份验证的后端服务,包括服务器端端点和数据库。该平台使用附加到用户或用户组的 AWS Identity and Access Management (IAM) 来预配对其他 AWS 服务的访问。

除了用于执行身份验证的后端服务和服务器端端点之外,Firebase 身份验证还提供预构建的界面流程和面向界面的 SDK,以便与其后端服务连接以进行身份验证。

语言和平台

AWS Cognito 和 Firebase 身份验证都支持 Android、iOS、Node.js 和 REST。此外,Amazon Cognito 还支持 React、.NET、Python、PHP 和 Ruby。

下表提供了 Amazon Cognito 和 Firebase 身份验证之间的一般对应:

功能 Amazon Cognito Firebase 身份验证
基本的电子邮件/密码验证
联合身份提供商 Amazon、Facebook、GitHub、Google、Twitter、OpenID 身份提供商 Facebook、GitHub、Google、Twitter
自定义提供商
匿名身份验证
用户数据存储 Amazon Cognito Sync 基于用户的安全性
支持的平台 Android、iOS Android、iOS
支持的语言和框架 .NET、Node.js、PHP、Python、Ruby Node.js
部署位置 多区域 全球
价格模式 在各个层级中按每月活跃用户数计费。 在所有层级中均免费。

数据库

AWS Mobile Hub 的主要数据存储服务是 Amazon DynamoDB,这是一个托管式文档/键值对存储区。Firebase 以其实时数据库命名,这是一个文档数据库,能够将数据实时同步到所有连接的客户端。Firebase 数据库还支持离线访问和修改数据、将数据持久保留在客户端磁盘上,以及在连接恢复后将客户端与服务器状态同步。

两个数据库都支持从客户端直接访问。Firebase 安全规则管理 Firebase 中的数据访问,而 AWS IAM 则管理客户端对 DynamoDB 的安全访问。

功能
AWS Mobile Hub NoSQL 数据库 (DynamoDB) Firebase
从客户端直接访问
安全 AWS IAM Firebase 安全规则
事务性
实时更新
离线和重新同步 无。*注意:某些离线和重新同步功能可通过 Amazon Cognito Sync 获得
部署位置 适用区域:美国东部(俄亥俄州)、美国东部(北弗吉尼亚)、
美国西部(北加利福尼亚)、美国西部(俄勒冈州)、
加拿大(中部)、亚太地区(孟买)、
亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、
亚太地区(东京)、欧盟(法兰克福)、
欧盟(爱尔兰)、欧盟(伦敦)、南美洲(圣保罗)
无法配置。
价格模式 基于区域、吞吐量、数据存储量和数据传输量。 基于并发连接数、数据存储量和数据传输量。

无服务器函数

两个平台都支持无服务器例程和客户端访问。AWS Mobile Hub 使用 Cloud Logic 来选择用于移动应用的 AWS Lambda 例程,并通过 AWS API Gateway 提供对这些例程的访问。Firebase 提供 Firebase 托管和 Cloud Functions 来支持客户端访问在云端运行的无服务器例程。

功能 AWS Mobile Hub Firebase
无服务器例程 AWS Lambda Cloud Functions for Firebase
路由到无服务器例程 Cloud Logic Firebase 托管
部署位置 适用区域:美国东部(俄亥俄州)、美国东部(北弗吉尼亚)、
美国西部(北加利福尼亚)、美国西部(俄勒冈州)、
加拿大(中部)、亚太地区(孟买)、
亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、
亚太地区(东京)、欧盟(法兰克福)、
欧盟(爱尔兰)、欧盟(伦敦)、南美洲(圣保罗)
不可选。
价格模式 基于每 100 万次 API 调用和数据传输量。 基于调用、内存使用量、cpu 秒,以及出站网络和数据传输量。

内容分发

AWS 和 Firebase 都提供内容分发网络 (CDN):Amazon 提供的是 Amazon CloudFront,Google 提供的是 Cloud CDN。两个平台的机制类似,但用于分发内容的网络可能存在显著差异。如需查看两个平台上的网络的详细比较,请参阅面向 AWS 专业人员的 Google Cloud Platform 简介:网络

功能 AWS Mobile Hub Firebase
内容分发网络 (CDN) CloudFront Cloud CDN
来源托管 Amazon S3 Firebase 托管
部署位置 全球 全球
价格模式 基于数据传输量和存储量。 基于数据传输量和存储量。

推送通知

AWS 和 Firebase 中的推送通知配置是类似的。Amazon Simple Notification Service (SNS) 和 Firebase 云消息传递仅在其特定实现和一些支持的框架方面有所不同。支持的服务平台如下所示。

功能 Amazon SNS Firebase
支持的通知服务 Google Cloud Messaging、Apple 推送通知服务、Windows推送通知服务、百度云推送、Unity Google Cloud Messaging、Apple 推送通知服务、Unity、Chrome 50 +、Firefox 44 +、Opera Mobile 37+
支持的平台和语言 REST HTTP API、JavaScript、Java、Python、Node.js、Ruby、Go、C++、PHP、.NET REST HTTP API、XMPP、JavaScript、Node.js、C++
部署位置 多区域 全球
价格模式 基于每 100 万条消息 免费

导入和导出

AWS Mobile Hub 允许开发者导入和导出项目的 YAML 文件。Firebase 允许您为项目数据和规则配置自动每日夜间备份,并以 JSON 格式将它们存储在 Cloud Storage 中。您可以使用 Cloud IAM 在不同项目之间转移 Firebase 项目。

应用测试

Firebase 和 AWS 都支持提交自动化测试,以便在提供商托管在云端的各种设备上运行。这些测试允许开发者进行快速的冒烟测试以确保其应用的健全构建,或者手动编写界面中的特定步骤以在云端设备上执行。AWS Device Farm 支持更多测试框架和设备。 Firebase Device Lab 仅支持使用 Robo 或 Android Instrumentation 测试的 Android 设备。

功能 Amazon Device Farm Firebase Device Lab
iOS 测试类型 Appium、Calabash、XCTest、KIF、UI Automation 不适用
Android 测试类型 Appium、Calabash、Robotium、Espresso、UI Automator、自定义 Instrumentation 测试、内置浏览器 Robo 和 Android Instrumentation 测试(包括 Espresso)。
部署位置 不可选 不可选
价格模式 按分钟或统一费率。 按设备小时(不包括设定的每天免费测试次数)。

分析

Amazon Pinpoint 和 Google Analytics for Firebase 都支持分析、受众群细分和有针对性的广告功能。两者都支持将事件导出到数据仓库服务。Firebase Analytics 还与其他 GCP 服务集成,包括 Firebase 崩溃报告、Firebase 远程配置、Firebase 云消息传递和 Google 跟踪代码管理器。

功能 AWS Mobile Hub/Pinpoint Google Analytics for Firebase
分析和广告
导出到数据仓库 导出到 Amazon Redshift 导出到 BigQuery
无限制的报告
整合通知
远程配置 不适用
跟踪代码管理 有(Google 跟踪代码管理器
部署位置 全球 全球
价格模式 基于每月目标受众数 免费

其他功能

Firebase 和 AWS Mobile Hub 均包含一些对方不包含的功能。

其他 AWS Mobile Hub 功能

对话机器人

AWS Mobile Hub 包含一个名为“对话机器人”的功能。该功能将用于文本和语音转换的 Amazon Lex 与 AWS Lambda 的功能集成在一起。虽然对话机器人不是 Firebase 的正式功能,但 GCP 提供了 Dialogflow 和 API.AI,其中任何一个都可以与 Firebase 结合使用以实现对话式用户体验。

其他 Firebase 功能

崩溃报告

Firebase 崩溃报告有两种崩溃报告选项:Firebase Crash Tool 和 Fabric Crashlytics。相比之下,AWS Mobile Hub 是依靠合作伙伴技术实现崩溃报告。

本机应用的测试版发布

除崩溃报告外,Fabric Crashlytics 还提供用于发布的 Beta by Crashlytics。Beta by Crashlytics 是一个流行的测试版发布框架,提供用户邀请/撤消和与其他 Fabric 库的集成。此外,Beta by Crashlytics 还集成了适用于 iOS 和 Android 的 Fastlane 构建工具,可用于自动发布。

App Indexing

Firebase App Indexing 会将应用内容编入索引,这样设备上的 Google 搜索将会显示指向应用的链接。

在设备上打开 Firebase 动态链接时将链接到本机应用,在桌面浏览器打开时则链接到网页内容。为提供动态链接,Firebase 会创建一个域,可用于在 Android 或 iOS 平台中注册通用链接网域。

邀请

Firebase 邀请是一种应用推荐功能,允许应用用户使用动态链接分享 Firebase 应用。动态链接可以适应受邀用户的各种平台,包括网页、Android 或 iOS。

远程配置

Firebase 远程配置允许开发者更改应用的行为和外观,而无需更新应用。远程配置使用应用内默认值来控制应用的行为和外观。然后,开发者可以使用控制台来覆盖所有用户或细分用户群的应用内默认值。

性能监控

Firebase 性能监控是一项测试版功能,可监控启动时间、前台和后台活动、HTTP/S 网络请求以及使用其包含的 API 创建的自定义跟踪记录。

费用

AWS Mobile Hub 的价格取决于所使用的各个服务组件。 Firebase 自动包含多个产品

  • 身份验证(不包括电话号码验证)
  • 分析
  • App Indexing
  • 动态链接
  • 邀请
  • 远程配置
  • 云消息传递
  • 性能监控和崩溃报告

AWS Mobile Hub 在免费层级和中间层级提供捆绑方案。每个 Firebase 捆绑方案都包含以下服务,并具有给定的使用限制。

  • 存储
  • Cloud Functions
  • 电话号码身份验证
  • 托管/内容分发
  • 测试实验室

在中间层级的使用限制之外,Firebase 包括按服务收取的随用随付费用。

其他 GCP 产品(例如 BigQuery)单独计费。

后续事项

查看其他“面向 AWS 专业人员的 Google Cloud Platform 简介”文章:

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
面向 AWS 专业人员的 Google Cloud Platform 简介