Google Cloud para profesionales de AWS: backend en dispositivos móviles

Actualización: 17 de octubre de 2017

Compara los servicios de backend para dispositivos móviles que brindan Amazon Web Services (AWS) y Google Cloud en sus respectivos entornos de nube.

Comparación de los modelos de servicio

Tanto AWS Mobile Hub como Firebase ofrecen servicios de autenticación, almacenamiento de datos, rutinas sin servidores, entrega de contenido, notificaciones, pruebas de dispositivos y estadísticas. Sin embargo, ambas plataformas difieren en cuanto a su alcance.

AWS Mobile Hub brinda una variedad de servicios adecuados para el desarrollo de backend dirigidos a dispositivos móviles. En Google Cloud, Firebase ofrece un conjunto de servicios de backend y, además, proporciona bibliotecas cliente que incluyen funciones de frontend orientadas a acelerar el desarrollo de aplicaciones cliente.

Estas características incluyen flujos de IU para autenticación, supervisión del rendimiento de las aplicaciones integradas, funciones para el uso compartido, configuración remota, indexación de aplicaciones y vínculos dinámicos.

Función AWS Mobile Hub Firebase
Autenticación Amazon Cognito Firebase Authentication (incluye los flujos de IU)
Base de datos Amazon DynamoDB Firebase Realtime Database
Almacenamiento de datos/CDN Amazon S3 y Amazon CloudFront Firebase Hosting
Rutinas sin servidores Cloud Logic y AWS Lambda Firebase Hosting y Cloud Functions para Firebase
Notificaciones Amazon SNS Firebase Cloud Messaging
Servicios de aplicaciones cliente N/A Supervisión del rendimiento, indexación de aplicaciones, supervisión de aplicaciones, informes de fallas, uso compartido de aplicaciones, configuración remota, vínculos dinámicos

Plataformas compatibles

AWS Mobile Hub y Firebase son compatibles con la mayoría de las plataformas principales para dispositivos móviles. Además, Firebase proporciona bibliotecas de JavaScript para integrar directamente en aplicaciones web y marcos de trabajo como Angular. AWS Mobile Hub se integra en algunas plataformas adicionales de desarrollo de aplicaciones para dispositivos móviles, incluidas Xamarin y React Native.

Función AWS Mobile Hub Firebase
API de REST/HTTP
Android
iOS
Xamarin No
React Native No
Unity Sí (vista previa para programadores)
JavaScript

Autenticación

AWS Mobile Hub y Firebase proporcionan backends y SDK para autenticación. AWS ofrece Amazon Cognito y Firebase cuenta con Firebase Authentication. Ambos servicios permiten usar autenticación con contraseña y correo electrónico a través de varios proveedores federados, incluida la autenticación mediante Facebook, Google, Twitter y GitHub. Amazon Cognito también incorpora autenticación mediante Amazon.

Ambas plataformas difieren en el tipo de compatibilidad con la autenticación que ofrecen. Amazon Cognito ofrece servicios de backend, incluidos extremos y bases de datos del servidor, para realizar la autenticación. El acceso a otros servicios de AWS se aprovisiona mediante la administración de identidades y accesos (IAM) de AWS relacionada con usuarios o grupos de usuarios.

Además de los servicios de backend y los extremos del servidor para realizar la autenticación, Firebase Authentication proporciona flujos de IU precompilados y SDK orientados a la IU para las interfaces con sus servicios de backend de autenticación.

Lenguajes y plataformas

AWS Cognito y Firebase Authentication son compatibles con Android, iOS, Node.js y REST. Además, Amazon Cognito admite React, .NET, Python, PHP y Ruby.

En la siguiente tabla, se muestra una comparación general entre Amazon Cognito y Firebase Authentication:

