2015-01-29 2 views
2

Я создал несколько приложений, используя Parse.com, и только что был продвинут на финансируемый продукт. Приложение (социальная сеть) довольно сложно в плане реализации Parse. Он имеет:Transition App From Parse.com

  • режиме реального времени чат
  • лента
  • Много облаков кода
  • IOS клиента и Android, начиная в ближайшие пару недель

Я испытал много типичные ловушки Parse (тайм-ауты, превышение ширины запроса и т. д.), и это всего лишь около 2 тыс. пользователей. С нашим новым финансированием вполне вероятно, что в следующем году мы поднимемся, по крайней мере, на 40 тыс. Пользователей, что усилит проблему.

Все сводится к тому, что мне кажется, что нам нужно отойти от Парса, но вопрос в том, как избежать простоя.

Как вы перешли на живые приложения с Parse.com? Какие-либо полученные или извлеченные уроки?

Мои первоначальные мысли - реализовать тонкий API (с использованием отдельного сервера), чтобы абстрагировать взаимодействие клиента с Parse, чтобы я мог перейти к приложению. Кто-нибудь принял такой подход?

EDIT:

Учитывая тот факт, что Разбор выключая этот вопрос актуален для большего числа людей, так что я думал, что я хотел бы добавить, что я в конечном итоге делает.

Мы закончили создание приложения на NodeJS/Express/Mongoose с помощью Mongo-бэкэнда (используя Compose.io). Если вы можете написать код облака, который вы можете написать для Node, а Mongo - это то, что использует Parse. Мой анализ вариантов состоял в том, что для создания какого-то среднего слоя потребуется много времени, чтобы усложнить ситуацию. У меня была новая версия вместе примерно через 3 месяца, и она живет с гораздо большей и очень активной базой пользователей.

+0

Как человек, который надеется получить эту проблему в будущем, расширил ли вы уровень бесплатного 30-каратного/второго уровня? Какие проблемы вы видели? – mbm29414

+0

Если мы прошли мимо 30 рек/сек, это было только очень кратко. Проблемы, которые мы наблюдаем, в основном связаны с заполнением новостной ленты с использованием сложных правил и тайм-аутов, которые синтаксический анализ накладывает на все запросы. – 1kmonkies

+1

Рассматривали ли вы выполнение некоторых из более трудоемких методов на другом сервере и загрузку результатов. (Например, запускать их как запросы C# и загружать результаты). Это может не иметь смысла во многих случаях, но это очень помогло нам в краткосрочных проектах, когда мы хотим легко использовать iOS/Android API, но мы столкнулись с кирпичной стеной с тайм-аутами облачного кода. (Не очень хороший долгосрочный подход, но хорошо, если у вас нет избыточного времени разработки). – ardrian

ответ

1

Предлагаю сначала перейти к вашей модели данных. Неправильно спроектированная модель данных обойдется вам очень дорого. При разработке модели данных, несколько вещей, чтобы рассмотреть:

  1. У вас есть огромный объем хранения данных, но меньше, выполнение запроса предел. Поэтому, если вы можете правильно управлять, лучше иметь избыточность для сокращения запросов/запросов на сервер.
  2. Вы должны стараться изо всех сил избегать операций вставки/обновления пакетных данных, имея такую ​​модель.

Что касается миграции, я думаю, что, поскольку у вас есть код облака, вы относительно безопасны.

  1. Убедитесь, что данные переносятся. Это будет немного больно и может предпринять дополнительные усилия для обеспечения целостности.
  2. Как только миграция данных будет выполнена, сделайте свой код облака как оболочку. Имейте свой собственный api на своем собственном сервере, а затем сделайте запрос на этот api из облачного кода, используя Parse.Cloud.httpRequest и откройте ответ.
  3. Отпустите обновление приложения, чтобы новые пользователи могли напрямую взаимодействовать с вашими собственными API.