Làm thế nào để Juju mà cùng tồn tại với đầu bếp, thực hiện quá trình tự động hóa một bước nữa


15

Rõ ràng từ bài đăng này rằng Juju ngồi ở một lớp khác với Chef Server. Juju ngồi ở lớp điều phối hoặc lớp dịch vụ , trong khi Chef ngồi nhiều hơn ở máy chủ hoặc lớp cấu hình riêng lẻ .

Tại một trong những trang Juju chính của Canonical , có tuyên bố rằng Juju được thiết kế để "cùng tồn tại" với các công cụ như Chef và Puppet, đưa quá trình "tiến thêm một bước". Tôi đã lùng sục trên mạng trong nhiều tuần qua về chủ đề này và không thể tìm thấy một lời giải thích tốt về cách , tuy nhiên, một công cụ như Chef sẽ cùng tồn tại với Juju.

Vì vậy, để phân tích câu hỏi bao quát trong tiêu đề: (đặc biệt quan tâm đến Juju làm việc cùng với Máy chủ đầu bếp)

  • Một ví dụ về một nét duyên dáng "được viết trong Chef" là gì? Có phải nó chỉ đơn giản là một lá bùa viết bằng bash mà sau đó gọi chef-sololệnh? Nếu vậy, một lá bùa có thể gọi chef-clientlệnh để làm việc trong buổi hòa nhạc với Chef Server không?
  • Đâu là sự chồng chéo giữa Juju và Chef? Chẳng hạn, bùa apache2 có một config-changedcái móc trong đó nó thực hiện các thay đổi cấu hình, trong thế giới Chef, sẽ diễn ra trong một công thức bằng cách áp dụng một tệp mẫu. Nếu một bùa mê Juju hoạt động cùng với một cuốn sách nấu ăn Chef trong việc triển khai một dịch vụ apache2 (cụm) thì dường như một bùa mê "apache2-Chef" sẽ được viết để bạn có thể tách rời các nhiệm vụ. Trong trường hợp này, bùa apache2 trong Cửa hàng quyến rũ sẽ ít hữu ích hơn.
  • Nếu bạn áp dụng vai trò Đầu bếp cho các nút (đơn vị dịch vụ) do Juju triển khai / quản lý và sysadmin của bạn quyết định thay đổi quy tắc tường lửa cho vai trò máy chủ cụ thể và điều này trong vai trò Đầu bếp, liệu Juju có ghi đè lên những thay đổi đó không?
  • Đơn giản hơn, Juju có thể là một trình bao bọc Chef Server, như Ironfan không?

Tôi xem Chef Server là cách mà Juju có thể làm như thế nào , nhưng cũng mang những gì lên bàn. Có nghĩa là tình trạng hiện tại của dịch vụ và máy móc có thể được truy vấn và hành động. Bạn không thể làm điều này trong Chef Server. Mục tiêu của tôi là đưa nhận thức và khả năng điều phối dịch vụ của Juju vào cơ sở hạ tầng do Chef Server quản lý.

Dường như toàn bộ tập hợp bùa chú sẽ phải được viết trong đó tất cả các nhiệm vụ / thông tin cấu hình do Chef quản lý bị bỏ lại.

Tôi rất thích nghe những lời cân nhắc từ một người nào đó ở Canonical (như Jorge Castro) và từ Opscode (như A. Jacob hay J. Timberman).

Câu trả lời:


13

câu hỏi tuyệt vời!

các tl; dr

Tôi muốn chia nhỏ câu hỏi của bạn qua một vài bình luận ... trước hết, đây là một vài cách tiếp cận chung để tích hợp đầu bếp và juju:

  • móc quyến rũ có thể sử dụng các công thức nấu ăn đầu bếp hiện có chạy theo phong cách solo trên các đơn vị dịch vụ (được khuyến nghị)

  • các đơn vị dịch vụ juju đăng ký với một máy chủ đầu bếp hiện có bằng cách sử dụng dịch vụ cấp dưới của nút đầu bếp

Những ý tưởng này chưa được thực hiện / thử nghiệm cho đầu bếp, nhưng tương đương con rối tồn tại.

... ừm .. câu trả lời không quá ngắn

Dưới đây là một chút chi tiết về hai cách tiếp cận để tích hợp đầu bếp và juju:

Juju là con chó đầu đàn

Ở đây juju chạy chương trình. Giá trị lớn nhất mà juju cung cấp là sự phối hợp sự kiện trong quá trình quản lý cấu hình phân tán ... do đó biệt danh "dàn nhạc dịch vụ". Bùa Juju bao gồm các móc được gọi bởi juju vào "thời điểm thích hợp" khi phối hợp quản lý dịch vụ. Việc thực hiện các móc này là khá nhiều mở. Chúng là các kịch bản shell, mã nguồn, bảng kê rối hoặc ... công thức nấu ăn.

Juju phá vỡ các bit của bất kỳ cấu hình dịch vụ nào thành:

  • "cài đặt" .. các bit dành riêng cho việc cài đặt một dịch vụ cụ thể lên một nút

  • "quan hệ" .. các bit cấu hình cần thiết để liên kết dịch vụ đó với một số dịch vụ khác

