2017-02-13 44 views
0

好吧,所以我想以一种允许每个组织获得他们自己的实例的方式构建我的应用程序。为每位客户部署我的应用程序实例?

我在这里的思考方式是,我可以在AWS或数字海洋或其他任何地方做一些事情,每当新客户向我们注册他们的公司时,部署我的java(dropwizard)应用程序。

这将是虚拟化,我会希望,所以我会让这些实例在各种虚拟服务器上运行。

基本上,当一个公司注册......我想旋转起来的核心API的实例,以及数据库服务器的实例(或两者可能是一个实例,在这里,我猜)

这是一件事吗?我会谷歌它,但我不完全确定要寻找什么!

我知道这不是一个dropwizard问题 - 但我这样标记它是因为它是我正在构建的一个dropwizard应用程序 - 我认为该社区中的人可能有类似的担忧!请随意编辑!

回答

0

您需要使用CloudFormation,Ansible,Terraform,Chef,Puppet等类似的东西来自动化一个环境。这个空间中有很多工具。这些工具被称为基础结构作为代码(IaC)。一旦你拥有了自动化功能,为新客户建立一个新环境将是一个简单的任务,可以启动相应的脚本。

+0

真棒,感谢您的信息 - 此外,你知道是否有办法做到这一点,所以它不是每个客户的实例,但更像是它会旋转数据库和服务器的额外实例如果流量很高?并在交通不便时把它们旋转下来?并保持数据同步? – MickeyThreeSheds

+0

您可以根据需要使用AutoScaling组和Elastic Load Balancer来处理启动的Web服务器,并在不需要时关闭它们。如果你想保持客户之间的环境隔离,你也可以考虑使用Docker容器和ECS服务。 数据库要求更难以扩展,解决方案将取决于您使用的确切数据库引擎。如果可能,请考虑使用AWS Aurora作为数据库。 –

+0

嘿 - 粘贴其中的一条评论作为答案,以便我可以将其标记为正确的答案! :) 谢谢! – MickeyThreeSheds

相关问题