There are only two hard things in Computer Science: cache invalidation and naming things. – Phil Karlton

Chef을 써보면서, 요리에 관련된 메타포를 사용하여 Chef 구성요소들의 이름들을 잘 지었다는 생각이 든다. Chef을 구성하는 요소에 대한 설명을 간단히 몇개 적어 보자면:

  • Chef : 요리사,Server Configuration Project
  • Recipe : 요리법,어떤 작업을 할지 서술하는 목록
  • Cookbook: 요리책,Recipe의 모음집.
  • Knife : 칼 요리도구,Chef의 CLI 도구
  • Node : 구성 작업할 서버
  • Workstation : 작업장, Knife등의 도구를 통해 Chef에 작업을 하는 머신.
  • Data bag : Chef Server에 JSON기반으로 저장되는 데이터
  • Run list : Node에 작업할 목록(Cookbook의 Recipe나 다른 Role을 포함할수 있다)
  • Attribute : 노드의 속성. Node와 Cookbook,Role,Environment에서 정의될수 있고,순서규칙에 따라 overide가 된다.
  • Role : Run list와 Attribute을 가지는 설정

물론 모든 단어가 요리에 관련된 단어는 아니다. 좀더 명확하게 설명할수 있는 요소는 굳이 사용하지 않은 듯 하다.