Một vật phẩm là gì?


53

Có khá nhiều câu hỏicâu trả lời đề cập đến " artifactory ".

Tôi sẽ không ngạc nhiên nếu nó bằng cách nào đó liên quan đến .

Câu hỏi của tôi :

  • Điều gì thực sự là một "tạo tác" (trong bối cảnh của DevOps)?
  • Tại sao tạo tác được sử dụng?

Khá nhiều câu trả lời thú vị cho những gì tôi nghĩ là một câu hỏi khá cơ bản. Thật thú vị, tất cả đều nhắc nhở tôi về một khái niệm tương tự trong môi trường máy tính lớn cũ (nơi gốc DevOps của tôi ... và nơi có rất nhiều khái niệm DevOps bắt nguồn từ đó).
Pierre.Vriens

Câu trả lời:


66

Artifactory là một sản phẩm của JFrog phục vụ như một trình quản lý kho lưu trữ nhị phân . Điều đó nói rằng rất thường người ta sẽ sử dụng một 'artifactory' như một từ đồng nghĩa của kho lưu trữ nhị phân tổng quát hơn, giống như nhiều người sử dụng Frigidaire hoặc tủ lạnh để biểu thị tủ lạnh bất kể đó có phải là nhãn hiệu Frigidaire hay không.

Kho lưu trữ nhị phân là một phần mở rộng tự nhiên cho kho lưu trữ mã nguồn, trong đó nó sẽ lưu trữ kết quả của quá trình xây dựng của bạn, thường được ký hiệu là các tạo phẩm. Hầu hết người ta sẽ không sử dụng trực tiếp kho lưu trữ nhị phân mà thông qua trình quản lý gói đi kèm với công nghệ đã chọn.

Trong hầu hết các trường hợp, những thứ này sẽ lưu trữ các thành phần ứng dụng riêng lẻ mà sau này có thể được lắp ráp thành một sản phẩm đầy đủ - do đó cho phép xây dựng được chia thành các phần nhỏ hơn, sử dụng tài nguyên hiệu quả hơn, giảm thời gian xây dựng, theo dõi cơ sở dữ liệu gỡ lỗi nhị phân tốt hơn, v.v.

Dưới đây là một số trình quản lý gói phổ biến nhất có thể được quản lý bằng kho lưu trữ nhị phân:

  • Java: jar, tai, chiến tranh, vv có MavenMavenCentral chính thức . Có nhiều trình quản lý gói khác cũng sẽ sử dụng định dạng kho lưu trữ nhị phân maven ( ivy , gradle , v.v.).
  • .Net: nuget cho các thành phần .NET (DLL và EXE) nhưng cũng có thể được sử dụng làm cơ chế phân phối trong các hệ thống windows thorugh như Chocolatey . Các phiên bản mới hơn của Powershell cũng có thể tận dụng điều này để phân phối các mô-đun powershell mặc dù bộ sưu tập powershell mà người ta có thể xây dựng một bản phân phối cục bộ với kho lưu trữ nhị phân và kho lưu trữ ở định dạng nuget. Đồng thời kiểm tra OneGet nếu quản lý phân phối Windows được bạn quan tâm.
  • Trong JavaScript: chúng tôi có npm là một trong những phổ biến nhất, sẽ yêu cầu nodejs .
  • Trong python: có pip và chỉ số gói chính thức pypi , người ta cũng có thể tạo một thể hiện cục bộ thông qua kho lưu trữ nhị phân sẽ hỗ trợ định dạng.

Danh sách này còn lâu mới hoàn thành, chỉ đưa ra ý tưởng về những gì ngoài kia.

