꼭두각시와 도커는 동일한 작업을 많이 수행 할 수 있지만 다른 방식으로 접근합니다.
Puppet은 파일 + 패키지 + 서비스를 관리합니다. (트리 펙타에게 전화). Docker는 컨테이너 내부의 바이너리 및 구성 파일을 캡슐화합니다.
이 글을 쓰는 시점에서 도커는 여전히 불안정하여 프로덕션 환경에서 사용해서는 안됩니다. 버전 1.0이 출시 될 때까지 많은 API가 변경 될 수 있습니다.
도 커가 안정적이더라도 모든 프로세스 및 구성 파일을 도커 컨테이너로 변환하는 것은 큰 일입니다.
반면, 꼭두각시 (Puppet)는 안정적인 제품이며 전체 도구 에코 시스템 (heira, mcollective, facter, razor)과 함께 제공됩니다. 이러한 도구는 문제가 발생할 염려없이 신속하게 구현할 수 있습니다.
다음 자료를 적극 추천합니다.
꼭두각시로 애플리케이션 스택을 관리하는 방법에 대한 비디오
https://www.youtube.com/watch?v=KSo_mcJxFIA
도커와 꼭두각시가 함께 작동하는 방법에 대한 팟 캐스트
http://devopscafe.org/show/2014/1/23/devops-cafe-episode-46.html
도커와 통합하는 방법에 대한 꼭두각시 블로그 기사
http://puppetlabs.com/blog/building-puppet-based-applications-inside-docker
퍼펫과도 커가 공존하는 또 다른 블로그 기사
http://puppetlabs.com/blog/can-containers-and-configuration-management-co-exist
docker와 상호 작용하기위한 꼭두각시 모듈
http://docs.docker.io/use/puppet/
devops의 용어에 대한 사소한 수정. Devops는 특정 도구보다 개발자와 운영이 협력 하는 소프트웨어 개발 방법론 입니다.
최신 정보
현재 우리 회사는 꼭두각시와 도커를 모두 사용합니다. 다음은 꼭두각시 대 도커를 사용하는 이유에 대한 꼭두각시 conf 2014에서 제공되는 훌륭한 프레젠테이션입니다. puppetlabs의 전 고용주이자 docker book의 저자 인 James Turnbull이 제공했습니다.
https://puppetlabs.com/presentations/using-docker-puppet-james-turnbull-kickstarter
또한 sysadmincasts.com에서 제공하는 docker에 대한 좋은 짧은 비디오 자습서
https://sysadmincasts.com/episodes/31-introduction-to-docker
도커 프로 :
- 인스턴스를 빠르게 스핀 업할 수 있습니다
- 꼭두각시보다 배우기 쉬움
- 다운 타임을 쉽게 할 수 있습니다
도커 단점 :
- devicemapper 백엔드 사용시 컨테이너에 10GB 제한이 있습니다.
- 작은 구성 변경으로 컨테이너를 다시 빌드하는 데 시간이 오래 걸림
- hub.docker.com, quay.io와 같은 도커 레지스트리를 사용하는 데 비용이 듭니다 (자체 호스팅 도커 레지스트리는 매우 버그가 많으며 GUI가 없습니다)
- 적절한 초기화 시스템이 없습니다. 일부 응용 프로그램은 잘 재생되지 않습니다.
- 네트워크를 세밀하게 제어 할 수 없음
- 서브 쉘이 필요한 응용 프로그램 (RVM + 루비보기)은 제대로 작동하기가 매우 까다 롭습니다.
- Windows 호스트를 관리 할 수없고 SLES 또는 기타 덜 인기있는 운영 체제가없는 경우
- 현재 도커 오케스트레이션은 매우 젊습니다.
- 현재 빌드 타임에 /etc/resolv.conf를 설정할 수 없습니다
- 호스트 localtime 및 urandom 디렉토리에 매핑하기 위해 / etc / localtime 및 / dev / urandom을 마운트해야하는 다양한 버그
- 성능이 빠르지는 않습니다 (도 커가 베어 메탈 속도의 99 % 여야한다는 주장에도 불구하고 때로는 다른 기계보다 30 % 느립니다).
- 작은 컨테이너에는 여전히 수백 메가 바이트의 오버 헤드가 있습니다. 우리 컨테이너는 모두 몇 기가 바이트입니다.
꼭두각시 프로 :
- 손쉬운 확장
- 기존 서버 (Windows, Linux, sles)와 호환
- 작은 변경을 빠르게
- 다른 퍼펫 사용자 및 모듈로 구성된 강력한 커뮤니티
- 모든 플랫폼에 패키지를 설치하기위한 표준화 된 API
꼭두각시 단점 :
- 대규모 인프라는 매우 복잡해집니다
- 조건부 모듈 종속성으로 spagetti 코드 생성
- 더 무거운 무게
현재 퍼펫을 사용하여 도커 컨테이너를 제공합니다. 도커 컨테이너는 젠킨스 빌드에 사용되며 각 빌드 후에 파괴됩니다. 잘 작동하고 일관된 환경을 제공합니다. 즉, 코드를 한 번만 작성한 다음 우분투, sles 및 centos 시스템을 모두 다시 빌드해야합니다. 컨테이너를 재 구축하는 데 약 15 ~ 30 분이 걸리며 여전히 수동 프로세스입니다. Docker는 빠른 테스트 VM을 회전시키는 데 유용합니다.
즉, 퍼펫은 기존 인프라를 관리하는 데 탁월합니다. Docker는 소규모 임시 인스턴스로 묶을 수있는 기술 스택이있는 100 % Linux의 그린 필드가있는 경우 좋습니다. 일부 기능이 겹치지 만 상호 배타적이지는 않습니다.