Các câu hỏi đúng để hỏi khi quyết định nên sử dụng Chef hay Puppet?


16

Tôi sắp bắt đầu một dự án mới, một phần, sẽ yêu cầu triển khai nhiều nút giống hệt nhau của khoảng ba lớp khác nhau:

  • Các nút dữ liệu , sẽ chạy các phiên bản phân đoạn của MongoDB.
  • Các nút ứng dụng , sẽ chạy các phiên bản của ứng dụng Ruby on Rails và ứng dụng ASP.NET MVC cũ hơn.
  • Xử lý các nút , sẽ chạy các công việc được yêu cầu bởi các nút ứng dụng.

Tất cả các nút sẽ chạy trên các phiên bản Ubuntu 10.04, mặc dù chúng sẽ có các gói khác nhau được cài đặt.

Tôi có một số quen thuộc với Đầu bếp từ các dự án trước đó, mặc dù tôi không coi mình là một chuyên gia. Trong một nỗ lực để làm việc tích cực, tôi đã nghiên cứu các khả năng thay thế. Chúng tôi có một số người trong nhà là những người sử dụng Puppet lâu năm và họ đã khuyến khích tôi xem xét.

Tôi đang gặp khó khăn khi đánh giá cả hai lựa chọn, mặc dù. Chef và Puppet chia sẻ nhiều thuật ngữ tên miền giống nhau - các gói , tài nguyên , thuộc tính , v.v. và chúng có một lịch sử chung bắt nguồn từ việc thực hiện các cách tiếp cận khác nhau cho cùng một vấn đề. Vì vậy, trong một số ý nghĩa, chúng rất giống nhau. Nhưng phần lớn thông tin so sánh tôi tìm thấy, như bài viết này , hơi lỗi thời.

Nếu bạn đã bắt đầu dự án này ngày hôm nay, bạn sẽ tự hỏi mình câu hỏi nào để quyết định xem bạn nên sử dụng Chef hay Puppet để quản lý cấu hình? (Lưu ý: Tôi không muốn trả lời cho câu hỏi "Tôi nên sử dụng Đầu bếp hay Con rối?")


cập nhật vào năm 2016: Có một cuộc di cư lớn từ Chef và Puppet. Họ không được khuyên cho dự án mới. Cuộc chiến bây giờ là ansible vs muối. (ansible dễ cài đặt hơn và bắt đầu + hoạt động trên SSH, muối sẽ dễ dàng hơn khi cơ sở hạ tầng trở nên lớn và phức tạp + nhanh hơn)
user5994461

Câu trả lời:


12

Cả Puppet và Chef đều có thể làm những gì bạn muốn. Điều tốt nhất của bạn là bắt đầu làm những gì bạn đang cố gắng làm và quyết định công cụ nào bạn thích nhất. Tôi nghĩ rằng những câu hỏi lớn bạn phải đặt ra là:

Bạn có muốn có DSL không? - Công thức nấu ăn được viết bằng ruby, con rối có DSL. Cho dù DSL là tốt hay xấu là một trong những khác biệt lớn nhất giữa đầu bếp và con rối. Liên kết bạn đã đăng lên so sánh của tư vấn bitfield có một số nhận xét tốt về điều này bạn nên đọc nếu bạn chưa có. Tôi cũng thấy bài viết trên blog này hữu ích, hãy chắc chắn rằng bạn cũng đọc các bình luận.

Bạn có biết ruby? - Nếu bạn không biết ruby, bắt đầu với đầu bếp có thể khó hơn hoặc đòi hỏi đầu tư thời gian lớn hơn vì bạn cần học một ngôn ngữ mới. Con rối có ngôn ngữ riêng rất dễ bắt đầu. Bắt đầu với con rối 2.6, các biểu hiện cũng có thể được viết bằng ruby .

Tại Cầu nguồn mở năm 2009, họ có một nhóm gồm các tác giả và đại diện của đầu bếp, bù nhìn, bcfg2, cfengine và automateit mà bạn có thể xem trên bliptv với 1,75 giờ thảo luận về các tiện ích quản lý cấu hình.

Opscode / Chef nói về sự khác biệt giữa nó và con rối trong Câu hỏi thường gặp của họ .

Tôi nghĩ rằng việc bạn không biết đúng câu hỏi có thể xuất phát từ việc bạn không có quá nhiều kinh nghiệm làm việc với một trong số họ, một khi bạn bắt đầu sử dụng chúng, bạn sẽ bắt đầu thấy sự khác biệt giữa chúng. Tôi khuyên bạn nên đến với một số vấn đề thực tế mà bạn sẽ giải quyết với đầu bếp hoặc con rối, sau đó bắt đầu cố gắng giải quyết chúng và xem những gì bạn thích / không thích về chúng. Với Opscode / Chef, họ cung cấp một giải pháp lưu trữ mà bạn có thể thiết lập 5 nút miễn phí để bắt đầu.


3
Đầu bếp cũng có DSL, điểm khác biệt là nó là một DSL DSL bên trong, trong đó DSL của Puppet nằm bên ngoài. Puppet kể từ đó cũng đã thêm một DSL DSL thuần túy, nhưng nó không được khuyến khích hoặc khuyến nghị bởi người dùng rối, cũng như Puppet Labs.
jtimberman

1
"Bạn có muốn biết ruby ​​không" là câu hỏi số 1. Tôi vẫn hy vọng một hệ thống dựa trên python. :)
Sirex

Các bài viết trên blog được liên kết là những khởi đầu rất hữu ích cho những người đang tìm cách so sánh đầu bếp và con rối.
Clinton

6

Để tôi nói trước - nếu bạn không sử dụng Puppet hoặc Chef; không có câu trả lời sai Hoặc là sẽ tốt hơn rất nhiều so với những gì bạn đang làm bây giờ.

Với tư cách là trưởng nhóm, tôi đã lựa chọn Puppet cho đội của mình. Nếu tôi là một nhóm chỉ có bản thân mình, tôi đã chọn Đầu bếp thay thế. Đây là lý do tại sao:

Mặc dù chuyên môn của tôi chắc chắn là về quản trị hệ thống, nhưng nền tảng của tôi là về lập trình. Đó là những gì tôi đã đi học và tôi không lạ gì khi viết các ứng dụng đầy đủ (không chỉ là các tập lệnh). Trong khi tôi không biết Ruby, tôi muốn và Chef sẽ là một cái cớ tuyệt vời để học cả hai.

Tuy nhiên, nhóm của tôi có đầy đủ các quản trị viên hệ thống với ít hoặc không có kinh nghiệm lập trình, ngoài kịch bản shell thỉnh thoảng. Đối với họ, viết một mô-đun con rối giống như viết một tệp cấu hình. Đó là tuyên bố, không có trình vòng lặp, và nói chung nó thân thiện với quản trị viên hơn.

Các nhóm đầy đủ các nhà phát triển thực hiện các hoạt động sysadmin có xu hướng thích Chef. Vì DSL của Puppet là khai báo, nên thứ tự (ngay cả trong các tệp riêng lẻ) không thành vấn đề và điều đó làm nản lòng nhiều người sử dụng ngôn ngữ lập trình điển hình hơn.

Tôi cũng đã nghe nhiều lần nói rằng Chef thân thiện với đám mây hơn Puppet, nhưng Puppet đã tập trung vào sản phẩm Puppet Enterprise của họ trong năm qua. Tôi không thể nói từ kinh nghiệm về khả năng đám mây của một trong hai sản phẩm.

Vì những phẩm chất trên, định kiến ​​(và thường đúng) là bạn sẽ thấy Puppet có sức lan tỏa hơn trong doanh nghiệp trên các máy vật lý, nơi Chef điều khiển các công ty khởi nghiệp trên đám mây. Tất nhiên có ngoại lệ, nhưng những gì tôi đã thấy chắc chắn ủng hộ định kiến.

Nếu đó là nhóm một người, thì hãy đánh giá cả hai và chọn nhóm nào bạn thích. Tuy nhiên, nếu như tôi có một nhóm người, hãy đảm bảo rằng bạn giữ các nhu cầu của nhóm bạn được ưu tiên hơn bất kỳ sở thích cá nhân nào, nó sẽ giúp bạn tiết kiệm sau này khi bạn thử và mua.