Función Amazon Cognito Firebase Authentication
Autenticación básica con correo electrónico/contraseña
Proveedores federados Proveedores como Amazon, Facebook, GitHub, Google, Twitter, OpenID Facebook, GitHub, Google, Twitter
Proveedores personalizados
Autenticación anónima
Almacenamiento de datos del usuario Amazon Cognito Sync Seguridad basada en usuarios
Plataformas compatibles Android, iOS Android, iOS
Lenguajes y marcos de trabajo admitidos .NET. Node.js, PHP, Python, Ruby Node.js
Localidad de la implementación Multirregional Global
Modelo de precios Se factura por usuarios activos mensuales en niveles Se incluye de forma gratuita en todos los niveles

Bases de datos

El principal proveedor de almacenamiento de datos de AWS Mobile Hub es Amazon DynamoDB, un almacén administrado de documentos/clave-valor. Firebase recibe su nombre de su base de datos en tiempo real, que se basa en documentos y además incluye sincronización en tiempo real para todos los clientes conectados. La base de datos de Firebase también admite el acceso sin conexión y la modificación de datos, la persistencia de datos en el disco cliente y la sincronización del cliente con el estado del servidor después de que se restablece la conectividad.

Ambas bases de datos admiten el acceso directo desde el cliente. En Firebase, el acceso a los datos se administra mediante las reglas de seguridad de la plataforma, mientras que en AWS, IAM administra el acceso seguro desde el cliente a DynamoDB.

Función
Base de datos NoSQL (DynamoDB) de AWS Mobile Hub Firebase
Acceso directo desde el cliente
Seguridad IAM de AWS Reglas de seguridad de Firebase
Transacciones No
Actualizaciones en tiempo real No
Acceso sin conexión y resincronización No. * Nota: Existe cierto nivel de acceso sin conexión y resincronización mediante Amazon Cognito Sync
Localidad de la implementación Regiones disponibles: este de EE.UU. (Ohio), Este de EE.UU. (Virginia del Norte),
Oeste de EE.UU. (Norte de California), Oeste de EE.UU. (Oregón),
Canadá (Central), Asia-Pacífico (Bombay),
Asia-Pacífico (Seúl), Asia-Pacífico (Singapur), Asia-Pacífico (Sídney),
Asia-Pacífico (Tokio), UE (Fráncfort),
UE (Irlanda), UE (Londres), América del Sur (São Paulo)
No configurable
Modelo de precios Se basa en la región, la capacidad de procesamiento, el almacenamiento y la transferencia de datos Se basa en las conexiones simultáneas, el almacenamiento y la transferencia de datos

Funciones sin servidores

Las dos plataformas admiten las rutinas sin servidores y el acceso desde el cliente. AWS Mobile Hub usa Cloud Logic a fin de seleccionar las rutinas de AWS Lambda que se usarán con la aplicación para dispositivos móviles, además de brindar acceso a esas rutinas mediante la puerta de enlace API de AWS. Firebase ofrece Firebase Hosting y Cloud Functions para la compatibilidad con el acceso de clientes a rutinas sin servidores que se ejecutan en la nube.

Función AWS Mobile Hub Firebase
Rutinas sin servidores AWS Lambda Cloud Functions para Firebase
Enrutamiento a rutinas sin servidores Cloud Logic Firebase Hosting
Localidad de implementación Regiones disponibles: este de EE.UU. (Ohio), Este de EE.UU. (Virginia del Norte),
Oeste de EE.UU. (Norte de California), Oeste de EE.UU. (Oregón),
Canadá (Central), Asia-Pacífico (Bombay),
Asia-Pacífico (Seúl), Asia-Pacífico (Singapur), Asia-Pacífico (Sídney),
Asia-Pacífico (Tokio), UE (Fráncfort),
UE (Irlanda), UE (Londres), América del Sur (São Paulo)
No seleccionable
Modelo de precios Se basa en millones de llamadas a la API y en la transferencia de datos Se basa en las invocaciones, el uso de la memoria, los ciclos de CPU por segundo, las redes salientes y la transferencia de datos

Distribución de contenido

