Chiến lược tốt nhất để giữ cho các phiên bản sách dạy nấu ăn được kiểm soát


10

Tôi đang tìm kiếm ý tưởng về quản lý phiên bản sách dạy nấu ăn. Tôi biết rằng bạn ghim các phiên bản cụ thể trong môi trường, nhưng tôi không chắc chắn cách thực hiện.

Chúng tôi sử dụng thủ thư-đầu bếp cài đặt sách cộng đồng của bên thứ 3 vào thư mục sách dạy nấu ăn. Thỉnh thoảng chúng tôi không bao giờ chạm vào những cuốn sách đó và chỉ cập nhật lên các phiên bản mới hơn.

Chúng tôi cũng có sách dạy nấu ăn dành riêng cho trang web của chúng tôi từ nơi chúng tôi bao gồm những người cộng đồng ( include_recipe).

Về mặt lý thuyết, chúng tôi có thể chỉ định các phiên bản sách cộng đồng cụ thể mà sách tùy chỉnh của chúng tôi phụ thuộc và sau đó đặt phiên bản sách nấu ăn của chúng tôi trong cấu hình môi trường, nhưng vấn đề là những cuốn sách cộng đồng đó có thể dựa vào một số sách khác mà không có phiên bản cụ thể. Và sự phụ thuộc lồng nhau sâu sắc đó có thể tiếp tục.

Vì vậy, không có gì đảm bảo rằng khi bạn tải sách dạy nấu ăn lên máy chủ đầu bếp, nó sẽ không bị hỏng, vì sách nấu ăn phụ thuộc cũng có thể thay đổi.

Giải pháp duy nhất tôi có thể thấy vào lúc này là chỉ định từng verion sách nấu ăn mà chúng tôi sử dụng trong cấu hình môi trường, bao gồm cả cộng đồng và tùy chỉnh. Nhưng sau đó tôi phải đi qua từng cuốn sách nấu ăn và tìm ra những phiên bản đó.

Thỉnh thoảng chúng tôi cũng cập nhật thủ thư và đầu bếp và tôi tưởng tượng có thể khó theo dõi các phiên bản đã thay đổi và không quên cập nhật phiên bản trong môi trường khi thời gian đến.

Xin vui lòng, chia sẻ kinh nghiệm của bạn và thực hành tốt nhất. Tôi chắc chắn rằng nó sẽ siêu hữu ích cho những người khác.

Câu trả lời:


11

Không lâu sau khi tôi bắt đầu sử dụng Chef một cách nghiêm túc rằng tôi đã gặp phải những vấn đề tương tự. Tôi chỉ có ý thức về sự tỉnh táo khi tôi bắt đầu thực hiện bốn điều hoạt động. Lưu ý rằng những điều này có thể không được coi là "thực hành tốt nhất" bởi một số người trong cộng đồng Chef. Tuy nhiên, đây là cách tôi mang lại sự tỉnh táo, lặp lại và trật tự cho thế giới của tôi.

  1. Tạo công thức nấu ăn của riêng bạn. Tôi đã ngừng sử dụng sách dạy nấu ăn cộng đồng hoàn toàn và chỉ đơn giản là tạo ra các công thức nấu ăn của riêng tôi, theo thông số kỹ thuật của tôi. Bằng cách này, tôi quản lý và kiểm soát các phụ thuộc của riêng tôi. Nhiều người sẽ tranh luận về điều này, nhưng thành thật mà nói - nếu tôi đã đọc một số Opscode và các công thức nấu ăn cộng đồng trước tiên, có lẽ tôi đã không chọn Chef là giải pháp của mình để bắt đầu. Tôi giữ cho công thức nấu ăn của tôi đơn giản, và phù hợp với cách làm việc của tôi. Tôi có chính xác không có sách dạy nấu ăn cộng đồng trong kho lưu trữ của tôi.
  2. Được kỷ luật về nâng cấp. Nếu tôi cập nhật một công thức, tôi chắc chắn rằng nó hoạt động ở mọi nơi và tôi sẽ gặp nhiều rắc rối hơn khi triển khai nó ở mọi nơi, ngay cả khi nó phá vỡ quy trình làm việc của tôi và thêm ma sát. Về lâu dài, đây là chìa khóa cho sự tỉnh táo của Chef. Trong trường hợp cực đoan, nếu tôi cần các biến thể cho một số máy chủ, chẳng hạn như môi trường thử nghiệm và sản xuất, thì tôi mã hóa chúng vào sách nấu ăn. Nhưng triết lý của tôi là phiên bản mới nhất của mỗi cuốn sách nấu ăn sẽ có thể được áp dụng một cách an toàn ở mọi nơi cần thiết.
  3. Sử dụng Chef Solo cho mọi thứ. Cứ sau vài tháng, bằng cách nào đó tôi lại nhận ra rằng tôi nên thử sử dụng Chef Server một lần nữa. Phiên bản cộng đồng đang được cải thiện, nhưng toàn bộ mô hình dường như không bao giờ phù hợp với thế giới của tôi. Và mỗi khi tôi cố gắng, tôi phải đối mặt và tự đá mình. Mô hình Chef Server phù hợp với một thế giới có máy chủ tồn tại lâu, cần thay đổi hệ thống thường xuyên. Tôi thực hiện các thay đổi hệ thống rất hiếm khi việc máy chủ của tôi liên tục đăng nhập vào máy chủ đầu bếp để cập nhật chỉ là điều ngớ ngẩn. Và tôi có các công cụ tốt hơn nhiều để đảm bảo rằng máy chủ của tôi khỏe mạnh. Công việc của tôi là trong một thế giới của các máy ảo dùng một lần, nơi chúng chỉ có thể tồn tại một hoặc hai thay đổi cấu hình. Bây giờ tôi chỉ sử dụng Chef Solo và đẩy các thay đổi đến máy chủ của mình, đồng thời đẩy chính xác các sách dạy nấu ăn cho tất cả các máy chủ cần chúng.
  4. Tránh biên dịch phần mềm trong khi Chef chạy. Trường hợp cực đoan nhất (tức là ngu ngốc) đối với tôi liên quan đến việc biên dịch ruby-1.9.3 từ nguồn mỗi khi tôi khởi động một hộp mới. Nhưng tạo gói tùy chỉnh thường có thể là một nỗi đau ở mông. Khi tôi phát hiện ra công cụ tuyệt vời fpm , nó trở nên tầm thường để đóng gói các rpms, tranh luận và đá quý của riêng tôi và làm cho cuộc sống của tôi hiệu quả và dễ dàng hơn nhiều.

