Sự khác biệt giữa Juju và Puppet / Chef là gì?


80

Đã thử hỏi bên thứ 3 về sự khác biệt chính giữa Juju và Puppet / Chef. Các bên thứ 3 không quá quen thuộc với Juju và không thể nói. Họ chỉ đơn giản tuyên bố những người khác có rất nhiều động lực, và thật khó để vượt qua sự dẫn dắt của họ.

Những người gần gũi nhất với Juju có sẵn sàng làm nổi bật những ưu điểm của phần mềm này không, và tại sao nó sẽ vượt qua Puppet / Chef trong lĩnh vực quản lý cấu hình?

Câu trả lời:


48

Mark, đây là một câu hỏi hay, và là câu hỏi đầu tiên tôi hỏi khi ai đó nói với tôi về Juju. Đây là một số khác biệt lớn.

  • Juju đóng gói các dịch vụ - một cơ duyên xác định tất cả các cách dịch vụ cần để lộ hoặc sử dụng dữ liệu cấu hình đến / từ các dịch vụ khác. Làm thế nào một sự quyến rũ đó là kinh doanh của sự quyến rũ. Nó có thể sử dụng bất kỳ công cụ nào từ shell script đến Chef ở chế độ solo để làm điều đó.

  • Cung cấp dàn nhạc Juju - juju theo dõi các tài nguyên có sẵn cho nó và có thể thêm hoặc xóa chúng khi cần. Hiện tại các tài nguyên này là máy AWS EC2, đám mây OpenStack (như HP Cloud), Microsoft Azure, Joyent, máy kim loại trần thông qua MAAS và nhà cung cấp địa phương LXC / KVM.

  • Juju giúp chia sẻ dễ dàng - bất kỳ ai cũng có thể đóng góp một sự quyến rũ cho Juju Charm Store ; những nét quyến rũ này được xem xét và đánh giá ngang hàng bởi cộng đồng Juju.

Dưới đây là một số so sánh khác mà mọi người đã thực hiện trên web:


1
Con rối liên quan đến việc mô tả tài nguyên, cung cấp VMchia sẻ mô-đun . Bạn có thể giải thích làm thế nào Juju làm nó khác hoặc tốt hơn, hoặc giải quyết một vấn đề khác?
poolie

Không biết về nhà cung cấp đám mây rối tại thời điểm trả lời. Các mô đun con rối không được đặt tên lần cuối cùng tôi đã kiểm tra và do đó trình bày các vấn đề chia sẻ có thể yêu cầu người dùng sửa đổi mã của mô đun con rối để sử dụng nó.
SpamapS

Có không gian tên trong con rối . Tôi chưa sử dụng Puppet nhiều, nhưng tôi hiểu rằng vấn đề chủ yếu xảy ra khi hai mô-đun thực sự đang cố gắng quản lý cùng một thứ logic. Juju có một số cách có hệ thống để ngăn chặn điều đó?
poolie

Các không gian tên trong con rối đã trải qua những thay đổi gần đây để giúp chia sẻ một mô đun con rối độc lập hoạt động dễ dàng hơn. Trước đây, người ta cần tương đương với các biến toàn cục để giao tiếp giữa hai mô-đun. Juju không xử lý bất kỳ hình dạng hoặc hình thức nào với cấu hình của ví dụ, nó chỉ là một công cụ hỗ trợ cho việc phối hợp, vì vậy không, nó sẽ không ngăn cản hai bùa chú chiến đấu trên một tệp duy nhất.
SpamapS

1
Xin chào @SpamapS, Điều này liên quan đến điểm thứ hai của bạn (còn gọi là cung cấp dàn nhạc Juju). Trong con rối, chúng ta có thể xác định các mối quan hệ bằng cách sử dụng "yêu cầu", "thông báo", v.v. Chúng ta có thể đơn giản sử dụng cấu trúc này để cung cấp điều phối không? Hoặc Juju cung cấp một mức độ khác nhau về ngữ nghĩa dàn nhạc?
Denis Weerasiri

33

(Tuyên bố miễn trừ trách nhiệm - Tôi là người sáng lập Puppet và CEO của Puppet Labs)