AWS y Firebase ofrecen una red de distribución de contenido (CDN): Amazon ofrece Amazon CloudFront y Google, Cloud CDN. La mecánica de ambas plataformas es similar, pero la red que se usa para distribuir el contenido puede tener diferencias significativas. Para obtener una comparación detallada de las redes en las dos plataformas, consulta Google Cloud para profesionales de AWS: Herramientas de redes.

Función AWS Mobile Hub Firebase
Red de entrega de contenido (CDN) CloudFront Cloud CDN
Hosting de origen Amazon S3 Firebase Hosting
Localidad de la implementación Global Global
Modelo de precios Se basa en la transferencia y el almacenamiento de los datos Se basa en la transferencia y el almacenamiento de los datos

Notificaciones push

La configuración de notificaciones push es similar en AWS y Firebase. Simple Notification Service (SNS) de Amazon y Firebase Cloud Messaging solo varían en sus implementaciones específicas y en algunos de los marcos de trabajo que admiten. A continuación, se indican las plataformas de servicios compatibles.

Función Amazon SNS Firebase
Servicios de notificación compatibles Google Cloud Messaging, Servicio de notificaciones push de Apple, Servicio de notificaciones push de Windows, Baidu Cloud Push, Unity Google Cloud Messaging, Servicio de notificaciones push de Apple, Unity, Chrome 50 y versiones posteriores, Firefox 44 y versiones posteriores, Opera Mobile 37 y versiones posteriores
Lenguajes y plataformas compatibles API de REST/HTTP, JavaScript, Java, Python, Node.js, Ruby, Go, C++, PHP, .NET API de REST/HTTP, XMPP, JavaScript, Node.js, C++
Localidad de la implementación Multirregional Global
Modelo de precios Se basa en millones de mensajes Gratis

Importación y exportación

Con AWS Mobile Hub los desarrolladores pueden importar y exportar sus proyectos como archivos YAML. Con Firebase, puedes configurar la creación automatizada de copias de seguridad durante la noche de los datos y reglas de tu proyecto, que se almacenan como archivos en Cloud Storage. Puedes transferir proyectos de Firebase entre proyectos mediante IAM.

Pruebas de aplicaciones

Firebase y AWS admiten el envío de pruebas automatizadas para que se ejecuten en diversos dispositivos alojados en la nube por el proveedor. Con estas pruebas el desarrollador puede realizar comprobaciones rápidas a fin de garantizar que la compilación de su aplicación funcione bien o entregar pasos específicos del código en la IU para que se ejecuten en el dispositivo o los dispositivos de la nube. Firebase Device Lab es compatible con dispositivos iOS y Android, y muchos frameworks de prueba en cada plataforma.

Función Amazon Device Farm Firebase Device Lab
Tipos de pruebas de iOS Appium, Calabash, XCTest, KIF, UI Automation XCTest, EarlGrey, bucle de juego
Tipos de pruebas de Android Appium, Calabash, Robotium, Espresso, UI Automator, pruebas de instrumentación personalizadas, explorador incorporado Robo, pruebas de instrumentación de Android, Espresso, bucle de juego
Localidad de implementación No seleccionable No seleccionable
Modelo de precios Por minuto o tasa fija Por hora de dispositivo mientras se ejecute la prueba, sin incluir la cantidad fija de pruebas gratuitas por día.

Estadísticas

Amazon Pinpoint y Google Analytics para Firebase admiten estadísticas, segmentación de público y campañas orientadas. Ambos son compatibles con la exportación de eventos a un servicio de almacén de datos. Además, Firebase Analytics se integra en otros servicios de GCP, como Firebase Crash Reporting, Firebase Remote Config, Firebase Cloud Messaging y Google Tag Manager.

Función AWS Mobile Hub/Pinpoint Google Analytics para Firebase
Estadísticas y campañas
Exportación a almacenes de datos Exportación a Amazon Redshift Exportación a BigQuery
Informes ilimitados
Incorporación de notificaciones
Remote Config N/A
Administración de etiquetas No Sí (Google Tag Manager)
Localidad de la implementación Global Global
Modelo de precios Se basa en el público objetivo mensual Gratis

