アーティファクト(またはアーティファクト)とは何ですか?


17

アーティファクトリポジトリとは」に関する質問には、そのリポジトリの部分に関する興味深い説明を含む回答が含まれています。そして、答え全体を読んで、DevOpsのコンテキストで「アーティファクト」が正確に何を意味するのかわかりません。

助言がありますか?

追伸:答えの1つから、おそらく人工物が私が疑問に思っている(混乱している)ことを理解しているようです...


2
英語SEの私たちの友人は、「アーティファクト」対「加工品」のビューを書かれている:english.stackexchange.com/questions/37903/...
7ochem

回答:


19

ウィキペディアには、この質問に対する非常に良い答えがあります。アーティファクトは派生オブジェクトとも呼ばれることもありますが、コードリポジトリに適用されるプロセスの成果物です。当初はビルドアーティファクトと呼ばれていましたが、ビルド以外のプロセスが適用されて作成されたため、最初の言葉は単純に削除されました。

主な違いは、プロセスが適用された環境を保持している限り、同じプロセスを使用してコードリポジトリからアーティファクトを再作成できることです。このプロセスには時間がかかり、環境を不完全に保存して、アーティファクトをまったく同じ方法で再作成できるため、アーティファクトリポジトリに格納するようになりました。

離れてからそれらを保存するコードリポジトリアーティファクトリポジトリは、 DevOpsチームのエンジニアが作るだろう設計上の決定です。一部の企業、つまりPerforceは、コードリポジトリをアーティファクトリポジトリとしても使用すること提案しています。各リポジトリには、アクセス監査オブジェクトサイズオブジェクトのタグ付け、およびスケーラビリティに関するさまざまな要件があるため、状況に応じて、2つの異なる製品を使用する方がよい場合がよくあります。たとえば、Gitリポジトリはすべての開発マシンに完全にコピーされるため、アーティファクトをコードリポジトリに格納すると、理由を超えてサイズが大きくなりますが、最近ではこれを緩和する方法があります。別の決定は、どのアーティファクトを保存するかです。再構築を高速化するために、中間のアーティファクトを個々のオブジェクトファイルとして保存する会社もあれば、単に最終的なバイナリのみを保存する会社もあります。すべてのアーティファクトに同じ値があるわけではありません。リリースビルドに起因するアーティファクトには、開発者ビルドに起因するアーティファクトとは異なる要件がある場合があります。

最も一般的なアーティファクトは、構成前処理コンパイルリンク自動テストアーカイブパッケージングメディアファイルの作成と処理データファイルの生成ドキュメント解析コード分​​析QAなどのプロセスの結果です。


gitサイズに関する文は完全に正確ではありません。gitlfsを使用すると、この問題を軽減できます。(ほんのわずかな精度)
テンシバイ

興味深いことに、それは私の思考(推測)をさらに確認します。2つのこと:パーフォースリンクの修正と追加の質問が必要です。「テストデータの追跡」(使用した入力と取得した出力)がそのようなアーティファクトと見なされる可能性があることに同意しますか?ところで、この回答は、「ソフトウェアエスクロー」の分野で使用されている「検証レベル」を思い出させてくれます(ご存知の場合)。ソフトウェアエスクローのトピックは、DevOpsのトピックと見なされるべきだと思うようになります... @Tensibaiもコメントしたいかもしれません。
Pierre.Vriens

1
テストデータの@ Pierre.Vriensは、テストデータがDBであり、アーティファクトの概念に適合しない場合、これは非常に困難です。エスクローについては、質問の焦点が十分に合っていて、私にとっては問題ないように思えるかどうか、私にはわかりません。
テンシバイ

@ Pierre.Vriens「テストデータ」という名前(単純な数からサンプルDBレコードを介した数百万のファイルまで)に当てはまるものが非常に多いため、文脈がなければ広すぎます。
テンシバイ

@ Pierre.Vriens(および通知でごめんなさいJiri)プロバイダーとの契約交渉は話題になっていないと思います。
テンシバイ

7

「アーティファクト」という言葉には2つの使用法があり、1つはソースコードをアーティファクトにし、2つ目はアーティファクトではないようにします。

