Có phải là cách tốt nhất để triển khai một dự án vào tệp máy chủ theo cách thủ công?


26

Công ty tôi làm việc bây giờ chưa thực hiện giao hàng liên tục. Chúng tôi vẫn triển khai dự án theo cách thủ công đến máy chủ, từng tệp. Đó là cách thực hành tốt nhất: để triển khai thủ công một tạo phẩm dự án cho mỗi lần triển khai hoặc tiếp tục thực hiện triển khai từng tệp?


12
Thậm chí không có từ xa "một thực hành cho tất cả các tình huống" cho nhiệm vụ này.
tên gì

26
Thông thường tôi sẽ liên kết đến Tại sao lại đặt câu hỏi về việc thực hành tốt nhất trên YouTube là một điều tồi tệ? Tôi nghĩ rằng tất cả chúng ta có thể đồng ý rằng đây là thực hành tồi tệ nhất . Nó xếp hạng cao hơn một chút "đốt lửa cho máy chủ."


9
Tôi nghi ngờ rằng OP đang hỏi câu hỏi này vì anh ta đã biết câu trả lời, và nơi làm việc của anh ta là Làm điều đó sai (tm), và OP đang cố thu thập bằng chứng để đưa ra một trường hợp thay đổi cách họ làm.
dùng1936

2
Chúng tôi đã làm theo cách này trong thiên niên kỷ thứ hai. Nên ổn thôi! ;)
Don Branson

Câu trả lời:


103

Đó là thực hành tốt nhất? để triển khai thủ công một dự án tạo ra mỗi triển khai hoặc tiếp tục thực hiện tệp bằng cách triển khai tệp?

Cũng không.

Thực hành tốt nhất là tự động hóa việc triển khai của bạn, hoàn toàn và độc quyền. Điều đó có nghĩa là không ai được đặt bất cứ thứ gì lên máy chủ theo cách thủ công.

"Để tóm tắt tóm tắt của bản tóm tắt: Mọi người là một vấn đề." (Douglas Adams)

Mọi người mắc sai lầm. Nếu một trong những tệp mà bạn quên sao chép là một "thư viện" được chia sẻ đã bị thay đổi rộng rãi, bạn có thể khiến toàn bộ trang Sản xuất bị sập.


17
@ John John Hamilton Nếu tự động hóa việc biên dịch là một nhiệm vụ khó khăn, thì đó chính là điều cần giải quyết trong thời gian dài. Bạn không cần phải hoàn thành các môi trường phát triển, thử nghiệm, tiền sản xuất với việc triển khai hoàn toàn tự động hóa, nhưng việc tạo ra một gói triển khai tiêu chuẩn phải là thông lệ tiêu chuẩn.
Neil

20
Er, quy mô của công ty không thực sự là vấn đề (ở một mức độ). Chi phí sẽ liên quan đến mức độ triển khai được tự động hóa và cũng liên quan đến sự phức tạp của môi trường sản xuất. Nhưng có một độ dốc tự động hóa và độ dốc của "chi phí" (thời gian / tiền bạc) bắt đầu từ những thứ đơn giản như kịch bản để sao chép sản lượng xây dựng vào sản xuất (đầu tư nhỏ với tiết kiệm chi phí hữu hình ngay lập tức), và tăng cường từ đó, và nó phụ thuộc nhiều hơn về quản lý mua ngoài quy mô công ty.
BurnsBA

39
@ John John Hamilton: Một công ty nhỏ hơn được quản lý kém có thể khiến họ lầm tưởng rằng, chắc chắn. Tự động sao chép các tập tin không chính xác là một nhiệm vụ khó khăn và chi phí để có bất kỳ người được tuyển dụng nào làm việc này thường xuyên sẽ vượt xa chi phí viết ngay cả kịch bản tầm thường nhất để thực hiện thay thế.
GManNickG

8
@ John John Hamilton: Chi phí tự động hóa phải được cân nhắc trước nguy cơ mắc lỗi trong quá trình triển khai thủ công.
Robert Harvey

7
Bạn thậm chí không nhất thiết cần Jenkins. Chỉ cần một tập lệnh đã đăng ký với một loạt các lệnh scp (hoặc bất cứ điều gì bạn sử dụng khi tải lên theo cách thủ công) sẽ là một sự cải tiến.
dùng253751

14