Kho lưu trữ nhị phân có thể cho phép lưu trữ tất cả những thứ này dưới một mái nhà, giúp việc quản lý của chúng trở nên đơn giản hơn nhiều đối với các nhóm. Lưu ý rằng bạn không cần một nhóm rất lớn để bắt đầu gặt hái lợi ích từ quản lý gói nhị phân. Đầu tư ban đầu không lớn lắm và lợi ích được cảm nhận ngay lập tức. Đặc biệt là bây giờ ngày càng có nhiều nền tảng, khung và ngôn ngữ đang tích hợp quản lý phụ thuộc này trực tiếp vào chúng. Ưu điểm lớn nhất của họ tôi đã tìm thấy tuy nhiên là tạo ra một môi trường mà các lập trình viên của bạn sẽ thấy tự nhiên và thoải mái khiến nó trở nên thiết yếu. Nó giúp bạn như một tín đồ tạo ra một chuỗi công cụ vững chắc và nó giúp họ làm cho trải nghiệm tổng thể phù hợp một cách tự nhiên trong chồng lựa chọn của họ.

Như tôi đã nói trước đó, có rất nhiều sản phẩm có thể đóng vai trò là người quản lý gói nhị phân, một số chung chung hơn các sản phẩm khác trong mục đích sử dụng của chúng, cũng khác nhau về khả năng tiếp cận và giá cả.

Ý kiến ​​cá nhân của tôi là các kho lưu trữ nhị phân là một phần quan trọng của thiết lập devops được thiết kế tốt như kho lưu trữ mã nguồn hoặc tích hợp liên tục.


Merci cho câu trả lời thú vị này (cũng). Vì một số lý do, tất cả điều này khiến tôi nghĩ như "hm, vì vậy đây giống như những gì chúng ta thường gọi, trong môi trường máy tính lớn cũ, những thứ như thư viện tải có chứa các tệp thực thi (được sử dụng để chạy các vùng CICS / IMS / IDMS của bạn) ..." .
Pierre.Vriens

1
Một điều quan trọng cần thêm là sự gia tăng của các kho lưu trữ công cộng như Maven Central vv modulecounts.com - đây thường là nguồn cung cấp cho các dự án phần mềm ngày càng trở nên lắp ráp cho các thành phần này cộng với mã keo / frontend tùy chỉnh và tất nhiên là kinh doanh cụ thể của khách hàng logic VCL.
Peter

1
chưa bao giờ nghe nói về modulecounts.com, trang web hiện đã ngừng hoạt động, tôi sẽ kiểm tra nó sau.
Newtopian

1
Sự tương tự thú vị của tủ lạnh với tủ lạnh :)
Ravi Tiwari

6

Cách nó giúp tôi hiểu ban đầu, sự khác biệt giữa kho lưu trữ mã nguồn và kho lưu trữ nhị phân là nghĩ về nó như sau: * Github hoặc Bitbucket rất hữu ích để duy trì tất cả 'mã' * Jfrog Artifactory rất hữu ích để duy trì 'nhị phân' được xây dựng cho đến khi tôi cảm thấy thoải mái với những điều khoản này

Ngoài ra, tầm quan trọng của Artifactory có thể được hiểu liên quan đến triết lý của DevOps là "Xây dựng một lần, Triển khai luôn". Nó đi một chặng đường dài trong Tích hợp liên tục để xây dựng nhị phân của bạn một lần, đưa nó vào Artifactory và sau đó gọi nó từ đó để triển khai vào tất cả các môi trường khác nhau. Bằng cách đó, chúng tôi chắc chắn rằng mã hoạt động trong Dev là mã được đẩy lên Prod và sẽ hoạt động ở đó.


lời giải thích thú vị, merci!
Pierre.Vriens

5

Artifactory là một sản phẩm Quản lý kho lưu trữ nhị phân từ Jfrog .

Bạn đúng - là một trình quản lý kho lưu trữ nhị phân, nó thường được sử dụng để quản lý lưu trữ các được tạo và sử dụng trong quy trình phát triển phần mềm.

Từ trang web chính của Artifactory :

Là Trình quản lý kho lưu trữ nhân tạo phổ biến đầu tiên và duy nhất trên thị trường, JFrog Artifactory hỗ trợ đầy đủ các gói phần mềm được tạo bởi bất kỳ ngôn ngữ hoặc công nghệ nào.

...

... Artifactory cung cấp giải pháp chống đạn, tự động và chống đạn để theo dõi các vật phẩm từ phát triển đến sản xuất.