具体的なものとしての「アーティファクト」と理想的なもの –この意味は、「人間によって作られたオブジェクト、通常は文化的または歴史的な興味の対象」という言葉の一般的な意味であり、専門用語ではありません。技術的なコンテキストの例を次に示します。ソフトウェアをデバッグするとき、ソフトウェアについて何かを学びます。この学習を回帰テストのようなソフトウェア成果物に変えることは、しばしば貴重な投資です。そうしないと、この学習は忘れられ、それを習得するための努力は無駄になります。この意味で、ソースコードはアーティファクトと見なされます。

レシピによって生成されるものとしての「アーティファクト」 –この意味は、難解なレシピを使用する錬金術師の一般的なイメージを使用して、しばしばアーティファクトと呼ばれる魔法のデバイスを生成します。錬金術師の比phorのレシピに対応するソースコードと、錬金術師の比phorのアーティファクトに対応するソースコードから派生したものを区別するために使用される技術用語です。たとえば、plop-fizzプログラムのアーティファクトの生成を自動化しただけで、ソースtarball、署名ファイル、DEB、およびRPMパッケージをすべて1つのコマンドでインスタンス化できるようになりました! この意味は、ソースコードから生成されるものを示すためにこの用語が使用されるため、ソースコードをアーティファクトとして認識しません。


3

答えは場所によって異なると思います。現在作業している場所では、開発に使用されるソースコードを除き、アーティファクトは他のエンティティによって消費されます。これはソース管理になります。

これには、製品またはその他の必要な製品のバイナリ、ライブラリ、オブジェクトファイル、メディアファイルやテストデータなどのテストアーティファクトが含まれます。

ソースコードはアーティファクトとは見なされません。「消費者」の定義に一致しない場合-サードパーティのライブラリ、テストまたはその他の目的で使用されるスクリプトコード(開発バージョン自体ではない)など。


うーん、興味深い、あなたは私が推測していたことを確認しています。私たちが話しているプラ​​ットフォームやOSが本当に重要ではないことに同意しますか。たとえば、メインフレームの場合でも、この用語を「使用する可能性のある」用語を使用することがあります。
Pierre.Vriens

バージョン管理からの実際のコードでさえ、消費された場合、アーティファクトと見なされる可能性があります。たとえば、Webサイトにそのまま展開されるテンプレートベースのHTMLページ。これらはデプロイメントアーティファクトであり、たとえば、実際のデプロイメントのために一時的な場所に他のビルドされたアーティファクトと一緒に明示的にコピーする必要がある場合があります。ただし、それらは常にソースコードリポジトリから取得できるため、アーティファクトリポジトリに保存することあまり意味がありません。
ダンコルニレスク

@PierreどのOSがアーティファクトであることと直交していることを確認すると、なぜそれが答えに含まれるべきなのかわかりませんが、他の多くのものも同様に無関係です。
Rsf

0

文化面のサイドノート。DevOpsでは、「アーティファクトリポジトリ」の概念を特定の状況と見なしますが、組織プロセスとはそれほど関連していないようです。

文化の問題:組織がITILを使用している場合、認定された人々は「作成したソフトウェア構成アイテムを配置するためのリポジトリなど、明確なメディアライブラリが必要です」と言うでしょう。したがって、適切に構造化されたITプロセスを気にする人は、どの(非管理)ツールがそれをサポートし、使用されているかを知りません。逆に、NexusまたはArtifactory言語の正当化が必要な場合、組織によっては説明するのが難しい場合があります。

さらに読む:https : //en.wikipedia.org/wiki/Definitive_Media_Library


1
こんにちは。サイトへようこそ。回答にさらに情報を追加してください。現在の状態では、リンクのみであり、フラグが立てられます:)
Dawny33

DevOpsも文化に関するものである場合、ITILへのリンクが重要だと思います。それは、ITILがより高い組織レベルでIT組織を支配する場合があるためです。この無知の対称性を明確にするための説明を追加しました。
ピーター

1
私はそれが本当にアーティファクトとは何かという問題に対処しているとは思わないが、少なくとも今は答えようとする正直な試みのように見える。
テンシバイ

@Tensibai(今)に同意し、以前のコメントを削除しました(もはや疑わしくありません)。この答えのすべてが理にかなっていないにも関わらず、私はまだどのように私は"すなわち、また、私の質問のタイトルにまとめてみました私の質問に対処し-answerこの「サイドノート」、それを得ることはありませんアーティファクト(または加工品である何)?」。新しい試みを歓迎します、OK?
Pierre.Vriens
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.