어떤 구성 관리(CM) 도구를 사용해야 할까요? SaltStack에 집중하기
지난 10년간 클라우드 마이그레이션이 광범위하게 이루어지고 가상 머신과 컨테이너가 확산되면서 머신 관리가 그 어느 때보다 복잡해졌습니다. 데브옵스 전문가들은 이제 수천 대는 아니더라도 수백 대의 머신을 한 번에 실행해야 합니다. 이러한 작업을 지원하기 위해 구성 관리(CM) 도구가 만들어졌습니다. 프로그래밍 언어를 통해 IT 환경을 선언하는 IaC(인프라스트럭처로서의 코드)라는 프로세스를 통해 데브옵스 팀은 서버 제품군에 대한 가시성을 유지하고 대규모로 배포 및 조치를 취할 수 있습니다. CM 도구는 여러 서버에서 한 번에 작업을 실행하고 원클릭 앱 배포를 용이하게 합니다.
대규모 배포 및 CM과 관련하여 크게 네 가지 소프트웨어 플레이어가 있습니다: Puppet, Ansible, Saltstack, Chef입니다. KernelCare는 이러한 도구 중 하나를 통해 배포할 수 있습니다. SaltStack은 고유한 장단점이 있는 인기 있는 옵션입니다. 여기에 알아야 할 모든 것이 있습니다.
장점: 확장성이 뛰어나고 시작하기 쉽습니다.
2011년에 처음 출시된 SaltStack은 원래 SysAdmin 환경 내에서 신속하고 대기 시간이 짧은 원격 실행 통신을 허용하도록 설계되었습니다. Ansible과 마찬가지로, SaltStack은 부분적으로는 Puppet과 Chef의 CM 헤게모니에 대한 대안으로 구축되었습니다. 또한 Ansible과 마찬가지로 플랫폼은 Ruby가 아닌 Python으로 작성되었습니다. (유닉스 및 Linux 배포에 희소식입니다.) 또한 Ansible과 마찬가지로 SaltStack은 SSH 프로토콜을 통해 명령을 실행하기 위해 푸시 모델을 사용합니다. 전송 계층에서 ZeroMq 메시징 라이브러리를 활용하는 SaltStack은 마스터 서버와 "미니언"이라고 불리는 에이전트에 명령하여 대상 서버를 제어하고 통신합니다.
이 모든 것이 사용 편의성과 확장성이라는 SaltStack의 주요 장점에 더해집니다. SaltStack은 여러 명령을 병렬로 실행할 수 있으며(AES를 통해 암호화됨), 수직 및 수평 확장이 모두 용이합니다. DSL(도메인별 언어)은 기능이 풍부하지만 필수는 아니며 쉽게 이해할 수 있습니다. Ansible과 마찬가지로 사용자는 필수 프로그래밍 패러다임에 기반한 YAML 템플릿을 사용하여 스크립팅할 수 있으며, 이는 일관된 입력, 출력 및 구성을 의미합니다. 여러 수준의 마스터를 계층형으로 배열하면 부하를 쉽게 분산할 수 있으며 클라이언트 및 구성 템플릿을 그룹화하여 환경 제어를 간소화할 수 있습니다.
SaltStack의 학습 곡선은 평평하며(특히 Chef에 비해), 프로그래밍에 대한 지식이 없어도 쉽게 시작할 수 있습니다. 이 프로그램은 어떤 언어로든 구성을 렌더링할 수 있으며, 오픈 소스이기 때문에 쉽게 사용자 정의할 수 있습니다. 다른 CM은 말할 수 없는, 무슨 일이 일어나고 있는지 항상 직관적으로 확인할 수 있습니다.
단점: Linux 중심, 일부보다 덜 강력함
SaltStack은 가볍고 관리하기 쉬우며 확장성이 뛰어납니다. 대신 플랫폼이 Puppet이나 Chef만큼 강력하거나 성숙하지 않다는 단점이 있습니다. 웹 UI는 제한된 기능과 기능을 제공하며, 문서가 약간 흩어져 있어 검토하기 어렵습니다. 많은 사람들은 SaltStack의 미니언이 소규모 배포를 위한 에이전트 없는 커뮤니케이션만큼 효율적이지 않다고 생각합니다. 특히 Linux 이외의 OS에 대한 지원은 더 큰 플랫폼만큼 개발되지 않았습니다.
전체
솔트스택은 더 크고 발전된 CM 플랫폼의 장점이 부족합니다. 빌드와 UI에는 여전히 몇 가지 단점이 있습니다. 하지만 익숙해지기 쉬우며 프로그래밍 리소스가 제한적인 기업에게는 좋은 선택입니다. 확장성과 복원력을 최우선으로 고려한다면 SaltStack을 고려해야 합니다. 그리고 독창적인 설계 범위 덕분에 이 플랫폼은 특히 시스템 관리자에게 적합합니다.