Các cách sử dụng mà bạn đề cập cho thấy nó có thể đủ phổ biến cho nhãn hiệu chung trong DevOps.


1
Merci Dan, bằng cách nào đó bạn đang xác nhận rằng Artifactory giống như sự kết hợp của các từ Artifac ts với Reposi tory . Câu hỏi bổ sung tôi tự hỏi là đây: những gì về tạo tác được sử dụng trong sản xuất, nhưng không phải là nhị phân, chẳng hạn như mã PHP, tệp CSS, tập lệnh bash, v.v?
Pierre.Vriens

1
Đối với mã ứng dụng, họ có các hệ thống phiên bản mã nguồn như cvs, svn, git, mercurial .. Và đối với mã cấu hình, hệ thống quản lý và phân phối cấu hình, như con rối, đầu bếp, ansible, muối ..
Peter

@ Pierre.Vriens Tôi đã không sử dụng để nghĩ về nó theo cách này, bằng cách nào đó "nhà máy" luôn xuất hiện trong đầu :) Nhưng tôi hoàn toàn thấy nó bây giờ. Cảm ơn!
Dan Cornilescu

@ J.Doe merci cho sự bổ sung đó và chỉ để mở rộng thêm nhận xét của bạn ... trên các máy tính lớn mà họ có các công cụ như "ChangeMan ZMF", "Endevor SCM", v.v. Những công cụ này được sử dụng cho tất cả các chức năng bạn đã đề cập (phiên bản, phân phối, vv, nhưng cũng cho quy trình công việc, bảo mật, vv liên quan đến tất cả những điều đó).
Pierre.Vriens

Vậy nếu chúng ta chỉ phát minh lại msinframes thì điều gì có thể xảy ra với họ?!
Peter

4

Tôi nghĩ rằng phức tạp hóa mọi thứ là những gì mọi người đang nhận được đánh giá cao cho ngày nay. Tôi sẽ cố gắng trả lời ngắn gọn câu hỏi này.

Kho lưu trữ nguồn được sử dụng để lưu trữ mã và các phiên bản của nó, trong khi artifactory được sử dụng để lưu trữ các chương trình thực thi là đầu ra của các mã đó [tệp nhị phân - dll, jar, war, Ear, msi, exe, v.v.]

Bây giờ lý do tại sao bạn muốn đặt chúng riêng biệt trong một repo khác với mã của bạn có thể là nhiều - ngay từ truy cập an toàn, đe dọa hack, kiểm tra mã độc hoặc chỉ đơn giản là có một con đường riêng cho các khách hàng chỉ cần nhị phân.

Công nghệ của SCM có thể tự tiết lộ việc tạo ra 2 loại người dùng (một loại có đặc quyền của nhà phát triển, những người sẽ có thể truy cập mã nguồn và một người khác là khách hàng có thể truy cập nhị phân). Nhưng nó đã không đi theo con đường đó! Vì vậy, bây giờ chúng ta có tạo tác.


2

Một cổ vật

Là một cái gì đó được sản xuất / tạo / chế tạo từ một quy trình cụ thể

Jar ra khỏi một bản dựng dự án Java.

Câu hỏi ra khỏi tâm trí của bạn

Xe ra khỏi nhà máy

Bài hát mới

Một kho lưu trữ

Là một vật chứa nơi mọi thứ vẫn tồn tại

Github cho một dự án Java.

StackExchange cho câu hỏi khó khăn của bạn

Trong lý thuyết, một Artifact - ory sẽ là một kho lưu trữ của tạo tác nơi chúng tồn tại và được quản lý trong suốt vòng đời của chúng.

Trong bối cảnh của DevOps, Artifactory là một sản phẩm quản lý các tạo tác nhị phân. Nó lưu trữ và quản lý các loại khác nhau (các gói Jar, Python và npm, v.v.) mà bạn tạo ra từ các bản dựng của mình và sử dụng lại vào thời gian biên dịch hoặc triển khai.


lời giải thích thú vị, merci!
Pierre.Vriens

ca tôi fait plaisir!
kẹo cao su
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.