Развертывание Node + MongoDB API на AWS или GCP

Я работаю над API Node + MongoDB, и API развернут на виртуальной машине на платформе Google Cloud. В настоящее время данные хранятся в экземпляре MongoDB, работающем на виртуальной машине.

Является ли запуск локального экземпляра MongoDB для производства хорошей практикой? И как различные облачные сервисы, предоставляющие MongoDB, соотносятся друг с другом? И каковы некоторые хорошие практики для обеспечения масштабируемости API? Также может ли развертывание API в Kubernetes в качестве контейнера дать лучшие результаты по сравнению с виртуальными машинами?

Одна из возможных идей — использовать одну из собственных баз данных Google для хранения данных. Эти базы данных, такие как Google Datastore — cloud.google.com/хранилище данных — предоставляют управляемые базы данных как услугу. Вам нечем управлять, и масштабирование просто встроено.

Kolban 27.05.2019 18:09
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Сначала вы можете просто выполнить вертикальное масштабирование, добавив больше ЦП и ОЗУ к текущему запущенному экземпляру, и да, это будет нормально в течение некоторого периода времени. Но на самом деле это больше похоже на временный план продления жизни, поскольку в какой-то момент ваш экземпляр больше не сможет выполнять вертикальное масштабирование. А вот и горизонтальная шкала...

Необходимо создать новый экземпляр, чтобы справиться с растущим объемом трафика, и как бы вы спроектировали новый экземпляр для этого?

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

Вот почему вы не должны запускать интерфейс API и базу данных в одном и том же экземпляре. Его нельзя было масштабировать.

Так как насчет базы данных? Это довольно просто. Просто поместите его в другой экземпляр виртуальной машины! Если база данных все еще может обработать запрос, вы можете просто разделить сервер базы данных между экземплярами сервера. Но если есть узкое место на стороне базы данных, вы можете масштабировать свою mongoDB отдельно с помощью кластера или около того.

Если у вас нет времени, вы можете рассмотреть возможность использования готового к использованию сервиса, такого как надстройка Heroku, например, монголаб, для управления экземпляром MongoDB за вас.

Ваше здоровье.

Спасибо за ответ

Saurabh Mittal 28.05.2019 18:34

Другие вопросы по теме