Funciones adicionales

Tanto Firebase como AWS Mobile Hub incluyen funciones exclusivas.

Funciones adicionales de AWS Mobile Hub

Bots de conversación

AWS Mobile Hub incluye una función para agregar bots de conversación, llamada Conversational Bots. Esta característica integra Amazon Lex para la conversión de voz y texto con las funciones de AWS Lambda. Aunque los bots conversacionales no son una característica formal de Firebase, Google Cloud cuenta con Dialogflow y API.AI, que se pueden combinar de manera individual con Firebase a fin de lograr una experiencia de conversación para el usuario.

Funciones adicionales de Firebase

Crash Reporting

Firebase Crash Reporting ofrece dos opciones para informar fallas: Firebase Crash Tool y Fabric Crashlytics. Por el contrario, AWS Mobile Hub depende de las tecnologías de sus socios para realizar informes de fallas.

Distribución de versiones Beta de aplicaciones nativas

Además de los informes de fallas, Fabric Crashlytics ofrece Beta by Crashlytics para la distribución. Este es un marco de trabajo popular para la distribución de versiones Beta que permite invitar y revocar la invitación a usuarios, además de permitir la integración con otras bibliotecas de Fabric. Beta by Crashlytics también se integra en las herramientas de compilación de Fastlane para iOS y Android a fin de automatizar la distribución.

App Indexing

Firebase App Indexing permite indexar el contenido de las aplicaciones para que las Búsquedas de Google que se realicen en el dispositivo muestren vínculos a la aplicación en los resultados.

Los vínculos dinámicos de Firebase Dynamic Links llevan a la aplicación nativa cuando se abren en un dispositivo y a contenido web cuando se abren desde un navegador de escritorio. Para proporcionar estos vínculos dinámicos, Firebase crea un dominio que se puede usar para registrar el dominio del vínculo universal dentro de la plataforma de Android o iOS.

Invites

Firebase Invites es una función para la referencia de aplicaciones y permite que los usuarios de estas compartan aplicaciones de Firebase mediante vínculos dinámicos. Estos últimos se adaptan a la plataforma en que se encuentra el usuario invitado: Web, Android o iOS.

Configuración remota

Con Firebase Remote Config los desarrolladores pueden cambiar el comportamiento y el aspecto de una aplicación sin tener que actualizarla. Para controlar el aspecto y comportamiento de la aplicación, Remote Config usa valores predeterminados dentro de esta. Luego, los desarrolladores pueden usar la consola para anular los valores predeterminados dentro de la aplicación para todos los usuarios o parte de estos.

Supervisión del rendimiento

Firebase Performance Monitoring es una función en versión Beta que supervisa el tiempo de inicio, la actividad en primer y segundo plano, las solicitudes de red HTTP/S y los seguimientos personalizados que se crean con la API incluida.

Costos

Los precios de AWS Mobile Hub se basan en el uso de los componentes de servicio individuales. De manera automática, Firebase incluye una variedad de productos, como los que se indican a continuación:

  • Authentication (excluida la autenticación con número de teléfono)
  • Analytics
  • App Indexing
  • Dynamic Links
  • Invites
  • Remote Config
  • Cloud Messaging
  • Performance Monitoring y Crash Reporting

AWS Mobile Hub tiene planes en paquetes distribuidos en niveles intermedios y gratuitos. En Firebase, cada plan en paquete incluye lo siguiente (con ciertas limitaciones de uso):

  • Almacenamiento
  • Cloud Functions
  • Autenticación con número de teléfono
  • Hosting/entrega de contenido
  • Test Lab

Además de las limitaciones de uso intermedio, Firebase incluye costos individuales por servicio y de prepago.

Los productos adicionales de GCP, como BigQuery, se facturan por separado.

¿Qué sigue?

Consulta los demás artículos de Google Cloud para profesionales de AWS: