Ansible을 왜 쓰는가?
왜 하필 Ansible
배포, 관리 자동화 툴의 4대천왕이라 불리우는 Puppet, Chef, Salt와 비교하여 어떠한 장점이 있는지 알아보자.
Puppet | Chef | Salt | Ansible | |
---|---|---|---|---|
개발사 | Puppet Labs | Opscode | SaltStack | AnsibleWorks |
등장 | 2005년 8월 | 2009년 1월 | 2011년 3월 | 2012년 3월 |
개발언어 | Ruby | Ruby,Erlang | Python | Python |
도입고객 | Google,Ebay,Disney.. | Facebook,Ancestry.com.. | Linkedin,HP Cloud.. | Evernotes, Rackspace.. |
정보량 | 매우많음 | 매우많음 | 적음 | 보통 |
사용률 | 매우많음 | 매우많음 | 적음 | 매우많음 |
코드베이스 | Puppet Forge | Chef Supermarket | Salt-Formula(Git) | Ansible Galaxy |
Web UI | Puppet Enterprise | Chef Manage | SaltStack Enterprise | Ansible Tower |
정의파일 | 독자 DSL,내장 루비 | 독자DSL (루비베이스) | YAML 독자DSL (Python 베이스) | YAML |
agent설치 | 필요 | 필요 | 필요or불필요(선택) | 불필요 |
간편도 | 어려움 | 어려움 | 어려움 | 아주쉬움 |
Puppet은 최초로 등장한 구성관리 툴이기때문에 많은 고객과 정보가 있지만, 최초로 등장했기때문에 기술적 복잡도가 높다. Chef의 경우 세계적 기업인 Facebook을 고객으로 두고 있기 때문에 빠르게 성장할 수 있었다. 그러나 여전히 복잡도가 높다. Salt는 정보량도 많이 없고 발전속도도 느리다. 아무래도 Puppet과 Chef의 Agent를 따라가다보니 성장이 더딘 것으로 판단된다.
Ansible은 Agent가 필요없기 때문에 관리에 필요한 프로세스 없이 독자적으로 실행할 수 있다.
이 기술적인 차이로 정보량이 급증하게 된다. 그리고 Agent가 없기때문에 기술적 복잡도도 낮다.
YAML 정의파일은 Puppet이나 Chef의 정의파일보다 매우 쉽고 간단하다.
그래서 Ansible은 크게 성장하게 된다.
Reference
인프런 조훈님 강의 - 처음부터 설치하며 배우는 Ansible