Thực tiễn tốt nhất để quản lý triển khai mã từ dev đến máy chủ sản xuất?


8

Tôi hy vọng tìm thấy một công cụ hoặc phương pháp dễ dàng, cho phép quản lý việc triển khai mã của chúng tôi.

Dưới đây là các tính năng tôi hy vọng giải pháp này có:

  1. Tệp dựa trên web hoặc tệp bó, được cung cấp danh sách các tệp, sẽ liên lạc với máy chủ sản xuất của chúng tôi, để sao lưu các tệp đó trong các thư mục khác nhau và nén chúng và đặt chúng vào thư mục mã dự phòng.

  2. Sau đó, nó ghi lại tên, ngày / giờ và mục đích triển khai.

  3. Sau đó, nó sẽ gửi các tệp đến vị trí thích hợp của chúng trên máy chủ sản xuất.

Tôi không muốn giao diện quá phức tạp để thực hiện triển khai vì sau đó họ có thể không bao giờ sử dụng giao diện đó.

Hay là những gì tôi đang yêu cầu quá phi thực tế?

Tôi chỉ biết rằng kỷ luật tự giác của tôi không hoàn hảo, và tôi muốn có một công cụ mà tôi có thể dựa vào để làm những gì cần phải làm, sau đó là trí nhớ của riêng tôi về những bước chính xác mà tôi phải thực hiện mỗi lần.

Làm thế nào để các bạn, đảm bảo mọi thứ được triển khai chính xác và dễ dàng quay trở lại trong trường hợp có bất kỳ sai lầm?


Lật đổ và một bài cam kết móc? Có máy chủ với một bản sao làm việc, cam kết với repo, có hook hook bài để cập nhật bản sao làm việc của máy chủ.
Vitor Py

Chúng tôi không sử dụng lật đổ, một thứ gọi là QVCS của Qumasoft.
crosenblum

Các bạn có thể đề xuất một cái gì đó không dựa trên chúng tôi thay đổi kiểm soát nguồn chúng tôi sử dụng?
crosenblum

Với Capistrano, bạn có thể viết trình điều khiển QVCS của riêng mình.
Htbaa

Và tôi xin lỗi, nếu tôi không làm rõ điều này, tôi cần một giải pháp trong hệ điều hành windows.
crosenblum

Câu trả lời:


2

Tất cả điều này có thể được thực hiện bởi một tập tin hàng loạt. Sau đây là các bước cơ bản cần phải xảy ra trong tệp bó:

  1. Nhận thời gian ngày hiện tại trong một biến.
  2. Tạo bản sao của thư mục sản xuất vào các thư mục với thời gian ngày hiện tại. Zip thư mục nếu bạn muốn.
  3. Tái tạo thư mục xây dựng thả vào thư mục sản xuất. Bạn cũng có thể bỏ qua một số tệp bạn không muốn ghi đè (như web.config). Cả xcopy và robocopy đều cho phép bỏ qua các tập tin.

Ngoại trừ bước đầu tiên, hai bước còn lại là các thao tác dòng lệnh rất cơ bản. Về mã đầu tiên, đoạn mã sau cho biết cách lấy thư mục có thời gian ngày:

for /f "tokens=1-3 delims=/ " %%A in ("%DATE%") DO (
  set DATESTR=%%C%%A%%B
)

for /f "tokens=1-3 delims=:." %%F in ("%TIME%") DO (
  set TIMESTR=%%F%%G%%H
)

set CURRENTDT=%DATESTR%T%TIMESTR%

:: now you can use the date time in a folder name:
xcopy /e \\production1\site1 \\backup\site1\backup-%CURRENTDT%\

1

Nghe có vẻ như một công việc cho Capistrano với plugin Railsless-Deploy .


Tôi cũng sẽ nói Capistrano. Nếu không có gì khác, nhìn vào những gì Capistrano cung cấp cho bạn là một cách tuyệt vời để có ý tưởng về những gì có sẵn cho bạn.
glenatron

Có phải Capistrano chỉ dành cho Linux?
crosenblum

Ruby chạy trên Windows, nhưng 1,5 năm trước tôi không thể chạy nó trên Windows. Vì vậy, thay vào đó tôi đã tải xuống phiên bản VMWare Server miễn phí và cài đặt máy chủ ảo Ubuntu và định cấu hình cho Capistrano. Có lẽ hỗ trợ Windows đã được cải thiện ngay bây giờ.
Htbaa

0

Tôi khá chắc chắn rằng bạn có thể làm điều này với TFS - nếu bạn đang làm việc với ngăn xếp phát triển MS


TFS là gì? Bất kỳ liên kết, mô tả?
crosenblum

@crosenblum TFS là Microsoft Team Foundation Server - sự thay thế được cải thiện rất nhiều cho Nguồn an toàn
Muad'Dib
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.