Chìa khóa để sử dụng các công thức nấu ăn của đầu bếp làm triển khai móc chính xác là điều này ... bạn phải chắc chắn rằng các công thức nấu ăn mà bạn đang sử dụng tôn trọng sự tách biệt mối quan tâm này. Mặt khác, không có gì ngăn cản việc sử dụng sách dạy nấu ăn ngoài kệ. Bạn có thể tận dụng các công thức nấu ăn hiện có mà bạn đã dành thời gian / tiền bạc để phát triển .... Bạn chỉ cần đảm bảo rằng bạn có thể gọi các công cụ dành riêng cho mối quan hệ riêng biệt với các công cụ dành riêng cho cài đặt.

Chúng tôi cần một số ví dụ về điều này, nhưng tôi nghĩ rằng nó sẽ là một đầu bếp nổi tiếng có một dsl tuyệt vời, một công cụ tạo khuôn mẫu tuyệt vời và dễ sử dụng hơn nhiều so với bash khi viết cấu hình phức tạp. Đối với cấu hình đơn giản, công thức nấu ăn của đầu bếp hơi quá mức cần thiết, vì vậy phương pháp tích hợp này là khá tốt nhất của cả hai thế giới ... và có đôi chân nghiêm túc tiến về phía trước.

Đầu bếp như con chó đầu đàn

Ý tưởng ở đây là tích hợp các dịch vụ juju vào cơ sở hạ tầng được quản lý bởi máy chủ đầu bếp hiện có. Để làm điều này, bạn cần phải viết một bùa mê phụ đầu bếp-nút. Dịch vụ cấp dưới này sẽ được gắn với các dịch vụ juju chính và sẽ đăng ký hiệu quả các dịch vụ này dưới dạng các nút (đặc biệt là vai trò) với máy chủ đầu bếp. Dự phòng có thể được đính kèm trong quá trình khởi động dịch vụ juju hoặc bất cứ lúc nào sau đó trong suốt vòng đời của mỗi dịch vụ.

Tôi nghĩ rằng nó sẽ khá giống với nút con rối. Tất cả các khóa, vai trò cần thiết, v.v. sẽ được chỉ định thông qua cấu hình để quyến rũ cấp dưới nút đầu bếp. Tôi sẽ bắt đầu ở đó. Một cách tiếp cận phức tạp hơn sẽ dành cho phụ nút đầu bếp để thẩm vấn cả dịch vụ chính mà nó được gắn vào và máy chủ đầu bếp của nó để tự động xác định vai trò, nhưng điều đó sẽ khó hơn một chút so với việc chỉ định chúng trong cấu hình cho phụ.

Ý kiến

Tôi chắc chắn muốn giới thiệu phương pháp 1 ở trên, nếu có thể. Có lớp phối hợp trên đầu trang của các công cụ cấu hình có thể sẽ hoạt động tốt trong thời gian dài. Không cần phải nói, cơ sở hạ tầng trong thế giới thực có thể là một số kết hợp hoặc biến thể của cả hai phương pháp trong một khoảng thời gian ... đặc biệt là trong quá trình di chuyển. Sự cùng tồn tại có kế hoạch sử dụng phương pháp 2 có lẽ sẽ chỉ hoạt động nếu các thành phần được quản lý bởi cả hai công cụ có phần trực giao với nhau. Không chắc chắn chính xác những gì sẽ trông như thế nào. Có lẽ juju và đầu bếp quản lý các dịch vụ tách rời tương đối? Tôi nghi ngờ nó có thể hoạt động tốt khi để juju quản lý các dịch vụ chính và để đầu bếp quản lý nhiều khía cạnh cơ sở hạ tầng hơn. Không biết. Đó là một chút của một cuộc thảo luận dài hơn :)

Lưu ý bên lề ... bạn cũng có thể sử dụng juju để tự quản lý máy chủ đầu bếp ... thậm chí cả các cài đặt máy chủ đầu bếp đa tầng phức tạp lớn. Gần đây tôi đã không nhìn vào sự quyến rũ của máy chủ-máy chủ, nhưng nếu hiện tại nó không xử lý phân tầng và tách dịch vụ, thì chắc chắn nó có thể được thực hiện.

Tôi rất muốn xem thêm các ví dụ về cả hai loại tích hợp đầu bếp được đề cập ở trên ... nó đã nằm trong danh sách mong muốn / việc cần làm của tôi trong một thời gian, nhưng vẫn chưa đủ ưu tiên để hoàn thành ... hãy giúp đỡ nếu bạn quan tâm!

ok, đó là một đoạn tốt của lan man :) ... hãy bắt đầu từ đó, sau đó chúng ta có thể đi vào chi tiết hơn trong các khối nhận xét tiếp theo.


công cụ tuyệt vời ở đây. "Tôi nghi ngờ nó có thể hoạt động tốt khi để juju quản lý các dịch vụ chính và để đầu bếp quản lý nhiều khía cạnh cơ sở hạ tầng hơn." Đây là những gì tôi thực sự quan tâm, vì chúng tôi chia sẻ cùng nghi ngờ này. Giống như bạn đã nói, DSL và templating của Chef rất tốt cho cấu hình. Tuy nhiên, có những khía cạnh khác của Chef Server (túi dữ liệu) sẽ khó có thể bỏ qua, trong phương pháp đầu tiên của bạn. Juju, ở cấp độ dịch vụ, nên là con chó hàng đầu, nhưng tôi cảm thấy nó nên cho phép Chef làm những gì tốt nhất trong mô hình Chef Server. Phải làm việc cho cả nhà phát triển và quản trị viên. Nhưng có lẽ không cần Chef Server.
Ian D. Rossi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.