Kho lưu trữ nhân tạo là gì?


Câu trả lời:


32

Trong quá trình phát triển, bạn tạo ra một số lượng lớn các đồ tạo tác khác nhau. Chúng có thể bao gồm:

  • Mã nguồn
  • Ứng dụng đã biên dịch
  • Một gói có thể triển khai
  • Tài liệu

và có khả năng là những người khác

Mặc dù bạn có thể sử dụng một hệ thống kiểm soát nguồn để lưu trữ tất cả chúng, nhưng nó thường không hiệu quả, vì các hệ thống kiểm soát nguồn thường được thiết kế để xử lý các tệp dựa trên văn bản chứ không phải tệp nhị phân. Bạn có thể sử dụng chúng như một cơ chế lưu trữ đơn giản, nếu hầu hết các bản phát hành của bạn dựa trên văn bản và bạn không phải lưu trữ nhiều dữ liệu nhị phân.

Tuy nhiên, kho lưu trữ Artifact được thiết kế để lưu trữ tất cả các loại tệp, bao gồm cả tệp nhị phân. Điều này bao gồm mọi thứ từ mã nguồn được nén, để xây dựng kết quả, cho đến những thứ như hình ảnh docker. Ngoài ra, họ thường không chỉ lưu trữ các đồ tạo tác này mà còn giúp quản lý chúng bằng các chức năng bổ sung khác nhau, ví dụ:

  • Hỗ trợ phiên bản: lưu trữ đúng một số siêu dữ liệu, như khi mỗi tạo phẩm được tạo, số phiên bản của chúng là gì, lưu trữ băm của chúng, v.v.
  • Duy trì: đảm bảo bạn chỉ giữ các vật phẩm quan trọng và tự động xóa những thứ chỉ là ảnh chụp nhanh / không cần thiết nữa, v.v. dựa trên các tiêu chí khác nhau mà bạn có thể thiết lập
  • Kiểm soát truy cập: thiết lập ai có thể xuất bản và ai có thể tải xuống các tạo phẩm khác nhau
  • Khuyến mãi: khả năng quảng bá cổ vật. Ví dụ: bạn có thể có các tạo phẩm chụp nhanh với thời gian lưu giữ ngắn trên máy chủ gần bộ mã hóa của bạn và một kho lưu trữ riêng gần máy chủ trực tiếp, nơi chỉ có các tạo phẩm được coi là có thể triển khai. Điều này cũng bao gồm hỗ trợ cho các kênh phiên bản khác nhau và di chuyển các tạo tác giữa chúng (như quảng bá một phiên bản cụ thể từ beta sang ổn định).
  • Hoạt động như một kho lưu trữ riêng cho các tạo tác. Có nghĩa là bạn có thể sử dụng nó làm kho lưu trữ chính cho maven, rubygems, docker, v.v. Điều này cũng có thể bao gồm bộ đệm của các tạo phẩm từ kho lưu trữ chính thức.

Có thể đáng để thêm khả năng 'kênh' qua hỗ trợ Phiên bản, có khả năng có một số máy nhắm mục tiêu phát hành mới nhất trong kênh "phát triển" và máy prod nhắm mục tiêu một phiên bản cụ thể trong kênh "ổn định".
Tensibai

@ Pierre.Vriens đã thêm một số nhận xét nhỏ, nhưng có lẽ nó cũng có thể được giải quyết trong một Câu hỏi riêng biệt
SztupY

merci, nhưng chỉ trong trường hợp, đây là cơ hội của bạn để tiếp tục bình luận thêm của tôi ...
Pierre.Vriens

Liệu nó có ý nghĩa để theo dõi các tập tin cấu hình hoặc đồ đạc trong các loại kho lưu trữ?
tutuca

7

Có trình quản lý kho lưu trữ và Trình quản lý kho lưu trữ gói chung (UPM).

UPM có thể lưu trữ tất cả các tạo phẩm xây dựng của bạn cho Jenkins, teamcity, v.v. và nói chung cũng có thể đóng vai trò là người quản lý kho lưu trữ cho nhiều loại tạo tác nhị phân khác nhau Maven, npm, NuGet và hơn thế nữa.

Đây sẽ là các công cụ như Jfrog Artifactory , Inedo ProGetSonatype Nexus .

Một so sánh khá hay ở đây: https : // binary-repos khu-comparison.github.io/

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.