将多服务应用程序部署到云提供商

时间:2020-05-26 16:38:02

标签: amazon-web-services docker heroku google-cloud-platform cloud

有几本有关如何将容器化服务部署到云的教程:AWS,Google Cloud Platform,Heroku以及许多其他人都提供了有关如何执行此操作的不错的教程。

但是,大多数现实世界中的应用都是由两项或多项服务(例如数据库+ Web服务器)组成的,而不仅仅是一项服务。

将多服务应用程序的各种服务部署到不同的集群(例如,将数据库部署到GKE集群,将Web服务器部署到另一个GKE集群)是不好的做法吗?我之所以这样问是因为,我发现很难将一个简单的Web应用程序部署到单个集群中,而我希望一旦设置了Dockerfiledocker-compose.yml,一切都会正常进行,即用型(如Docker Compose和Kubernetes的文档所宣传的),我将能够拥有一个小型集群,该集群中有1个用于我的数据库的容器和1个用于我的Web服务器的容器。

所以我的问题是:

  • 将多服务应用程序的各种服务部署到不同的集群是否是错误的做法?
  • 通常,将具有数据库和Web服务器的Web应用程序部署到云的实际方法是什么?实现此目的最简单的工具是什么?
  • 实际上,我可以将React + Express + MongoDB应用程序部署到具有免费帐户的任何云提供商的最简单方法是什么?

1 个答案:

答案 0 :(得分:3)

在同一集群/名称空间上部署在它们之间共享某些逻辑的多个服务(AKA应用程序)实际上是最佳实践。我不确定为什么会遇到困难,但是您可以使用一个容器协调器平台(例如Kubernetes)并在同一集群中的同一项目中部署任意数量的应用程序。

我建议您进入一个服务于Container Orchestrator的云平台,例如Google Cloud Platform(或您想要的任何其他云平台)的Google Container Engine,然后开始探索。您还可以阅读全部containersKubernetes的信息。

因此,实际上,我可能会在同一名称空间(以及与该项目在同一名称空间内的另一个容器上的所有其他服务或应用程序)内创建MongoDB和express应用程序。