불변 인프라에서 구성 관리 도구의 역할은 무엇입니까?


12

불변 서버 / 컨테이너를 사용하는 경우 Chef, Puppet, Ansible 또는 Salt와 같은 도구가 필요합니까? 이러한 구성 관리 도구는 구성을 설정 한 다음 유지 관리하도록 설계되었습니다.

변경 불가능한 서버를 배포하는 경우 초기 프로비저닝에만 구성 관리 도구를 사용해야합니까?

답변:


12

이에 대한 몇 가지 답변이 있습니다.

  1. 불변의 이미지를 만들어야 할 것이 있습니다. 구식 스타일의 절차 적 스크립팅을 사용하여 알려진 시작 상태에서 시작할 때 무언가를 구축하는 것이 훨씬 쉽지만 시간이 지남에 따라 매우 까다로울 수 있습니다 (예 : Dockerfiles), 특히 다른 이미지의 큰 매트릭스를 원할 때 Packer 및 기타 이미지 빌드 도구는 Chef, Ansible, Puppet, Salt 등과 완벽하게 통합됩니다.

  2. 불변성은 이진이 아닌 스펙트럼입니다. "매우 변경 불가능한"배포에서도 런타임 관리가 필요한 일부 구성 파일을 갖는 것은 드문 일이 아닙니다. 이것은 또한 CAPS 도구를 사용할 수있는 곳이지만 Consul Templates 등과 같은 더 가벼운 옵션은 전체 인프라에 따라 더 적합 할 수 있습니다. 변경 불가능한 앱 서버를 수행하고 있지만 데이터베이스 서버가 Chef를 사용하여보다 전통적으로 관리되는 경우 사소한 관리 작업을 위해 불변 측에서도 Chef를 사용하는 것이 좋습니다.

  3. 제로 데이 관리. 불변성은 좋지만 다음 OpenSSL 0day가 떨어지면 어떻게 할 것입니까? 즉각적인 핫픽스 이미지를 생성하고 배포 할 수있는 위치에 빌드 파이프 라인이있는 경우에는 좋습니다. 그러나 많은 사람들은 아마도 그런 종류의 빠른 회전 능력을 가지고 있지 않을 것입니다.

  4. 변경할 수없는 것들. 답은 없지만 전체 인프라가 100 % 변경 불가능한 경우는 거의 없습니다. 데이터베이스 서버 및 개발자 워크 스테이션 (예 : 인프라의 일부)과 같은 것은 불변으로 만드는 것이 어렵고 불가능한 것입니다.


"많은 사람들"에 대해 많은 가정을하고 있습니다. 불변 인프라를위한 이미지를 생성 할 수없는 사람들은 아마도 불변 인프라를 가지고 있지 않을 것입니다.
Evgeny

"불변 컨테이너를 사용하여 배포 할 수 있음"과 "다른 배포가 진행중인 경우에도 6 시간 내에 모든 컨테이너를 다시 빌드하고 재배치 할 수 있음"사이에는 큰 차이가 있습니다.
coderanger

그리고 내 경험상, 6 시간의 간격이 있으면 불변 인프라를 가질 수 없습니다. 불변 서버와 불변 서버를 빠르게 구축하는 것은 동일한 능력이 아니지만 밀접한 관련이 있습니다.
Evgeny

"불변 컨테이너를 실행한다"고 말하는 많은 사람들이 그 범주에 속하지 않습니다. 따라서 문제를 해결하는 것은 문제의 핵심이라고 지적했다.
coderanger

이 때문에, "아무도에서 SSH의를하고 있습니다 수동으로 변경"을 의미 없음 "불변"정의 할 수 없습니다 완전히 변하지 않는 의미가 변함에 따라, 자신을 정상 작동 중. pidfile을 작성하는 것조차도 돌연변이입니다.
Gaius

0

절대적으로 불변의 환경은 나쁜 생각이라고 생각합니다.

Ansible, Chef, Puppet과 같은 CM 도구는 귀하를 포함한 많은 경우에 유용 할 수 있습니다.

GCP에서 VM 인스턴스의 초기 프로비저닝에 ansible을 사용하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.