Tôi không biết rõ về juju , nhưng từ những gì tôi có thể nói, họ phần nào ngồi ở các lớp khác nhau. Puppet rất giỏi trong việc tự quản lý các hành vi và khả năng của máy móc, trong khi juju dường như chủ yếu dành riêng để nói về các bộ máy và chủ yếu làm thế nào để làm cho máy hoạt động theo bất kỳ cách cụ thể nào đối với các công cụ bên ngoài như Puppet hoặc shell script.

Chiến lược của chúng tôi với Puppet là xây dựng ngăn xếp tốt nhất từ ​​đầu, trong khi juju dường như là một lớp cụ thể của ngăn xếp và để các lớp khác cho các công cụ khác. Do đó, trong khi bạn có thể giải quyết toàn bộ vấn đề với Puppet (mặc dù đôi khi có nhiều công việc hơn bạn muốn), bạn sẽ cần tích hợp juju với các công cụ khác để hoàn thành công việc.

Thực sự, juju có vẻ giống như một phiên bản tiền đề của CloudFormation từ Amazon, mặc dù không có biểu đồ và như vậy. Vì vậy, có thể sử dụng với Puppet, v.v., nhưng không phải là sự thay thế cho nó.


6
Không chắc chắn nếu punting là từ đúng ở đây .. điều đó giống như nói các gói punt xây dựng phần mềm thành autotools / scons / setup.py. Nếu các gói cố gắng thực hiện từng bước của mỗi bản dựng, chúng tôi sẽ không có gói nào!
SpamapS

9

Đây là một cách khác để Juju phù hợp với các công cụ tự động hóa khác:

Tôi chịu trách nhiệm về Chiến lược đám mây tại Canonical, công ty đứng sau Ubuntu và Juju. Juju không phải là đối thủ của Puppet hay Chef. Juju có thể cài đặt Puppet hoặc Chef và từ bên trong Bùa chú, đóng gói dịch vụ của Juju, bạn có thể gọi các mô-đun Puppet hiện tại hoặc biên lai đầu bếp.

Vậy Juju là gì? Juju cho phép bạn ngay lập tức triển khai, tích hợp và mở rộng quy mô / dịch vụ / ứng dụng CNTT của bạn. CNTT ngay lập tức đạt được mà không có đau đớn. Hoặc thông qua dòng lệnh hoặc GUI.

Vì vậy, Juju gần gũi hơn với PaaS sau đó với công cụ Devops vì bạn có thể xây dựng đám mây của mình (Juju là trình cài đặt OpenStack mặc định của Canonical), cơ sở hạ tầng nằm trên nó (máy chủ web / app / db, Hadoop, MongoDB, v.v.) đáng chú ý là Juju cho phép các ứng dụng được triển khai và tích hợp ngay lập tức (mối quan hệ bổ sung giữa Wordpress và MySQL sẽ tự động thiết lập các bảng và dữ liệu Wordpress bên trong MySQL).

Ngoài ra, các máy chủ ứng dụng (java, php, node.js, scala, v.v.) có thể hoạt động cùng với kiểm soát phiên bản do đó có thể triển khai tự động và nhân rộng các ứng dụng của bạn. Vì vậy, không giống như PaaS, bạn không bị giới hạn trong một ngăn xếp phần mềm cụ thể nhưng vẫn có được các lợi thế triển khai, tích hợp và mở rộng tức thì. Hãy nghĩ về nó như một PaaS hoặc FlexiPaaS linh hoạt triển khai ngay lập tức, tích hợp và chia tỷ lệ các dịch vụ phần mềm của bạn mà không bị giới hạn hoặc bị khóa.

Nguồn - Cảnh báo: yêu cầu đăng nhập.


3

Theo cách hiểu đơn giản nhất, juju đóng gói khám phá dịch vụ, lưu trữ giá trị chính và quản lý cấu hình. Con rối / đầu bếp, vv là quản lý cấu hình thuần túy.

Juju dựa trên sự kiện và sử dụng một "nút bootstrap" trung tâm để theo dõi và điều phối các sự kiện. Con rối và đầu bếp có thể được thực hiện để xuất hiện dựa trên sự kiện, tuy nhiên, nó thường chỉ chạy các công việc có liên quan theo lịch trình.

Afaik, bạn không thể chạy juju ở trạng thái phân tán hoặc không có tác nhân và điều này là có thể với hầu hết các hệ thống quản lý cấu hình.

Đối với hầu hết các con rối, vv là các ngôn ngữ cụ thể miền, trong khi juju là một hệ thống, không phải là một ngôn ngữ.

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.