Cổ vật (hoặc vật phẩm) là gì?


17

Câu hỏi về " Kho lưu trữ giả là gì? " Chứa câu trả lời với lời giải thích thú vị về phần kho lưu trữ của nó. Và từ việc đọc toàn bộ câu trả lời, tôi không chắc chính xác một " tạo tác " nghĩa là gì trong bối cảnh của DevOps.

Bất kỳ đề xuất?

Ps: Từ một trong những câu trả lời tôi dường như hiểu rằng có lẽ vật phẩm là điều tôi đang tự hỏi (bối rối?) Về ...


2
Những người bạn của chúng tôi về tiếng Anh SE đã viết một quan điểm về "tạo tác" so với "vật phẩm": english.stackexchange.com/questions/37903/
Lỗi

Câu trả lời:


19

Wikipedia có một câu trả lời rất hay cho câu hỏi này Artifact , đôi khi còn được gọi là Đối tượng phái sinh , là sản phẩm của một số quy trình được áp dụng cho Kho lưu trữ mã . Ban đầu chúng được gọi là Build Artifacts , nhưng khi nhiều quy trình được áp dụng ngoài xây dựng để tạo ra chúng, từ đầu tiên chỉ đơn giản là bị loại bỏ.

Sự khác biệt chính là các tạo phẩm có thể được tạo lại từ kho lưu trữ mã bằng cách sử dụng cùng một quy trình, với điều kiện bạn phải bảo vệ môi trường mà quy trình được áp dụng. Vì quá trình này có thể tốn thời gian và môi trường có thể được bảo tồn hoàn hảo để có thể tái tạo các cổ vật theo cách chính xác, chúng tôi bắt đầu lưu trữ chúng trong Kho lưu trữ nhân tạo .

Lưu trữ chúng ngoài Kho lưu trữ mã trong Kho lưu trữ nhân tạo là một quyết định thiết kế mà một kỹ sư DevOps sẽ đưa ra. Một số công ty, cụ thể là Perforce , cũng đề nghị sử dụng Kho lưu trữ mã của họ làm Kho lưu trữ nhân tạo. Có các yêu cầu khác nhau về quyền truy cập , kiểm toán , kích thước đối tượng , gắn thẻ đối tượngkhả năng mở rộng trên mỗi kho lưu trữ và do đó tùy thuộc vào tình huống, tốt hơn là sử dụng hai sản phẩm riêng biệt. Ví dụ: Gitcác kho lưu trữ được sao chép toàn bộ vào mọi máy phát triển và vì vậy việc lưu trữ các tạo phẩm trong kho lưu trữ mã sẽ tăng kích thước của nó vượt quá mọi lý do, mặc dù gần đây có nhiều cách để giảm thiểu điều này. Một quyết định khác để đưa ra là những đồ tạo tác sẽ lưu trữ. Một số công ty lưu trữ ngay cả các tạo phẩm trung gian dưới dạng tệp đối tượng riêng lẻ, để tăng tốc độ xây dựng lại, số khác chỉ lưu trữ các tệp nhị phân cuối cùng. Không phải tất cả các cổ vật đều có cùng giá trị. Các tạo phẩm tạo ra từ một bản dựng phát hành có thể có các yêu cầu khác với các tạo phẩm tạo ra từ một bản dựng của nhà phát triển.

Các tạo phẩm phổ biến nhất là kết quả của các quá trình sau: Cấu hình , Tiền xử lý , Biên dịch , Liên kết , Kiểm tra tự động , Lưu trữ , Đóng gói , Tạo và xử lý tệp phương tiện , Tạo tệp dữ liệu , Phân tích tài liệu , Phân tích , QA , v.v.


Câu về kích thước git không hoàn toàn chính xác, sử dụng git lfs bạn có thể giảm thiểu vấn đề này. (chỉ là một độ chính xác nhỏ)
Tensibai 10/03/2017