Các bước thủ công mất rất nhiều nỗ lực và có nhiều rủi ro: bạn có thể quên một tệp cần thiết. Có lẽ không phải ai trong nhóm của bạn cũng biết những tập tin nào cần được sao chép. Tất cả những vấn đề này làm cho việc triển khai trở nên lớn, nan giải và hiếm gặp - hoàn toàn không cần thiết. Tự động hóa giải quyết những điều này.

Ngay cả bước tự động hóa đơn giản nhất cũng có thể có lợi ích lớn, bởi vì việc triển khai trở nên tầm thường. Một tập lệnh sao chép các tập tin hoặc tạo tác thông qua (S) FTP hoặc Rupync hoặc công nghệ khác là bước đầu tiên tuyệt vời. Sau này, bạn có thể mở rộng tập lệnh đó để thực hiện các bước triển khai trước và sau triển khai trên máy chủ, như khởi động lại dịch vụ.


Nếu tổng số máy chủ là 2 hoặc ít hơn, thủ công sẽ ít rủi ro hơn so với tự động. Tự động yêu cầu kiểm tra lỗi rộng rãi. Tôi chưa bao giờ thấy một giải pháp tự động tầm thường mà tầm thường.
Joshua

3
@Joshua Tôi không chắc số lượng máy chủ sẽ là một yếu tố ở đây. Tự động hóa cũng có giá trị khi bạn triển khai đến cùng một máy chủ nhiều lần. Câu hỏi là, bạn tin tưởng ai hơn: máy tính thực hiện trung thực một tập lệnh đã hoạt động một lần hay khả năng ghi nhớ tất cả các bước cần thiết mỗi lần? Là một người dễ sai lầm và hay quên, tôi có một sở thích mạnh mẽ là không làm công cụ thủ công. Đôi khi tôi thậm chí kịch bản các tác vụ một lần chỉ để tôi có thể xem lại các lệnh trước khi chạy chúng. Đó là ít rủi ro hơn nhiều so với làm công cụ ngẫu nhiên bằng tay cho đến khi nó hoạt động!
amon

Tôi có nhiều kinh nghiệm cả hai cách. Những thứ tôi tạo ra để triển khai thủ công là cài đặt xcopy để thực sự không có bước nào để quên một số.
Joshua

9

Thực hành tốt nhất sẽ là thực hiện một quy trình tự động của một số loại.

Hãy cẩn thận kiểm tra xem không có lý do đặc biệt nào cho cách tiếp cận 'từng tệp một mà bạn sẽ phải tính đến.


1
Tôi hỏi câu hỏi này bởi vì tôi chỉ muốn chắc chắn rằng đó hoàn toàn không phải là thực tiễn tốt nhất trên thế giới. Tôi tự hỏi là vẫn còn bất kỳ công ty / nhà phát triển nào vẫn triển khai thủ công các ứng dụng / dự án của họ và điều tồi tệ hơn là tệp bằng cách triển khai tệp mỗi lần lặp phát triển.
Jake Muller

4
Câu hỏi tốt nhất để hỏi là "tại sao chúng ta làm theo cách này?" Tôi không thể nghĩ ra lý do, nhưng tôi biết rằng một số công ty muốn sử dụng tay kích hoạt như cũ
Ewan

8
@JakeMuller Điều bạn nên đọc giữa dòng câu trả lời này là các quyết định nên được đưa ra bằng cách suy luận về tình huống, không tuân thủ chặt chẽ những gì mà ai đó không biết về nó đã luôn tuyên bố là luôn trả lời đúng.
Blrfl

Lý do cho tệp theo cách tiếp cận tệp có thể là do sự phụ thuộc giữa các tệp và do đó các cập nhật tệp được triển khai trước khi thay đổi các tệp khác phụ thuộc vào các tệp đó. Cập nhật các tệp theo thứ tự sai có thể nhanh chóng phanh hệ thống.
bdsl

6

Với phân phối liên tục (hoặc triển khai, thực tế) và di chuyển từng tệp bằng tay, bạn đang xem xét hai thái cực. Hoàn toàn dễ hiểu khi bạn không thể / không muốn tạo một đường ống hoàn toàn tự động (chưa). Tuy nhiên, bạn nên xem xét tự động hóa các phần của quy trình.