Hy vọng điều này sẽ giúp được ai đó!

- CẬP NHẬT -

Gần ba năm sau, những nguyên tắc này vẫn hữu ích với tôi. Nhưng tôi sẽ thêm một lời khuyên nữa, và nó thực sự vì những lý do tương tự mà tôi thích đầu bếp-solo hơn đầu bếp.

  1. SỬ DỤNG CÀI ĐẶT ANSIBLE

3

Có 2 vấn đề:

  1. quản lý các phiên bản sách nấu ăn trong các đối tượng môi trường khác nhau
  2. quản lý phiên bản công thức trong nút run_list.

Bài viết Những điều cần thiết của phiên bản sách dạy nấu ănlà tài liệu tham khảo tốt nhất cho các phiên bản sách dạy nấu ăn. Theo # 1, bạn đúng vì công việc khó khăn là quản lý các phiên bản sách nấu ăn khác nhau để phục vụ các bộ cấu hình khác nhau, đặc biệt là nó phụ thuộc vào phụ thuộc sách nấu ăn trong đó hầu hết các sách nấu ăn từ trang sách nấu ăn không làm tốt công việc này. Vì vậy, cấu hình có thể bị hỏng. và nếu bạn không quản lý các phiên bản bằng cách kiểm tra hành vi thời gian chạy của bất kỳ thành phần nào, thì nó chỉ bị hỏng. Vì vậy, đó là một ý tưởng tồi để tải lên sách dạy nấu ăn mà không chỉ định số phiên bản trong đối tượng môi trường của bạn. Vì vậy, hãy quản lý các phiên bản sách nấu ăn trong đối tượng môi trường và kiểm tra cẩn thận khi quảng cáo phiên bản của bất kỳ sách nấu ăn mới nào. Tôi thường quản lý đối tượng môi trường trong SCM và không tải lên máy chủ đầu bếp thông qua công việc tự động cho đến khi sách nấu ăn thay đổi có thể hoạt động tốt với phần còn lại của thành phần hiện có khác.

Theo # 2, đây là một chủ đề khó bởi vì đây là nơi phụ thuộc công thức thực tế hoạt động trên mỗi nút. Tóm lại, đối với các nút quan trọng, bạn nên kiểm soát tốt hơn sự phụ thuộc của công thức nấu ăn bằng cách chỉ định phiên bản công thức trong danh sách chạy nút / vai trò. Tôi hầu như không làm điều này bởi vì nó kiểm soát tốt và chi phí nhiều hơn cho việc thử nghiệm / quảng bá. Tuy nhiên, đối với vai trò / nút quan trọng, đây không phải là ý tưởng tồi nhưng cung cấp bảo hiểm cho các thay đổi cấu hình.

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.