我想知道,当谈到一个大型 CHEF 食谱与许多小型食谱时,普遍的共识是什么。
举个例子,假设你想部署一个 Radius 服务器,你是否会有单独的配方:
- MySql DB(仅软件)
- MySql DB 配置(数据库、表创建、授权等)
- Radius pkg 安装
- Radius 配置文件
或者你会把所有这些都放在 1 或 2 个大食谱中吗?
我的看法是,应该有很多小菜谱,每个菜谱都执行一项非常具体的任务,但我不确定什么才算是最佳做法。
答案1
国际海事组织越小越好。小型配方可让您在基础设施增长时将其拆分。例如,今天您可能在一台服务器上部署 RADIUS 和 SQL 后端,但将来合并 SQL 后端可能更有意义。此外,测试小型单元更容易。如果 SQL 后端位于其他地方,您不必将整个东西聚合在一起来kitchen
测试模板更改或其他内容。
但这需要与其他问题保持平衡;如果你过于严格地遵循“越小越好”的原则,那么你的食谱将只有单一的资源和大量的包含内容。没有人愿意重复这项工作,所以DRY 原则——不要重复自己——是常见的平衡方法。