Thật thú vị, điều đó thậm chí còn xác nhận suy nghĩ của tôi (đoán) thậm chí nhiều hơn. 2 điều: liên kết lực lượng của bạn cần sửa chữa và câu hỏi thêm: bạn có đồng ý rằng "theo dõi dữ liệu thử nghiệm của bạn" (đầu vào bạn đã sử dụng và đầu ra bạn nhận được) cũng có thể được coi là các tạo phẩm như vậy không? Và BTW, câu trả lời này nhắc nhở tôi về "mức xác minh" được sử dụng trong lĩnh vực "ký quỹ phần mềm" (nếu bạn quen với điều đó). Tôi bắt đầu tự hỏi về các chủ đề ký quỹ phần mềm nên được coi là chủ đề cho DevOps ... Có lẽ @Tensibai có thể muốn bình luận về điều đó không?
Pierre.Vriens

1
@ Pierre.Vriens cho các dữ liệu thử nghiệm của bạn, thật khó cho đến ngày nay, nếu dữ liệu thử nghiệm của bạn là DB, không phù hợp với một khái niệm giả tạo. Đối với ký quỹ, tôi không có ý tưởng nào, nếu các câu hỏi được tập trung đủ có vẻ hợp với tôi.
Tensibai

@ Pierre.Vriens Ý tôi là có rất nhiều thứ phù hợp với tên 'dữ liệu thử nghiệm' (từ số đơn giản đến hàng triệu tệp thông qua các bản ghi DB mẫu) mà nó quá rộng mà không có ngữ cảnh.
Tensibai

@ Pierre.Vriens (và xin lỗi Jiri vì các thông báo) Tôi không nghĩ các cuộc đàm phán hợp đồng với nhà cung cấp của bạn là về chủ đề, và những gì bạn mô tả chỉ là đàm phán pháp lý cho những gì tôi đoán.
Tensibai

7

Có hai cách sử dụng từ "art artefact" và một cách làm cho mã nguồn trở thành một vật phẩm trong khi cách thứ hai làm cho nó không phải là một vật phẩm: điều này thực sự có thể khá khó hiểu!

Nghệ thuật tạo ra một thứ cụ thể, so với một điều lý tưởng - Ý nghĩa này là ý nghĩa phổ biến của từ một vật thể được tạo ra bởi một con người, điển hình là một trong những lợi ích văn hóa hoặc lịch sử và không phải là thuật ngữ kỹ thuật. Dưới đây là một ví dụ trong ngữ cảnh kỹ thuật: Khi bạn gỡ lỗi một phần mềm, bạn sẽ học được điều gì đó về phần mềm. Nó thường là một khoản đầu tư có giá trị để biến việc học này thành một vật phẩm phần mềm, giống như một bài kiểm tra hồi quy. Nếu không, việc học này sẽ bị lãng quên và nỗ lực để có được nó sẽ bị lãng phí. Theo nghĩa này, mã nguồn được coi là một vật phẩm.

Nghệ thuật tạo ra một thứ gì đó được sản xuất bởi một công thức - Ý nghĩa này sử dụng hình ảnh phổ biến của nhà giả kim sử dụng một số công thức bí truyền để sản xuất một thiết bị ma thuật, thường được gọi là vật phẩm. Đó là thuật ngữ kỹ thuật được sử dụng để phân biệt giữa mã nguồn, tương ứng với công thức trong phép ẩn dụ của nhà giả kim và bất cứ điều gì có nguồn gốc từ mã nguồn đó, tương ứng với một vật phẩm trong ẩn dụ của nhà giả kim. Chẳng hạn, tôi vừa tự động hóa việc sản xuất vật phẩm cho chương trình plop-fizz của mình, giờ đây các tarball nguồn, tệp chữ ký, các gói DEB và RPM đều có thể được khởi tạo chỉ bằng một lệnh! Ý nghĩa này không nhận ra mã nguồn là một vật phẩm, vì thuật ngữ này được sử dụng để biểu thị những gì được tạo ra từ mã nguồn này.


3

Tôi cho rằng câu trả lời có thể thay đổi từ nơi này đến nơi khác. Nơi tôi làm việc tại thời điểm hiện vật là bất cứ thứ gì được sử dụng bởi một số thực thể khác, ngoại trừ mã nguồn được sử dụng để phát triển - điều này đi vào kiểm soát nguồn.

Điều này bao gồm các tệp nhị phân của sản phẩm hoặc các sản phẩm cần thiết khác, thư viện, tệp đối tượng, các tạo phẩm thử nghiệm như tệp phương tiện hoặc dữ liệu thử nghiệm.

