Масштабирование сервера Parse
Сейчас, в 2020 году, прошло более 4 лет с тех пор, как Facebook решила выпустить версию Parse с открытым исходным кодом. За это время было выпущено множество новых функций, а сообщество сторонников стало больше, чем когда-либо. Мы гордимся количеством пользователей Parse.com, которые впоследствии решили довериться серверной платформе Parse от Back4App. Мы хотим поделиться с сообществом некоторыми уроками, которые мы извлекли с начала этого пути.
Масштабирование Parse было проблемой для нескольких пользователей Parse, и мы раскроем секреты того, как масштабировать Parse.
Parse Server был запущен как версия Parse.com с открытым исходным кодом, но он оказался ценным ресурсом во многих других отношениях. Он предоставляет отличный NodeJS-фреймворк для создания и масштабирования ваших приложений. Речь идет о масштабировании приложений – в Back4App мы масштабировали некоторые приложения до 10.000 Req/s (около 80.000 одновременных пользователей). Все это возможно при полном контроле над бэкендом и отсутствии блокировок и ограничений, присущих решениям Black Box.
Этот опыт доказывает, что Parse Server может масштабироваться до гораздо большего, чем 600 запросов/с, заявленных Parse.com на своей странице с ценами (см. ниже), что намного превышает ограничения, налагаемые некоторыми другими бэкендами “черного ящика”. Ряд ценных функций гарантирует, что Parse Server – это лучший вариант масштабирования приложений. Я хочу подчеркнуть некоторые из наиболее важных элементов.
Contents
1 – Масштабирование без серьезной перестройки
Гибкость при добавлении новых модулей: По мере роста вашего приложения вам понадобятся новые функции, чтобы удержать пользователей или даже улучшить процесс привлечения, а иногда полная платформа бэкенда может быть недоступна. Поскольку Parse Server – это решение с открытым исходным кодом, оно позволяет устанавливать множество модулей npm(NodeJS) и интегрировать новые API для доступа к более продвинутым функциям.
Вертикальное и горизонтальное масштабирование: Parse Server разработан для поддержки беспроблемного горизонтального масштабирования, например, для разделения состояния между экземплярами. Это позволяет просто создавать новые идентичные экземпляры Parse Server для совместной обработки запросов приложений. Это поможет вам найти оптимальный баланс между вертикальным масштабированием, которое просто увеличивает конфигурацию вашей машины, и горизонтальным масштабированием для оптимизации производительности и затрат. Например, вы можете начать с одного экземпляра Parse Server на одной машине и вертикально масштабировать его на облачную платформу, постоянно контролируя стоимость и производительность. Как только ваше приложение вырастет, вы можете создать копию этих серверов и добавить балансировщик нагрузки, чтобы лучше распределять запросы.
Запуск приложения в отказоустойчивой инфраструктуре
Резервирование очень важно, когда вы начинаете масштабировать свое приложение. Последнее, чего вы хотите, – это чтобы ваш сервер упал при большом количестве пользователей. Убедитесь, что вы используете следующую структуру, как только начнете масштабировать свое приложение.
- Балансировщик нагрузки
- Автоматическое масштабирование для серверов приложений (минимум два)
- Набор реплик для серверов баз данных (два сервера + арбитр).
Оптимизируйте производительность запросов: Вы можете использовать пользовательские запросы приложений Parse Server для достижения наилучшей производительности для каждого типа приложений.
2-Стеки Parse Server надежны
На первый взгляд это может показаться сложной задачей, но на самом деле масштабируемость весьма впечатляет. Даже с учетом однопоточной природы Javascript, Node может использовать преимущества нескольких ядер с помощью модуля кластера – это позволяет разработчику создать сеть процессов с общими портами. Для масштабирования на несколько машин разработчик может использовать nginx для балансировки нагрузки на несколько экземпляров Parse Server. Кроме того, аутентификация сайта Node может быть эффективно выполнена с помощью библиотеки connect-auth. Этот процесс позволяет избежать некоторых распространенных ошибок при разработке, а скорость является еще одним важным преимуществом.
3-Развертывание Parse Server в любом месте
Вы можете установить Parse Server на выбранные вами серверы. Это позволит вам избежать таких проблем, как задержка, и использовать наилучшую инфраструктуру, соответствующую вашим потребностям. Если у вас есть навыки, вы можете создать собственную инфраструктуру, оптимизированную для вашего приложения, и разместить на ней Parse Server. Вы также можете выбрать облачное решение, если считаете, что оно будет работать лучше.
Развернуть Parse можно в любом крупном облаке, доступном на рынке. В качестве примера можно привести AWS, Google Cloud, Digital Ocean или Azure. Если вы предпочитаете управляемый и специализированный сервис, вы можете обратиться к Back4app.
Мы пришли к выводу, что модель с открытым исходным кодом является ключом к успеху Parse Server. Эта модель действительно гарантирует, что вы сможете делать с фреймворком все, что захотите, как только масштабируете свое приложение. Это в значительной степени объясняет, почему Parse Server стал самым популярным фреймворком с открытым исходным кодом для создания бэкендов приложений. В настоящее время в git-репозитории находится более 26000 звездочетов, а сообщество насчитывает более 100.000 тысяч разработчиков.
Вам понравился этот пост? Зарегистрируйтесь на Back4App бесплатно.
Как масштабировать Parse Server?
Чтобы достичь наивысшего уровня производительности с большими приложениями Parse, пожалуйста:
Оптимизируйте свои запросы для производительности;
Запускайте свое приложение в отказоустойчивой и избыточной структуре;
Добавляйте модули NPM в широких масштабах
Насколько большим может быть приложение Parse?
В Back4app мы уже масштабировали приложения выше отметки в 10 000 запросов в секунду. Таким образом, приложения могут стать довольно большими при наличии соответствующей инфраструктуры.
Где я могу развернуть Parse?
Вы можете развернуть Parse в специализированных сервисах хостинга Parse, таких как Back4app, или в любом облаке, например AWS, Azure, Alibaba, Google Cloud или Digital Ocean.