2
Nhận xét của Justin là cách tiếp cận tốt nhất. Cá nhân tôi thích đầu bếp hơn vì đó là lựa chọn CM đầu tiên tôi học được nhưng trong thực tế và tính đến sức mạnh đội ngũ hiện có trong con rối, tôi có xu hướng đi cùng với các dự án cơ sở hạ tầng thuần túy trong khi nhóm ứng dụng chủ yếu là DevOps thiên về đầu bếp. Sử dụng những gì là tốt nhất và thiết thực cho nhu cầu của bạn.

5

Tiết lộ đầy đủ, chúng tôi không sử dụng một trong hai thứ này, mặc dù chúng tôi đã đánh giá chúng trong nội bộ trong khi cố gắng quyết định hệ thống quản lý cấu hình. Vì vậy, đừng coi tôi là một chuyên gia về những điều này sau tất cả.

  • Làm thế nào dễ dàng để có được một thiết lập cá thể?
  • Những thiết lập nào được yêu cầu trên máy khách để khiến nó giao tiếp với máy chủ?

Và như thế. Nhưng bạn có thể tự trả lời những câu hỏi này rất dễ dàng: thiết lập chúng! Lấy một mẫu lên và chạy là một vài giờ thời gian của bạn cho mỗi sản phẩm và xem xét rằng bất cứ điều gì bạn sử dụng này có thể sẽ được sử dụng trong một thời gian dài, thời gian là rất xứng đáng. Bạn không chỉ có thể cảm nhận về cách họ xử lý những thứ cụ thể của nền tảng (ví dụ: dựa trên Debian và apt, dựa trên RPM và yum), mà chắc chắn sẽ giúp bạn cảm nhận được các ứng dụng.

Ngoài ra, hãy nhớ rằng tất cả các tính năng trên thế giới sẽ không tạo ra một giao diện khó khăn, ngoài ra, nó có thể phơi bày các sự cố dành riêng cho cơ sở hạ tầng của bạn - tức là, điều gì xảy ra nếu các tệp cấu hình được cập nhật theo thứ tự khác hơn cả mong đợi?

Vì vậy, đó là lời khuyên của tôi; Chef và Puppet không khó để có được một máy chủ và một hoặc hai máy khách, và sẽ cho bạn trải nghiệm đầu tiên trên cả hai. Ngoài ra, nếu bạn bắt đầu thiết lập nó và nhận ra một nỗi đau rất lớn, bạn sẽ có kiến ​​thức trước khi cam kết.


5

Nếu có những người trong dự án của bạn đã có kinh nghiệm với Puppet, thì tôi khuyên bạn chỉ nên sử dụng Puppet.

Chef và Puppet khá giống nhau, và cả hai dự án đều có chất lượng cao như nhau. Nếu bạn có quyền truy cập vào những người đã có kinh nghiệm về Puppet, chỉ cần sử dụng Puppet.


2

Trên đây chắc chắn là một hướng dẫn tốt, tôi cũng muốn hỏi những câu hỏi chung này bất cứ khi nào tôi đang xem xét một sự phụ thuộc của bên thứ ba mới.

  • Tuổi của dự án là gì?
  • Cộng đồng hoạt động như thế nào (danh sách gửi thư, lỗi, irc, v.v.)?
  • Là tài liệu vững chắc tốt được cung cấp với thực hành tiêu chuẩn?

Đây là những chỉ số tốt về thành công chung của dự án và phần nào có thể dự đoán tuổi thọ.


Tuổi tác dễ hoặc khó đánh giá: Đầu bếp được bắt đầu bởi một công ty đã sử dụng Puppet nhưng không hài lòng với những điều nhất định. Nó mới hơn một vài năm, nhưng có thể được xem như một ngã ba.
freiheit

0

Cố gắng tìm những người đã sử dụng Đầu bếp hoặc Con rối trong hơn một vài tháng và hỏi họ về kinh nghiệm của họ.


0

Đối với tôi nó liên quan chặt chẽ đến truyền thống của cộng đồng cụ thể. Trong lịch sử, Chef đã gần gũi hơn với các chàng trai RubyOnRails. Cũng là phần lớn sự phổ biến của Chef trong cộng đồng ROR vì Engineyard đã xây dựng cơ sở hạ tầng của họ trên đỉnh Chef.

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.