Развертывание мультисервисного приложения у облачного провайдера - PullRequest
0 голосов
/ 26 мая 2020

Существует несколько руководств о том, как развернуть контейнерную службу в облаке: AWS, Google Cloud Platform, Heroku и многие другие имеют хорошие руководства о том, как это сделать.

Однако большинство реальные приложения состоят из двух или более служб (например, базы данных + веб-сервер), а не только из одной службы.

Разве это плохая практика развертывать различные службы мультисервисного приложения для разные кластеры (например, развернуть базу данных в кластере GKE, а веб-сервер - в другом кластере GKE)? Я спрашиваю об этом, потому что мне очень сложно развернуть простое веб-приложение в одном кластере, в то время как я ожидал, что после того, как я настрою свои Dockerfile s и docker-compose.yml, все будет работать вне - box (как указано в документации Docker Compose и Kubernetes), и у меня будет небольшой кластер с 1 контейнером для моей базы данных и 1 контейнером для моего веб-сервера.

Итак, мои вопросы:

  • Неправильно ли развертывать различные сервисы мультисервисного приложения в разных кластерах?
  • Что в целом является стандартным де-факто способом развертывания сети? приложение с базой данных и веб-сервером в облако? Какие самые простые инструменты для этого?
  • На практике, каков самый простой способ развернуть приложение React + Express + MongoDB у любого облачного провайдера с учетной записью бесплатного уровня?

1 Ответ

3 голосов
/ 27 мая 2020

Развертывание нескольких служб (приложений AKA), которые разделяют между собой некоторые logi c в одном кластере / пространстве имен, на самом деле является наилучшей практикой. Я не уверен, почему вам это сложно, но вы можете взять платформу оркестратора контейнеров, такую ​​как Kubernetes, и развернуть столько приложений, сколько захотите - в том же проекте в том же кластере.

Я бы рекомендовал получить в облачную платформу, которая обслуживает оркестратор контейнеров, такой как Google Container Engine или Google Cloud Platform (или любую другую облачную платформу, которую вы хотите), и начните исследовать ее. Вы также можете прочитать о контейнерах в целом или Kubernetes .

Итак, практически говоря, я бы, вероятно, создал MongoDB и приложение express в одном пространстве имен (и любая другая служба или приложение, связанное с проектом в другом контейнере в том же пространстве имен).

...