728x90
Chef, Puppet, Ansible, SaltStack 모두 Infra ConfigurationManagement(형상관리) Tool 또는 Framework 이다.
Infra 형상을 코드화시켜 보관하고 필요시 손쉽게 배포할 수 있도록 하는 도구이다.
이들 도구별 특징을 설명코자 한다.
제품별 비교
Chef | Puppet | Ansible | Saltstack | |
설명 | Opscode가 개발한 오픈소스. Ruby와 Erlang으로 만들어진 툴 다양한 종류의 인프라로 구성되어 있고 안정적인 솔루션이 필요한 환경에 적합 |
Manifest 작성을 위해 Ruby와 DSL(Domain Specific Language)를 사용 다양한 환경의 인프라에 잘 적용되며 확장성에 초점을 맞춘 환경에 적합 |
Ansible의 핵심인 Playbook은 YAML로 작성되어 있음 서버를 신속하게 구축하고 활성화시키는 것이 중요한 환경에 적합 |
명령어느느 YAML, DSL인 반면에 Python 기반의 툴 확장성과 회복력을 중요하게 생각하는 환경에 적합 |
장점 | 많은 Recipe를 사용할 수 있음 강력한 Version Control을 지원하는 Git과 잘 융합됨 |
Puppet Labs라는 강력한 커뮤니티가 있음 리포팅 기능이 우수 |
Agent가 대상 시스템에 불필요 YAML은 이해하고 배우기 쉬움 |
셋업 이후 부터는 사용이 쉬움 모든 동작을 모니터링할 수 있도록 리포팅 메커니즘 우수 |
단점 | Ruby에 관한 지식이 상당량 필요 Main 서버가 제어권한이 충분치 않음 |
고급 작업을 위해서는 Ruby에 관한 지식이 상당량 필요 Main 서버가 제어권한이 충분치 않음 |
수행속도가 다른 Tool에 비해 상대적으로 느림 YAML은 다른 언어만큼 강력하지 않음 |
셋언 구문이 약간 난이도가 있음 다른 Tool과 비교해보았을때 상대적으로 완성도가 떨어지는 UI |
Chef | Puppet | Ansible | Saltstack | |
아키텍처 | Server/Client | Server/Client | Client Only | Client Only |
초기 셋업 난이도 | 보통 | 보통 | 매우 쉬움 | 보통 |
사용언어 | 절차적언어 | 선언적언어 | 절차적언어 | 선언적언어 |
확장성 | 확장관리 가능 | 확장관리 가능 | 확장관리 가능 | 확장관리 가능 |
관리난이도 | Ruby DSL을 습득해야하여 관리 난이도 상 | Puppet DSL을 습득해야하여 관리 난이도 상 | 매우 쉬움 | 매우 쉬움 |
클라우드활용 | AMAZON | AMAZON, AZURE | N/A | N/A |
통신방식 | Knife Tool | SSL | SSH | SSH |
Manifest | Recipes : Ruby | Puppet Script : DSL | Playbook : YAML | SLS : YAML |
아키텍처
Chef
Puppet
Ansible
Saltstack
'IaaS > IaC(InfraAsCode)' 카테고리의 다른 글
TerraTest 란? (0) | 2022.07.20 |
---|---|
Ansible 설치 (0) | 2022.07.07 |
(Terraform) Terraform으로 IaC(Infra As Code) 방식으로 AWS 세팅 (0) | 2021.08.31 |