Di chuyển từng tệp bằng tay khá rủi ro và bạn có thể giảm thiểu rủi ro đó bằng cách, ví dụ, gắn thẻ kho lưu trữ mã của bạn, kiểm tra thẻ đó trong máy tính của bạn, xây dựng các tạo phẩm của bạn và tải chúng lên máy chủ của bạn. Mỗi bước trong số này có thể được tự động hóa để chúng được thực hiện chỉ bằng vài cú click chuột và điều này sẽ giảm đáng kể nguy cơ quên một tệp hoặc vô tình đẩy để tạo ra một số tệp bổ sung.

Tự động hóa những gì bạn có thể, một lần bước một lần. Thực tế là bạn không thể mua một đường ống CD hoàn toàn tự động không nên khuyến khích bạn tự động hóa một số bộ phận.


1

Thực tiễn tốt nhất sẽ là phân tích chi phí / lợi ích cho việc triển khai cụ thể của bạn cho công ty cụ thể của bạn.

Câu trả lời chung là "không làm mọi thứ bằng tay, tự động hóa." Đây thường là câu trả lời đúng cho các loại công ty nói chung. Tính đồng nhất của các câu trả lời bạn đang nhận phải là một số dấu hiệu cho thấy cộng đồng thấy điều này là thực tiễn tốt nhất như thế nào. Nếu công ty của bạn cảm thấy rằng tự động hóa không phải là công cụ phù hợp, họ nên có một số hiểu những gì làm cho chúng trở nên độc đáo. Sự độc đáo đó cần được chú trọng trong quá trình ra quyết định của bạn. Không có "thực hành tốt nhất" khi tập mẫu là 1.

Các câu hỏi như "có bao nhiêu tệp" và "tần suất mọi thứ được cập nhật" và "hậu quả của việc phá vỡ mọi thứ" và "bạn có thể quay lại thay đổi xấu nhanh đến mức nào" là những câu hỏi quan trọng cần trả lời. Nếu bạn tự động hóa, nhiều câu hỏi trong số này trở nên không quan trọng, nhưng chúng rất cần thiết để gán đúng chi phí và lợi ích cho quy trình cập nhật thủ công.


1

Có rất nhiều màu xám ở giữa sao chép từng tệp thủ công và phân phối liên tục.

Bắt đầu bằng cách giảm độ phức tạp của quy trình triển khai, ví dụ bằng cách sử dụng tệp zip, bao bì kiểu vòng / phút, cơ sở hạ tầng làm công cụ quản lý mã (như con rối hoặc đầu bếp) hoặc thậm chí chỉ là một tập lệnh đơn giản sao chép các tệp cho bạn từ khu vực tổ chức trên máy chủ ftp.

Các quy trình triển khai với các bước thủ công hơn có nhiều khả năng có lỗi (và do đó thất bại) - như những người khác đã nói, lấy yếu tố con người ra khỏi nó.

Bạn không cần phải thực hiện giao hàng liên tục đầy đủ (tốn kém và mất công sức / đầu tư / đổi mới theo thời gian) - bắt đầu đơn giản, làm cho nó hoạt động, chứng minh lợi ích - và đi từ đó.


0

Nó phụ thuộc vào công nghệ phần mềm (hoặc ngăn xếp) bạn đang sử dụng (ngôn ngữ được giải thích, ngôn ngữ được biên dịch, ứng dụng máy tính để bàn, thiết bị di động, v.v.), mềm mại. nhà phát triển chính sách của bộ phận, nếu bạn có các công cụ để tự động hóa nó, ứng dụng của bạn quan trọng đến mức nào và một điều quan trọng cần xem xét là kiến ​​trúc phần mềm của bạn (cách ứng dụng của bạn được thiết kế). Đây là lý do tại sao bạn có câu trả lời khác nhau ở đây. Theo nguyên tắc thông thường, cách tiếp cận tốt nhất sẽ là giảm sự can thiệp của con người vào các nhiệm vụ triển khai, để tránh những sai lầm có thể xảy ra. Một thực tiễn tốt sẽ là kiểm tra mọi thứ trong Máy chủ QA (xem xét sử dụng máy chủ ảo nếu ngân sách có vấn đề) trước khi triển khai và có các quy trình ngược để khôi phục về phiên bản trước trong trường hợp có thảm họa ( LUÔN LUÔN có bản sao lưu).

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.