他们说在生产中定期运行它太危险了,因为他们不确定代码是否是幂等的.
我的疑问是:
>有多少人使用Orchestration工具进行自举?
这不就像在小巷里以20英里/小时的速度驾驶布加迪吗?
>当您放大时,您是否定期运行此问题?你会怎么处理它? (我的一种方式
知道是以独奏模式运行代理并让他们下载
来自某些存储库/工件的烹饪书,可以同时处理多个下载,而不是压倒Puppet / Chef服务器).
>我如何鼓励团队将代码修改为幂等并定期运行代理?或者从Chef转移到简单的bash,以减少维护/编写代码的开销.
>我是否正确地说,我们没有像他们应该使用的那样使用这些工具?
>我在这里丢失/忽略任何东西吗?
解决方法
像Terraform这样的工具实际上专注于这个过程的这一部分.我还使用ansible来完成一些不需要经常重新运行的临时任务.
但一般来说,最佳操作是至少每小时运行一次配置管理.授予或删除访问权限通常通过这些机制发生,延迟更新可能会导致合规性或可用性问题.在一家大型商店,我们将木偶分成两部分,因此可以暂停特定于应用程序的内容而不会破坏处理访问控制更新并且“无法”被切断的“影子木偶”.
经常跑步的问题
如果你写了糟糕的食谱,那么你可以很快地销毁所有的生产.有一些过程,其中角色被释放到QA中并在进行分段之前进行验证并在进行prod之前重新验证. Chef拥有内置的测试机制.类似的技术可以与其他技术一起使用.
如何鼓励定期运行它
我首先关注地毯下的问题.如果您不经常运行您的食谱,那么由于操作系统或您的应用程序的更改,您将不会注意到它们何时开始不起作用.
然后我会提到在需要时可以在任何地方快速进行更改.厨师运行之间的间隔应该是您愿意等待更改在整个环境中传播的最长时间.
你说得对吗?
大多.如果它对他们有效,他们可能看不到任何需要改变的东西.您可能需要提供一个演示来展示价值并让人们真实.或者您可能需要等待您的组织成熟到能够处理您正在教授的内容的程度.
你错过了什么?
您似乎没有考虑的主要因素是可能的性能影响.如果应用程序对在后台运行的事物非常敏感,那么您可以在厨师运行时看到更低的吞吐量或更高的延迟.如果是这种情况,您需要调整食谱或仅让它在非高峰时间运行.
我见过的另一件事就是内存耗尽.该应用程序逐渐咀嚼记忆,直到厨师不能再运作.希望你能监控记忆水平,以及厨师是否正在努力捕捉这类事情.
除了性能和内存之外,我建议您阅读像Release It这样的书,它解释了如何构建可靠的生产系统.