Packer 사용 사례
Packer 사용 사례
이 주제에서는 Packer의 몇 가지 사용 사례를 설명해요. Packer가 여러분의 프로세스를 어떻게 개선할 수 있는지 감을 잡도록 돕기 위한 부분 목록이에요.
출처: Packer 공식 문서
본문
연속 전달 (Continuous delivery)
Packer는 가볍고 이식성이 뛰어나며 커맨드 라인 기반이에요. 그래서 continuous delivery 파이프라인의 중간에 놓기에 완벽한 도구죠. Packer는 Chef/Puppet에 변경이 있을 때마다 여러 플랫폼용 새 머신 이미지를 생성하는 데 사용할 수 있어요.
이 파이프라인의 일부로, 새로 만든 이미지를 실행하고 테스트해서 인프라 변경이 제대로 동작하는지 검증할 수 있어요. 테스트가 통과하면 해당 이미지가 배포될 때도 잘 동작할 거라고 확신할 수 있죠. 이렇게 인프라 변경에 새로운 수준의 안정성과 테스트 가능성을 더해줘요.
환경 일치 (Environment parity)
Packer는 개발(development), 스테이징(staging), 프로덕션(production) 환경을 최대한 비슷하게 유지하는 데 도움을 줘요. 환경 간 패리티(parity)에 대해 더 알아보려면 다음 외부 문서 "X. Dev/prod parity"를 참고하세요.
Packer를 사용하면 여러 플랫폼용 이미지를 동시에 생성할 수 있어요. 예를 들어 프로덕션에는 AWS를, 개발에는 어쩌면 Vagrant와 함께 VMware를 사용한다면, Packer로 같은 템플릿에서 AMI와 VMware 머신을 동시에 만들 수 있죠.
이걸 위의 continuous delivery 사용 사례와 섞으면, 개발부터 프로덕션까지 일관된 작업 환경을 위한 꽤 멋진 시스템이 완성돼요.
어플라이언스와 데모 생성 (Appliance and demo creation)
Packer는 여러 플랫폼용으로 일관된 이미지를 병렬로 만들기 때문에, 어플라이언스(appliance)와 폐기 가능한(disposable) 제품 데모를 만드는 데 완벽해요. 소프트웨어가 바뀌면 소프트웨어가 미리 설치된 어플라이언스를 자동으로 만들 수 있죠. 그러면 잠재 사용자들이 원하는 환경에 배포해서 여러분의 소프트웨어를 바로 시작해 볼 수 있어요.
복잡한 요구사항을 가진 소프트웨어를 패키징하는 게 이렇게 쉬웠던 적은 없었어요. 아니, 솔직히 말하면 즐겁기까지 하죠.