셰프 (소프트웨어)

셰프(Chef)는 루비와 얼랭으로 작성된 형상 관리 도구의 이름이자 회사명이기도 하다. 시스템 구성 "레시피"(recipe)를 작성하기 위해 순수 루비 형태의 도메인 특화 언어(DSL)를 사용한다. 회사의 서버의 구성 및 유지보수 작업을 간소화하며, 인터냅, 아마존 EC2, 구글 클라우드 플랫폼, 오픈스택, 소프트레이어, 마이크로소프트 애저, 랙스페이스와 같은 클라우드 기반 플랫폼들과 통합하여 자동으로 새로운 머신을 프로비저닝하고 구성할 수 있다. 셰프는 소형 규모와 대형 규모의 시스템을 위한 솔루션을 포함하고 있으며 각 범위에 따라 기능과 가격에 차등을 둔다.

기능 
사용자는 어떻게 셰프가 서버 애플리케이션들과 유틸리티들(예: 아파치 HTTP 서버, MySQL, 하둡)을 관리하는지, 또 이들을 어떻게 구성할 것인지를 기술하는 레시피(recipe)를 작성한다. 이 레시피들은 더 쉬운 관리를 위해 쿡북(cookbook)으로 묶을 수 있으며, 특정한 상태로 설정 가능한 일련의 자원을 기술한다: 설치에 필요한 패키지, 실행 중으로 설정할 서비스, 작성할 파일. 이러한 다양한 자원들은 실행할 특정한 버전의 소프트웨어에 대해 구성이 가능하며 소프트웨어가 의존 기능에 따라 올바른 순서대로 설치하는 것을 보장한다. 셰프는 각각의 자원이 올바르게 구성되도록 하며, 또 원하는 상태에 있는 자원을 교정하도록 한다.

셰프는 클라이언트/서버 모드로, 또는 "chef-solo"라는 이름의 스탠드얼론 구성으로 구동할 수 있다. 클라이언트/서버 모드에서 셰프 클라이언트는 노드에 대한 다양한 속성을 셰프 서버로 보낸다. 이 서버는 Solr을 사용하여 이러한 속성을 색인화하며, 클라이언트가 이 정보를 조회할 수 있는 API를 제공한다. 셰프 레시피는 이러한 속성을 조회한 다음 결과 데이터를 사용하여 노드 구성을 지원한다.

전통적으로 셰프는 리눅스를 관리하기 위해 사용되었으나 이후 버전들은 마이크로소프트 윈도우도 지원하고 있다.

셰프는 CF엔진, Bcfg2, Puppet과 더불어 리눅스의 주요 4대 형상 관리 시스템 가운데 하나이다. Puppet, Ansible, Otter와 더불어 셰프는 형상 관리 도구일뿐 아니라 산업에서 가장 저명한 코드형 인프라스트럭처(IaC) 도구들 가운데 하나이다.

역사 
셰프는 애덤 제콥(Adam Jacob)이 그의 컨설팅 기업을 위한 도구로서 만들었는데, 비즈니스 모델은 단대단(end-to-end) 서버/배치 도구를 빌드하는 것이었다. 제콥은 셰프를 제시 로빈스에게 보여주었고, 로빈스는 아마존에서 운영한 후 잠재성을 보았다. 이들은 셰프를 하나의 제품으로 변신시키기 위하여 Barry Steinglass, Nathen Haneysmith, Joshua Timberman와 함께 새로운 회사를 설립하였다.

이 프로젝트의 원래 명칭은 "marionette'였으나 이 용어는 너무 길고 입력하기 너무 번거로웠다. 모듈이 준비되는 "recipie" 포맷에서 착안하여 이 프로젝트의 이름은 "셰프"가 되었다.

2013년 2월, Opscode는 셰프 버전 11을 출시하였다. 이 릴리스의 변경사항에는 얼랭으로 핵심 API 서버를 완전히 다시 쓴 것을 포함하였다.

플랫폼 지원 
셰프는 클라이언트와 서버 제품을 위한 지원 플랫폼 매트릭스에 따라 여러 플랫폼에서 지원된다. 클라이언트를 위한 주요 플랫폼 지원에는 AIX, RHEL/CentOS, FreeBSD, OS X, 솔라리스, 마이크로소프트 윈도우, 우분투를 포함한다. 추가적인 클라이언트 플랫폼으로는 아치 리눅스, 데비안, 페도라를 포함한다. 셰프 서버는 RHEL/CentOS, 오라클 리눅스, 우분투에서 지원된다.

고객 
셰프는 페이스북, HP 퍼블릭 클라우드, 프레지에 의해 사용되고 있다.

각주

외부 링크 
 
 Chef on GitHub

루비로 작성된 자유 소프트웨어
얼랭으로 작성된 자유 소프트웨어
아파치 라이선스 소프트웨어