就像问题中提到的,两种方案各有优劣,具体方案需要结合企业的实际需求进行选择,选择时候可以参考:
性能:使用VM+容器方案,中间多了一层Hypervisor,性能大概损耗10%~20%。
成本:对于开源解决方案,没有额外的软件成本;如果是商用解决方案,VM比物理机方案多出宿主机的操作系统和Hypervisor管理软件都是成本。
可维护性:由于VM可以安装Agent进行管理,各种管理软件和配套运维工具齐备,可维护性比物理机高。另外一方面,VM方案由于部署负载,问题特别是网络和存储的性能问题定位比较难。
可靠性:需要从两个方面看,VM多了一层操作系统和Hypervisor,多了故障点,但是VM有可以提供故障迁移的能力,所以可靠性上,各有千秋。
其他:VM方案可以让容器和虚拟机应用共享同一个物理机集群,最大化资源使用率。
综上所述:
如果企业已经有了一个比较稳定的虚拟机平台,而且运维经验也有了的话,建议还是虚拟机部署。
如果容器平台独占物理集群,对性能要求比较高(特别是网络),建议物理集群。
如果成本敏感,而且又计划将所有应用和服务部署在容器上,建议物理集群。