2011-09-29 12 views
7

Trong dự án của chúng tôi, chúng tôi đang sử dụng một số ứng dụng tái sử dụng django, chúng tôi đang xem xét làm thế nào để làm cho việc triển khai liên tục và tự động dễ dàng và không đau.Thực tiễn tốt nhất để triển khai (quản lý sự phụ thuộc) các ứng dụng tái sử dụng django trong một dự án sản xuất thực tế là gì?

Chúng tôi có 2 lựa chọn:

tùy chọn # 1: sử dụng "pip cài đặt xxx" để cài đặt tất cả phụ thuộc ứng dụng tái sử dụng. Viết một kịch bản để cài đặt và kiểm tra các phụ thuộc.

tùy chọn # 2: tạo bản sao của tất cả các ứng dụng có thể dùng lại được sử dụng trong thư mục riêng của chúng tôi, vì vậy về cơ bản chúng tôi sẽ triển khai mọi thứ trong thư mục dự án của chúng tôi.

cả hai tùy chọn đều có ưu và nhược điểm của nó, tôi tự hỏi liệu bạn có thể chia sẻ cách thực hành tốt nhất của bạn để làm điều này không?

+0

Được đề xuất: http://blip.tv/djangocon/taming-dependencies-with-pip-5582996 – DrTyrsa

Trả lời

13

Bạn có thể tạo một tập tin của dependancies với pip rất dễ dàng mà sẽ có nghĩa là phiên bản chính xác của từng ứng dụng sẽ được duy trì giữa các máy chủ

# Save dependancies to a file 
pip freeze > requirement_file.txt 

tạo ra một cái gì đó tập tin như:

django==1.3 
django-tagging 
markdown 
... 

sau này có thể được sử dụng để cài đặt lại các ứng dụng được liệt kê trên một máy chủ khác nhau

# Install all dependancies in the file 
pip install -r requirement_file.txt 

Đây là một cách tiếp cận tốt đẹp và đơn giản. Bạn có thể trở nên phức tạp hơn với những cái tên như zc.buildout

http://pypi.python.org/pypi/zc.buildout

giúp quản lý gói (python và phi python) thông qua các kịch bản (bạn crete 'recipies' chứa các chi tiết của gói bạn không cần cài đặt)

Nếu bạn cần kiểm soát rộng lớn hơn trên máy chủ cài đặt bạn có thể sử dụng 'bù nhìn' hoặc 'đầu bếp'

http://projects.puppetlabs.com/projects/1/wiki/Big_Picture http://wiki.opscode.com/display/chef/Chef+Server

nhằm mục đích tự động hóa và triển khai nhiều hơn thì chỉ phụ thuộc, nhưng toàn bộ máy chủ

Tôi không cần sử dụng nhiều tệp yêu cầu pip đơn giản hơn, nhưng các tùy chọn khác rất tuyệt nếu bạn cần thêm.

EDIT

Giữ phiên bản của riêng bạn trong những ứng dụng trong đường dẫn gốc/python dự án của bạn có thể trở thành cubmersome và khó khăn để theo dõi, tôi muốn đề nghị sử dụng một tập tin yêu cầu pip.

+0

Cảm ơn! Điều đó rất hữu ích! –