Juju는 자동화 프로세스를“한 단계 더 발전시켜”Chef와 어떻게“공존”합니까?


15

에서 분명 이 게시물 주주는 요리사 서버가 아닌 다른 계층에 앉아있다. Juju는 오케스트레이션 또는 서비스 계층에 있고 Chef는 개별 서버 또는 구성 계층에 더 있습니다.

에서 캐 노니 컬의 주요 주주 페이지 중 하나 , 그것은 주주가 요리사와 인형 같은 도구를 사용하여 "공존", 과정을 복용 "한 단계"로 설계되어 있음을 말한다. 이 주제에 대해 지난 몇 주 동안 인터넷을 and이 뒤 졌지만 Chef와 같은 도구 가 Juju와 공존 하는 방법에 대한 좋은 설명을 찾을 수 없습니다 .

따라서 제목에서 가장 중요한 질문을 세분화하려면 (주방과 함께 일하는 Juju에 대한 관심)

  • "셰프가 쓴"매력의 예는 무엇입니까? bash로 작성된 매력이 단순히 chef-solo명령 을 호출 합니까? 그렇다면 매력 chef-client이 Chef Server와 함께 작동 하도록 명령을 호출 할 수 있습니까?
  • Juju와 Chef의 중복은 어디에 있습니까? 예를 들어, apache2 참에는 config-changedChef 세계에서 템플릿 파일을 적용하여 레시피에서 발생하는 구성 변경을 수행하는 후크가 있습니다. 만약 주주 참이 아파치 2 서비스 (클러스터)를 배치하는데 요리사 요리 책과 함께 일한다면, "apache2-chef"참이 당신이 작업을 분리 할 수 ​​있도록 쓰여 져야 할 것 같습니다. 이 경우 Charm Store의 apache2 참이 도움이되지 않습니다.
  • Juju가 배포 / 관리하는 노드 (서비스 단위)에 Chef 역할을 적용하고 sysadmin이 특정 서버 역할에 대한 방화벽 규칙을 변경하기로 결정하고 Chef 역할에서이를 수행하는 경우 Juju가 이러한 변경 사항을 덮어 쓰게됩니까?
  • 더 간단히 말하면, Juju는 Ironfan 과 같은 Chef Server 래퍼가 될 수 있습니까?

나는 Chef Server를 방법으로 본 반면 Juju는 방법을 할 수 있지만 테이블에 무엇 을 가져다 줍니다. 서비스 및 기계의 실제 현재 상태를 조회하고 조치를 취할 수 있음을 의미합니다. Chef Server에서는이 작업을 수행 할 수 없습니다. 저의 목표는 Juju의 인식 및 서비스 오케스트레이션 기능을 Chef Server 관리 인프라로 가져 오는 것입니다.

요리사가 관리하는 모든 작업 / 구성 정보가없는 곳에는 모든 매력을 작성해야 할 것 같습니다.

나는 Canonical (Jorge Castro와 같은)의 누군가와 Opscode (A. Jacob 또는 J. Timberman)의 체중을 듣고 싶습니다.

답변:


13

멋진 질문!

tl; dr

몇 가지 의견에 대해 귀하의 질문을 나누고 싶습니다 ... 먼저 요리사와 주주를 통합하는 몇 가지 일반적인 접근법이 있습니다.

  • 참 걸이는 서비스 단위에서 솔로 스타일을 실행하는 기존 요리사 레시피를 사용할 수 있습니다 (권장)

  • 주주 서비스 단위는 요리사 노드 하위 서비스를 사용하여 기존 요리사 서버에 등록

이 아이디어 아직 요리사를 위해 구현 / 테스트되지 않았지만 퍼펫에 상응하는 것이 존재합니다.

... 음 .. 짧지 않은 대답

다음은 chef와 juju를 통합하는 두 가지 방법에 대한 분석입니다.

탑독으로서의 주주

여기 juju는 쇼를 운영합니다. Juju가 제공하는 가장 큰 가치는 분산 구성 관리 중 이벤트 조정입니다. 따라서 "서비스 조정"모니 커입니다. Juju 참은 서비스 관리를 조정할 때 "제때"에 juju가 호출하는 후크로 구성됩니다. 이러한 후크의 구현은 거의 열려 있습니다. 그것들은 쉘 스크립트, 소스 코드, 꼭두각시 매니페스트 또는 요리사 요리법입니다.

Juju는 모든 서비스 구성을 다음과 같이 나눕니다.

  • "installation".. 특정 서비스를 노드에 설치하는 데 특정한 비트

  • "관계".. 해당 서비스를 다른 서비스와 관련시키는 데 필요한 구성 비트

