扩展和容量规划的最佳实践:仅VM?VM +容器?仅集装箱?集群?还有吗


1

(我找不到类似的问题,但已经回答了,但由于我是法国学生,所以也许我不使用好话;))
我要寻找的最接近的答案是:可扩展Web应用程序硬件拓扑最佳实践,但不能解决所有问题

我建立了一个小型私有云(Openstack),我可以在其中运行KVM VM,大多数情况下是为我的数十个网站以及某些客户端运行每个域/网站一个VM。
我计划测试是否可以演变为“混合云”,使某些事物在我的云中运行,而另一些事物在EC2上运行,因此我想确定我的“做事方式”是否最适合我的使用。
这些VM运行CoreOS,然后运行不同的Docker服务(一个用于Nginx的容器,一个用于pgsql的容器,等等)。如果一项服务在某些方面太“短”了,那么我要么创建一个更大的VM,将旧的VM复制到更大的VM并删除旧的VM,要么我为需要的服务创建一个专用的VM(例如,第二个专用于Nginx的VM,以处理更多连接。

但是,我想知道自己是否做错了事。
我之所以选择使用此“模型”,是因为我希望在不同的域/客户端之间建立强烈的隔离,因为我想回想起过去并逐渐习惯Docker,并且因为我发现Docker是最有效的方法之一快速部署服务。

我是否应该只使用每个服务具有一个VM(而不是每个域一个VM)的VM(因此没有容器)?
还是应该只使用容器来分隔不同的服务,然后在节点中将所有服务混合在一起运行?就像数十个容器,它们分别提供不同的服务和不同的客户?然后,如何有效隔离不同的域/客户端?然后如何扩展这些服务?仅添加更多节点?
还是我应该创建一个由大型VM或裸机组成的集群,然后使用它们来创建一个大型CoreOS集群,该集群应该能够通过向其添加更多裸机节点来进行扩展?然后适用于容器的相同问题。

抱歉,如果我的问题看起来太愚蠢,新手或不合适,但我宁愿现在问,而不是什么时候退后一步;)

任何建议欢迎:)

ÿ



好吧,我确实读过“您可以帮助我进行容量规划吗?” 但我没有找到问题的答案。Mine专注于如何以可伸缩的方式同时使用VM和Container。
Yannovitch 2015年

Answers:


1

既可以使用虚拟机可以使用容器,特别是在这种情况下。

虚拟机提供了既便宜又昂贵的安全隔离层:-劳动力便宜,因为您不必为使用虚拟机实现良好的安全性而付出很大的努力;-资源昂贵,因为VM的开销可能很大,尤其是对于需要适量RAM的小型服务。

(“虚拟化税”可以被认为是一个很小的常数;对于大型服务,该常数可以忽略不计,但是对于小型服务,它成为总足迹的很大一部分。)

另一方面,容器为您提供了一种便宜而有效的软件隔离和部署方法(从某种意义上说,您可以并排部署多个容器而不必担心版本冲突)。

此外,如果您要实施混合云(即从私有云到公共云的溢出),容器是桥接两种环境,抽象化它们之间的差异的一种非常简单的方法。

我的个人策略(假设我正确理解了您的需求)是将租户与虚拟机隔离,并依靠简单的私有云(OpenStack或其他),部署在容器中,并在私有云和公共云之间移动这些容器必要时云。当然,您可以重新分配您的VM(在任何一个云上)以适应资源需求的波动。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.