Opciones de almacenamiento en la nube con iOS

Estoy intentando crear un back-end en el que puedo hacer que muchos usuarios se comuniquen entre ellos con una aplicación para iPhone que estoy creando. He intentado trabajar con Core Data, Google App Engine, Google Cloud Storage y Amazon Web Services (RDS y Elastic Beanstalk). Desafortunadamente, después de semanas de intentar hacer funcionar todo esto, ¡nada de eso lo hará!

He estado tratando de ponerme en contacto con alguien que sabría cómo las startups (cuando eran pequeñas) como Instagram, Path y Pinterest han logrado hacer esto. Pero todo el mundo parece despreciar estas cosas tanto como estoy creciendo para …

Me encantaría que alguien simplemente planee EXACTAMENTE cómo necesito crear una base de datos de back-end que pueda guardar y consultar datos desde y que muchos usuarios puedan ver. ¡Eso significa que solo SQLite, Core Data, o Parse por sí mismo no va a funcionar aquí!

Un tutorial de algún tipo sería increíble.

En primer lugar, las tecnologías como CoreData y sqlite son típicamente dispositivos de almacenamiento local. El almacenamiento local del dispositivo no va a tener que compartir el almacenamiento en la nube.

Parse.com es una forma rápida para que los dispositivos accedan al almacenamiento en la nube y se pongan en marcha rápidamente. Especialmente útil para juegos y otras aplicaciones móviles para acceder a datos en la nube a través de un ID de aplicación y una clave de aplicación. Es un almacenamiento simple para evitar crear su propio backend si satisface todas sus necesidades y requisitos.

Cuando llegue a un backend en la nube de múltiples inquilinos en el que distribuye sus propios servicios y múltiples dispositivos que acceden a su aplicación en la nube, debe considerar la exposición de su API web. La exposición de RESTful API a través de http es excelente para dispositivos y clientes web. Exponer los datos como JSON es especialmente conveniente para la web y es fácil de consumir por los dispositivos.

Esos puntos finales de servicios web en la nube acceden a algún tipo de almacenamiento de back-end que está optimizado para el acceso simultáneo de varios clientes. Esto suele ser un backend SQL como MySQL, SQLServer, etc. o una solución NoSQL como mongodb , couchDB , etc.

Algunas tecnologías web front-end api para examinar:

  • ASP.net web api
  • Ruby on Rails
  • Node.js
  • etc …

Algunas tecnologías de almacenamiento de back-end para examinar:

  • SQL: MySQL , SQL Server / Azure SQL , Oracle
  • NoSQL: MongoDb, CouchDb, almacenamiento simple de Amazon S3, etc.

Si muchos de los clientes con múltiples inquilinos usan los datos, los backends pueden ampliarse (más y más) o fragmentarse. Sharding es donde los datos para múltiples usuarios se dividen en muchas bases de datos o almacenes de datos con algún tipo de algoritmo de búsqueda para que las solicitudes encuentren dónde se almacenan los datos de los usuarios. Los servidores de aplicaciones web front-end resumen el almacenamiento de back-end.

Finalmente, terminarás necesitando algún tipo de tecnología de almacenamiento en caché / búsqueda rápida (si tienes éxito :):

  • Redis : rápido en el almacenamiento de memoria a través de sockets
  • memcached : usos de facebook: valor clave simple en el almacenamiento en memoria caché en muchos servidores front-end.

Su pregunta es una pregunta amplia y abierta, así que comience a buscar en Google muchos de estos términos y tecnologías.

Cada uno de estos enlaces tendrá recursos y tutoriales. Obtenga una máquina virtual en la nube, juegue con cada una y decida cuál se adapta mejor a sus necesidades. No hay una solución única para todos.