주방장 레시피를 후크 구현으로 사용하는 열쇠는 바로 이것입니다. 사용하는 레시피가 이러한 분리 된 관심사를 존중해야합니다. 그렇지 않으면 기성품 요리 책을 사용하는 것을 막을 수있는 것은 없습니다. 시간 / 돈을 소비 한 기존 레시피를 활용하여 개발할 수 있습니다 .... 설치 관련 항목과 별도로 관계 관련 항목을 호출 할 수 있어야합니다.

우리는 이것에 대한 몇 가지 예가 필요하지만, 인기있는 B / C 요리사는 훌륭한 dsl, 훌륭한 템플릿 도구를 가지고 있으며 복잡한 구성을 작성할 때 bash보다 사용하기가 훨씬 즐겁습니다. 간단한 구성의 경우 요리사 레시피가 약간 과도하게 사용 되므로이 통합 방법은 두 세계에서 거의 최고입니다 ... 그리고 앞으로 심각한 다리가 있습니다.

최고 개로 요리사

여기서 아이디어는 juju 서비스를 기존 요리사 서버 관리 인프라에 통합하는 것입니다. 이렇게하려면 요리사 노드 하위 매력을 작성해야합니다. 이 하위 서비스는 기본 juju 서비스에 연결되며 이러한 서비스를 chef 서버에 노드 (특히 역할)로 효과적으로 등록합니다. 서브 서비스는 Juju 서비스 시작 중 또는 각 서비스 수명주기 내내 언제든지 연결될 수 있습니다.

나는 이것이 꼭두각시 노드 서브와 매우 유사하다고 생각합니다. 필요한 모든 키, 역할 등은 구성을 통해 chef-node 하위 참에 지정됩니다. 나는 거기에서 시작할 것이다. 보다 정교한 접근 방식은 chef-node 서브가 첨부 된 기본 서비스와 해당 셰프 서버가 역할을 동적으로 결정하기 위해 조사하는 것이지만 서브에 대한 구성에서 지정하는 것보다 훨씬 어렵습니다.

의견

가능하다면 위의 방법 1을 확실히 추천합니다. 구성 도구 위에 조정 계층이 있으면 장기적으로 잘 작동 할 것입니다. 말할 필요도없이, 실제 인프라는 일정 기간 동안, 특히 마이그레이션 중에 두 가지 접근 방식의 조합이거나 변형 일 수 있습니다. 방법 2를 사용한 계획 공존은 두 도구에서 관리하는 구성 요소가 서로 직교하는 경우에만 작동합니다. 그것이 어떻게 보일지 확실하지 않습니다. 아마도 주주와 요리사가 분리 된 상대적으로 분리 된 서비스를 관리합니까? juju가 기본 서비스를 관리하고 요리사가 더 많은 인프라 측면을 관리하도록하는 것이 효과적 일 것으로 생각합니다. 던노 그래도 조금 더 긴 토론입니다 :)

참고 사항 : juju를 사용하여 요리사 서버 자체를 관리 할 수 ​​있습니다. 심지어 대규모의 복잡한 다 계층 요리사 서버 설치도 가능합니다. 나는 최근 요리사-서버 매력을 보지 못했지만 현재 계층화 및 서비스 분리를 ​​처리하지 않으면 확실히 할 수 있습니다.

위에서 언급 한 두 가지 유형의 요리사 통합에 대한 더 많은 예를보고 싶습니다 ... 한동안 내 소원 / 할 일 목록에 있었지만 아직 완료 할만 큼 우선 순위가 높지 않았습니다 ... 관심있어!

좋아, 그건 괜찮은 짓이야 :) ... 거기서부터 시작해 보자. 그러면 우리는 다음 주석 블록에서 더 자세히 설명 할 수있다.


여기 좋은 물건. "주주가 주요 서비스를 관리하고 요리사가 더 많은 인프라 측면을 관리하도록하는 것이 효과적 일 것으로 생각합니다." 우리가 똑같은 의심을 공유함에 따라 이것이 제가 정말로 관심을 갖는 것입니다. 당신이 말했듯이 Chef의 DSL과 템플릿은 구성에 좋습니다. 그러나 Chef Server (데이터 백)의 첫 번째 방법으로는 놓치기 어려운 다른 측면이 있습니다. 서비스 수준에있는 Juju는 최고 수준이어야하지만 Chef가 Chef Server 모델에서 최선을 다하는 것을 허용해야한다고 생각합니다. 개발자와 관리자 모두에게 작동해야합니다. 그러나 아마도 Chef Server가 필요하지 않습니다.
Ian D. Rossi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.