Mã nguồn không được coi là một tạo tác. Trừ khi nó phù hợp với định nghĩa "tiêu thụ bởi" - trong trường hợp của chúng tôi bao gồm các thư viện bên thứ ba, mã tập lệnh được sử dụng để thử nghiệm hoặc các mục đích khác (nhưng không phải là phiên bản phát triển).


Hừm, thú vị, bạn đang xác nhận những gì tôi đoán. Bạn có đồng ý rằng chúng ta không nói đến nền tảng hay HĐH nào không. Ví dụ, ngay cả đối với các máy tính lớn, một "có thể" cũng sử dụng thuật ngữ này ... Nếu vậy, bạn cũng có thể bao gồm một cái gì đó về điều đó trong câu trả lời của bạn không?
Pierre.Vriens

Ngay cả mã thực tế từ kiểm soát phiên bản cũng có thể / nên được coi là một vật phẩm nếu nó được tiêu thụ. Ví dụ: các trang HTML dựa trên mẫu sẽ được triển khai như trên trang web. Chúng là các tạo phẩm triển khai, có thể cần được sao chép rõ ràng cùng với các tạo phẩm được xây dựng khác ở một số vị trí tạm thời để triển khai thực tế, ví dụ. Nhưng nó có thể không ý nghĩa nhiều để lưu trữ chúng trong một kho lưu trữ giả vì chúng luôn có thể được lấy từ kho lưu trữ mã nguồn.
Dan Cornilescu

@Pierre Xác nhận rằng hệ điều hành nào là trực giao để trở thành một tạo tác, tôi không chắc tại sao nó nên được đưa vào câu trả lời rất nhiều điều khác cũng không liên quan.
Rf

0

Lưu ý bên về văn hóa. Mặc dù trong DevOps, chúng tôi coi khái niệm "kho lưu trữ nhân tạo" là một tình huống nhất định, dường như không có quá nhiều mối liên kết với quy trình tổ chức.

Vấn đề về văn hóa: nếu một tổ chức sử dụng ITIL, những người được chứng nhận sẽ nói rằng "chúng ta cần có một thư viện phương tiện xác định, một kho lưu trữ để đặt các mục cấu hình phần mềm mà chúng ta đã sản xuất". Vì vậy, những người quan tâm đến các quy trình CNTT có cấu trúc tốt không biết công cụ nào (không phải quản lý) hỗ trợ và đang được sử dụng. Ngược lại, nếu bạn cần một lời biện minh cho ngôn ngữ Nexus hoặc Artifactory, bạn có thể gặp khó khăn để giải thích nó tùy thuộc vào tổ chức.

Đọc thêm: https://en.wikipedia.org/wiki/Definitive_Media_L Library


1
Chào. Chào mừng đến với trang web. Vui lòng thêm thông tin để trả lời. Ở trạng thái hiện tại, nó chỉ liên kết và sẽ được gắn cờ :)
Dawny33

nếu DevOps cũng liên quan đến văn hóa, tôi nghĩ rằng một liên kết đến ITIL quan trọng bởi vì đôi khi nó quy định tổ chức CNTT ở cấp độ tổ chức cao hơn. Thêm giải thích để làm rõ sự đối xứng của sự thiếu hiểu biết này.
Peter

1
Tôi không nghĩ rằng nó thực sự giải quyết câu hỏi về vật phẩm là gì, nhưng ít nhất nó có vẻ như là một nỗ lực trung thực để trả lời ngay bây giờ.
Tensibai

Tôi đồng ý với @Tensibai (hiện tại) và đã xóa nhận xét trước đó của tôi (không còn nghi ngờ nữa). Và mặc dù mọi thứ trong câu trả lời này đều có ý nghĩa, tôi vẫn không hiểu làm thế nào "Ghi chú bên lề" này trả lời câu hỏi của tôi, điều mà tôi đã cố gắng tóm tắt trong tiêu đề câu hỏi của mình, tức là "Cổ vật là gì (hoặc tạo tác )? ". Tôi hoan nghênh những nỗ lực mới, OK?
Pierre.Vriens
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.