Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Chef infra 在chef服务器上可以安全存储多少个cookbook版本_Chef Infra_Chef Recipe_Cookbook - Fatal编程技术网

Chef infra 在chef服务器上可以安全存储多少个cookbook版本

Chef infra 在chef服务器上可以安全存储多少个cookbook版本,chef-infra,chef-recipe,cookbook,Chef Infra,Chef Recipe,Cookbook,当我不断地将我的烹饪书的更新版本上传到厨师服务器时,我不得不怀疑厨师服务器可以存储的烹饪书版本的数量是否有限制 这是我甚至应该关心的事情,还是一个无关紧要的问题?磁盘空间显然不是我在这里担心的问题。从“单一责任原则”的角度来看您的问题,可能会得到一个技术性较低的答案 我的意思是:在任何好的系统中,每个组件都应该有一个明确的责任 现在,您可以问自己:您的厨师服务器是否有责任充当源代码管理工具 我的意思是:有像git、SVN之类的工具。。您命名它是为了允许对文本文件进行版本管理 你想让你的厨师服务员

当我不断地将我的烹饪书的更新版本上传到厨师服务器时,我不得不怀疑厨师服务器可以存储的烹饪书版本的数量是否有限制


这是我甚至应该关心的事情,还是一个无关紧要的问题?磁盘空间显然不是我在这里担心的问题。

从“单一责任原则”的角度来看您的问题,可能会得到一个技术性较低的答案

我的意思是:在任何好的系统中,每个组件都应该有一个明确的责任

现在,您可以问自己:您的厨师服务器是否有责任充当源代码管理工具

我的意思是:有像git、SVN之类的工具。。您命名它是为了允许对文本文件进行版本管理


你想让你的厨师服务员也这么做吗;或者使用不同的基础设施对“配置文本文件”进行版本控制是更好的策略吗

从“单一责任原则”的角度来看您的问题,可能会得到一个技术性较低的答案

我的意思是:在任何好的系统中,每个组件都应该有一个明确的责任

现在,您可以问自己:您的厨师服务器是否有责任充当源代码管理工具

我的意思是:有像git、SVN之类的工具。。您命名它是为了允许对文本文件进行版本管理


你想让你的厨师服务员也这么做吗;或者使用不同的基础设施对“配置文本文件”进行版本控制是更好的策略吗

因此这取决于您的工作流程。Chef的生态系统使用了两个版本约束解算器:Chef服务器始终使用gecode(也称为depsolver),策略文件始终使用molinillo,Berkself可以根据配置使用其中一个。当您遇到数千个浮动的总体版本时,Gecode可能会开始窒息,但这在很大程度上取决于您对格式良好的依赖关系版本约束的理解程度。Molinillo在这方面做得更好,但这意味着要么使用
berks apply
锁定您的所有环境,要么使用PolicyFile(即不要让Chef Server尝试针对整个宇宙运行约束解决方案)。

因此这取决于您的工作流。Chef的生态系统使用了两个版本约束解算器:Chef服务器始终使用gecode(也称为depsolver),策略文件始终使用molinillo,Berkself可以根据配置使用其中一个。当您遇到数千个浮动的总体版本时,Gecode可能会开始窒息,但这在很大程度上取决于您对格式良好的依赖关系版本约束的理解程度。Molinillo在这方面做得更好,但这意味着要么使用
berks apply
锁定您的所有环境,要么使用策略文件(即不要让Chef Server尝试对整个宇宙运行约束解决方案)。

我认为这个问题不会有好的答案。我想说的是,你不想围绕这个问题设计你的工作流程,也不想每次上传时都删除食谱

定期垃圾收集(一年一次或两次)可能是个好主意,但它将在很大程度上取决于您如何构建您的烹饪书及其依赖关系,以及您对正在使用的dep解算器(gecode或molinillo)的“压力”有多大

如果你没有看到缓慢的dep解决,那么就没有必要这样做。如果你看到的是缓慢的DEP解决方案,那么你应该强烈地考虑去做。 如果你有一个很大的网站,有几十个人贡献了数百本烹饪书,而且你已经多年没有垃圾收集过时的旧烹饪书版本,而且你的一些流行烹饪书在服务器上存储了数百或数千个版本。。。考虑一下可能会有用

如果你刚出发,主要是你的团队和几十本食谱,最多有几十个版本,那么这就不太可能成为问题

如果你介于两者之间。。。也许吧


(10月8日2016):另一个要考虑的问题是,有很多食谱版本,有时候DePoSver在挑选那些已经被遗忘的非常旧的烹饪书版本时变得“过于聪明”,但这会让它对所有的约束条件进行调整。我最近遇到了两本约束冲突的烹饪书(dovecot想要

ohai~>3.0
,chef_nginx想要
ohai~>4.0
),为了解决这个问题,depsolver帮助我将包装器烹饪书降级为一个非常旧的版本,以至于我使用uw imapd而不是dovecot,这消除了dovecot中的ohai约束,让depsolver很开心,同时也让我很难过,因为Ubuntu已经好几年没有发布uw imapd了。解决这一问题的一种方法是更明确地使用pin将烹饪书约束为最新版本。不过,您也可以简单地将那些未使用的版本从chef服务器中转储,这样就无法对其进行解算。

我认为这个问题不会有好的答案。我想说的是,你不想围绕这个问题设计你的工作流程,也不想每次上传时都删除食谱

定期垃圾收集(一年一次或两次)可能是个好主意,但它将在很大程度上取决于您如何构建您的烹饪书及其依赖关系,以及您对正在使用的dep解算器(gecode或molinillo)的“压力”有多大

如果你没有看到缓慢的dep解决,那么就没有必要这样做。如果你看到的是缓慢的DEP解决方案,那么你应该强烈地考虑去做。 如果你有一个很大的网站,有几十个人贡献了数百本烹饪书,而你没有垃圾收集旧的、过时的烹饪书