Có một số danh mục công cụ tại đây. Một số người sử dụng kết hợp các công cụ từ các danh mục này. Tôi đôi khi sử dụng, ví dụ, cả Puppet và Capistrano. Xem Puppet or Capistrano - Use the Right Tool for the Job để thảo luận.
cụ Scripting nhằm triển khai một ứng dụng:
Các mô hình chung với các công cụ trong thể loại này là bạn tạo ra một kịch bản và/hoặc tập tin cấu hình, thường với bộ lệnh tương tự như một Makefile, và công cụ sẽ ssh trên hộp sản xuất của bạn, thực hiện thanh toán nguồn của bạn và chạy bất kỳ bước nào khác là cần thiết.
Các công cụ trong khu vực này thường có cơ sở để quay trở lại phiên bản trước đó. Vì vậy, họ sẽ kiểm tra nguồn của bạn để phát hành/thư mục, và tạo ra một liên kết tượng trưng từ "hiện tại" để "phát hành /" nếu tất cả diễn ra tốt đẹp. Nếu có sự cố, bạn có thể hoàn nguyên về phiên bản trước bằng cách chạy lệnh sẽ xóa "hiện tại" và liên kết nó với thư mục/bản phát hành trước đó.
- Capistrano đến từ cộng đồng Rails nhưng là mục đích chung. Người sử dụng Capistrano có thể quan tâm đến deprec, một tập hợp các công thức triển khai cho Capistrano.
- Vlad the Deployer là một thay thế cho Capistrano, một lần nữa từ cộng đồng Rails.
- Viết tập lệnh shell của riêng bạn hoặc Makefile.
Tùy chọn để nhận các tập tin vào hộp sản xuất:
- thanh toán trực tiếp từ nguồn. Không phải lúc nào cũng có thể nếu các hộp sản xuất của bạn thiếu các công cụ phát triển, cụ thể là các công cụ quản lý mã nguồn.
- Nguồn thanh toán cục bộ, sau đó tar/zip nó lên. Sử dụng scp hoặc rsync để sao chép tarball. Điều này đôi khi được ưu tiên cho một thứ như triển khai Amazon EC2, nơi mà một tarball nén có thể tiết kiệm thời gian/băng thông.
- Nguồn séc tại địa phương, sau đó rsync nó vào hộp sản xuất.
Công cụ Bao bì
Sử dụng hệ thống bao bì của hệ điều hành của bạn để tạo ra các gói có chứa các tập tin cho ứng dụng của bạn. Tạo một gói chủ có phụ thuộc vào các gói khác mà bạn cần. Hệ thống RubyWorks là một ví dụ về điều này, được sử dụng để triển khai một ngăn xếp Rails và ứng dụng mẫu. Sau đó, nó là vấn đề của việc sử dụng apt, yum/rpm, Windows msi, hoặc bất cứ điều gì để triển khai một phiên bản nhất định. Rollback liên quan đến việc gỡ cài đặt và cài đặt lại phiên bản cũ.
cụ chung Nhằm vào Cài đặt Apps/Configs và duy trì một Set Hệ thống
Những công cụ này không nhắm tới các vấn đề về việc triển khai một ứng dụng web, mà là vấn đề tổng quát hơn về việc triển khai/duy trì Apps/Configs cho một tập hợp các máy chủ, hoặc toàn bộ máy trạm của công ty. Chúng nhắm vào quản trị viên hệ thống nhiều hơn nhà phát triển web, mặc dù có thể tìm thấy chúng hữu ích.
- Cfengine là công cụ trong danh mục này.
- Puppet nhằm cải thiện trên Cfengine. Nó có một đường cong học tập nhưng nhiều người thấy nó có giá trị thời gian để tìm ra cách để làm các cấu hình. Một khi bạn đã có nó đi, mỗi hộp kiểm tra máy chủ trung tâm định kỳ và chắc chắn rằng tất cả mọi thứ được cập nhật. Nếu ai đó chỉnh sửa tệp hoặc thay đổi quyền, điều này sẽ được phát hiện và sửa chữa.Vì vậy, không giống như các công cụ triển khai ở trên, Puppet không chỉ đặt các tệp ở đúng nơi cho bạn, nó đảm bảo chúng ở lại như vậy.
- Chef hơi nhỏ hơn Puppet với cách tiếp cận tương tự.
- Smartfrog là một công cụ khác trong danh mục này.
- Ansible làm việc với một file YAML đơn giản và không đòi hỏi các đại lý chạy trên các máy chủ nó quản lý
Để so sánh những điều này và nhiều công cụ hơn trong thể loại này, xem bài viết Wikipedia, Comparison of open source configuration management software.
Wow 7 năm sau ... Hiện có hàng tấn công cụ ngoài đó cụ thể là các công cụ tự động phát hành ứng dụng. Đây là một nguồn tài nguyên khởi đầu tuyệt vời để tìm hiểu thêm: https://en.wikipedia.org/wiki/Application_release_automation –