Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment 为什么盐云比地形慢?_Deployment_Google Compute Engine_Salt Stack_Terraform_Salt Cloud - Fatal编程技术网

Deployment 为什么盐云比地形慢?

Deployment 为什么盐云比地形慢?,deployment,google-compute-engine,salt-stack,terraform,salt-cloud,Deployment,Google Compute Engine,Salt Stack,Terraform,Salt Cloud,我将盐云和地形作为管理GCE基础设施的工具进行比较。我们使用盐栈来管理VM配置,因此我自然更愿意使用盐云作为栈的一个组成部分,并逐步淘汰地形作为遗留物 然而,我的用例对VM部署时间至关重要,因为我们提供了PaaS解决方案,其中VM是根据客户请求部署的,因此需要在几秒钟内单击按钮即可交付就绪的VM 让我困惑的是,为什么盐云部署基本机器要花这么长时间 我创建了一个并驾齐驱的简单测试,基于默认的CentOS7映像,使用terraform和salt cloud(两者都以并行模式)部署三个虚拟机。而且时差

我将盐云和地形作为管理GCE基础设施的工具进行比较。我们使用盐栈来管理VM配置,因此我自然更愿意使用盐云作为栈的一个组成部分,并逐步淘汰地形作为遗留物

然而,我的用例对VM部署时间至关重要,因为我们提供了PaaS解决方案,其中VM是根据客户请求部署的,因此需要在几秒钟内单击按钮即可交付就绪的VM

让我困惑的是,为什么盐云部署基本机器要花这么长时间

我创建了一个并驾齐驱的简单测试,基于默认的CentOS7映像,使用terraformsalt cloud(两者都以并行模式)部署三个虚拟机。而且时差惊人,terraform需要大约30秒来部署请求的机器(这与通过GCE GUI部署所需的时间相似),salt cloud需要大约220秒才能在同一区域的同一帐户下部署完全相同的机器。特别奇怪的是,前130秒盐云并没有开始部署,似乎什么也不做,只有在大约130秒过去后,它才会显示消息
部署VM
,这些VM在GUI中显示为部署中的

盐云有什么明显的地方让我错过了,使它变得如此缓慢吗?能不能加快速度?
我更愿意使用完整的盐堆,但由于目前的速度问题,我实在负担不起。

请注意,这个答案是基于我对地形和盐云的理解而做出的推测,我还没有通过实验进行验证

我认为原因是Terraform保留了前一次运行的状态(本地或远程),而salt cloud不保留状态,因此在实际配置任何东西之前查询云

由于这两种工具都是幂等的(您可以安全地多次运行它们),因此需要这两种方法(在执行某项操作之前保持状态或查询)

例如,我认为如果您删除Terraform的状态文件并重新运行它,它将假定云中没有任何内容,并将实际实例化一个副本。这并不是说terraform做得不对,而是要表明状态很重要,terraform文档明确指出,在团队中操作时,状态应该远程保存,以避免此类问题

按照我的思路,这也意味着,如果您在详细调试模式下运行saltcloud,或者查看它生成的网络流量,在您提到的前130秒(在它说“部署VMs”之前),您应该会看到saltcloud向云提供商发出的查询,以动态构建状态


最后一点,salt cloud不存储前一次运行的状态并不意味着它在团队环境中自动安全使用。只要没有两个团队成员同时运行它,它就可以安全使用。另一方面,在Consor上具有远程状态的terraform允许例如锁定,这样团队的并发使用将始终是安全的。

在提供盐云虚拟机之后,它还尝试将盐仆从安装到目标虚拟机,并尝试配置主仆从。此外,您是否尝试使用
-P
并行开关并行创建所有三个仆从,而不是顺序等待它们?Terraform没有minion配置部分,这将节省时间。我测量了从主机引导开始到结束的时间。salt cloud会在控制台中告诉您初始机器引导何时结束,它会继续进行资源调配,即minion安装、主minion连接和证书、根据salt状态进一步进行资源调配等。因此,我已经解释过的时间线中不包括这一点。是的,我用过平行标志。TBH我不明白为什么会有这个标志,对于我来说,默认情况下它应该是并行的。我认为因为在并行模式下它不会打印输出