2016-11-17 6 views
-1

Мне нужно мнение и передовая практика от кого-то более опытного в настройке nginx + nodejs + mongodb.Решение для высокой доступности для NodeJS, Nginx и MongoDB

Я работаю над настраиваемым облачным приложением, основанным на MongoDB и NodeJS. В качестве обратного прокси-сервера я использую nginx, а для управления NodeJS я использую PM2. На данный момент у меня есть отдельные серверы, один для базы данных MongoDB и один для обслуживания приложения API (Nginx + NodeJS). На данный момент я использую PM2, и я настроил этот API как кластер на 1-ядерный VPS.

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

Благодаря

ответ

1

«Я считаю, что достижение HA это не трудно ... Я не должен много опыта в настройке HA»

Там старая поговорка, что вы должны никогда не говорите, что у вас нет опыта в чем-то, но вы не думаете, что это сложно. Как трудно это вы узнаете в самое худшее время.

Если вы не знаете, как это сделать, тогда никто не ответит на переполнение стека, потому что для получения необходимого опыта требуется много лет. Вам было бы лучше с помощью рабочих решений вместо того, чтобы изобретать свои собственные. Для Mongo вы можете использовать Compose или mLab. Для узла вы можете использовать Heroku или AWS Elastic Beanstalk. Для статических активов используйте MaxCDN или Cloudflare. На выбор гораздо больше услуг.

Конечно, если вы можете сделать это сами лучше, тогда Compose и Heroku, то непременно сделайте это. Но если вы этого не сделаете, вы сэкономите массу неприятностей, если поедете с рабочим решением.

Еще одним плюсом является то, что и Heroku, и mLab дают вам бесплатные планы начать разработку сразу, не платя ничего, но как только ваше приложение получит некоторую тягу, вы находитесь в хорошем месте, чтобы начать массовое масштабирование, если вам нужно.

Даже если вы решите опрокинуть свое решение, вы должны прочитать документацию обо всех этих и подобных сервисах, потому что они прекрасно объясняют функциональность, которую вы будете выполнять, и проблемы, с которыми вы столкнетесь.

+0

Я вижу вашу точку зрения, и я знаю о проблемах, которые могут возникнуть в пользовательской архитектуре, но это то, что у нас есть. Я не хотел сказать, что все это легко достичь, но я думаю, что мы используем солидные и перспективные технологии с возможностью быть легко масштабируемыми. Я не ожидаю, что кто-то скажет мне все, а просто ищет направления и лучшие практики, больше ничего. – lobuljen

Смежные вопросы