アーティファクトとは何ですか?


54

アーティファクト」に言及する非常に多くの質問回答があります

それが何らかの形で関連していれば、私は驚かないでしょう。

私の質問

  • (DevOpsのコンテキストで)実際に「人工物」とは何ですか?
  • なぜアーティファクトが使用されるのですか?

かなり基本的な質問であると思われるものに対する、かなり興味深い回答がいくつかあります。おもしろいことに、それらはすべて、古き良きメインフレーム環境(私のDevOpsのルーツは...そして、非常に多くのDevOpsコンセプトが起源であると思われる場所)で同様のコンセプトを思い出させます。
Pierre.Vriens

回答:


67

Artifactoryは、バイナリリポジトリマネージャとして機能するJFrogの製品です。それは、多くの人がFrigidaireブランドであるかどうかに関係なくFrigidaireまたは冷蔵庫を使用して冷蔵庫を示すのと同じように、より一般的なバイナリリポジトリの同義語として「人工物」を使用することが非常に多いと言いました。

バイナリリポジトリは、ソースコードリポジトリの自然な拡張であり、ビルドプロセスの結果(多くの場合、アーティファクトと呼ばれる)を保存します。ほとんどの場合、バイナリリポジトリを直接使用するのではなく、選択したテクノロジに付属するパッケージマネージャを使用します。

ほとんどの場合、これらは後で完全な製品にアセンブルできる個々のアプリケーションコンポーネントを格納します-したがって、ビルドを小さなチャンクに分割し、リソースをより効率的に使用し、ビルド時間を短縮し、バイナリデバッグデータベースの追跡を改善します。

以下は、バイナリリポジトリを使用して管理できる最も人気のあるパッケージマネージャの一部です。

  • Java:jar、ear、warなどにはMavenと公式MavenCentralがあります。Mavenバイナリリポジトリフォーマット(ivygradleなど)も使用する他の多くのパッケージマネージャーがあります。
  • .NET:nuget .NETコンポーネント(DLLとEXE)のためしかしようなシステムthorugh Windowsで分配機構としても使用することができるChocolatey。Powershellの新しいバージョンでは、これを活用して、Powershellギャラリーを通じてPowershellモジュールを配布できます。Powershellギャラリーでは、バイナリリポジトリとNuget形式のリポジトリを使用してローカル配布を構築できます。また、Windows配布管理に関心がある場合は、OneGetを確認してください。
  • JavaScript では、最も人気のあるnpmがあり、nodejsが必要です
  • pythonには:pipと公式パッケージインデックスpypiがあり、形式をサポートするバイナリリポジトリを介してローカルインスタンスを作成することもできます。

このリストは完全とはほど遠いものであり、何がそこにあるのかを示しているだけです。

バイナリリポジトリを使用すると、これらすべてを1つの屋根の下でホストできるため、チームでの管理がはるかに簡単になります。バイナリパッケージ管理のメリットを享受するために、非常に大きなチームを必要としないことに注意してください。初期投資はそれほど大きくなく、すぐにメリットが感じられます。特に、ますます多くのプラットフォーム、フレームワーク、および言語が、この依存関係管理を直接統合しています。しかし、私が見つけた彼らの最大の利点は、プログラマーが自然で快適な環境を作り、それを必須にすることでした。これは、devopsが強固なツールチェーンを作成するのに役立ち、選択したスタックに全体的なエクスペリエンスを自然に適合させるのに役立ちます。

先ほど言ったように、バイナリパッケージマネージャーとして機能できる製品たくさんあります。ターゲットの使用法は他のものより一般的で、アクセシビリティと価格も大きく異なります。

私の意見では、バイナリリポジトリは、ソースコードリポジトリや継続的統合と同様に、適切に設計されたdevopsセットアップの重要な部分です。


この興味深い答えのMerci(も)。何らかの理由で、これはすべて「HM、だからこれは、古き良きメインフレーム環境で、実行可能ファイル(CICS / IMS / IDMSリージョンを実行するために使用される)を含むロードライブラリのようなものと通常呼ばれるもののように思えます...」 。
Pierre.Vriens

1
追加する1つの重要なことは、Maven Centralなどのパブリックリポジトリの増加です。modulecounts.com-これらは、多くの場合、これらのコンポーネントのカスタムグルーとカスタムグルー/フロントエンドコード、そしてもちろん顧客固有のビジネスになるソフトウェアプロジェクトの供給元です論理。
ピーター

1
modulecounts.comのことは聞いたことがありませんが、サイトは現在ダウンしています。後で確認します。
ニュートピア

1
冷蔵庫に冷蔵庫の興味深い類推:)
ラヴィTiwariさん

7

最初に理解するのに役立ちましたが、ソースコードリポジトリとバイナリリポジトリの違いは次のように考えることでした:* GithubまたはBitbucketはすべての「コード」を維持するのに便利ですこれらの条件に慣れるまで!

また、Artifactoryの重要性は、DevOpsの哲学「1回ビルドして常にデプロイする」との関係で理解できます。継続的インテグレーションでは、バイナリを1回構築し、Artifactoryに入れてからそこから呼び出して、すべての異なる環境に展開することは非常に役立ちます。そうすれば、Devで動作するコードがProdにプッシュされ、そこで動作することを確信しています。


興味深い説明、メルシ!
Pierre.Vriens

6

ArtifactoryはJfrogのBinary Repository Manager製品です

バイナリリポジトリマネージャーであるため、通常はソフトウェア開発プロセスで生成および使用されるストレージを管理するために使用されます。

Artifactoryの主なWebページ

JFrog Artifactoryは、市場で最初で唯一のユニバーサルアーティファクトリポジトリマネージャーとして、あらゆる言語または技術によって作成されたソフトウェアパッケージを完全にサポートしています。

...

... Artifactoryは、開発から本番までの成果物を追跡するためのエンドツーエンドの自動化された防弾ソリューションを提供します。

あなたが言及した使用法は、DevOpsの一般的な商標として十分な人気があるかもしれないことを示唆しています。


1
メルシーダンは、あなたは何とかArtifactoryは、単語の組み合わせのようなものであることを確認しているArtifacの ReposiとTS トーリー。私が疑問に思う追加の質問は、本番環境で使用されているが、PHPコード、CSSファイル、bashスクリプトなどのバイナリではないアーティファクトについてはどうでしょうか?
Pierre.Vriens

1
アプリケーションコードのために、彼らは水銀CVS、SVN、Gitは、同様のシステムをバージョン管理、ソースコードを持っている...そして、人形、シェフ、ansible、塩のような構成コード、構成管理や流通のシステム..のための
ピーター・

@ Pierre.Vriens私はそれをこのように考えるのに使用しませんでした、どういうわけか「工場」が常に最初に頭に浮かびました:)しかし、私は完全にそれを今見ます。ありがとう!
ダンコルニレスク

@ J.Doe merciを追加し、コメントをさらに拡張するために...メインフレームには「ChangeMan ZMF」、「Endevor SCM」などのツールがあります。これらのツールは、言及したすべての機能(バージョン管理、配布などだけでなく、それらすべてに関連するワークフロー、セキュリティなどについても)。
Pierre.Vriens

それで、msinframesを再発明するだけなら、何が間違っているのでしょうか?!
ピーター

4

物事を複雑にすることは、今日誰もが高く評価されているものだと思います。手短にこの質問に答えようとします。

ソースリポジトリはコードとそのバージョンを保存するために使用され、アーティファクトはこれらのコードの出力である実行可能プログラムを保存するために使用されます[バイナリ-dll、jar、war、ear、msi、exeファイルなど]

コードとは異なるリポジトリにそれらを別々に配置する理由は、安全なアクセス、ハッキングの脅威、悪意のあるコードのチェックインから、または単に必要なクライアントのために別の道を確保することから、多くの可能性がありますバイナリ。

SCMの技術は、2種類のユーザー(ソースコードにアクセスできる開発者特権を持つユーザーと、バイナリにアクセスするだけのクライアントとしてのユーザー)を作成することに潜んでいる可能性があります。しかし、それはそのルートを取りませんでした!そのため、今ではアーティファクトがあります。


2

アーティファクト

特定のプロセスから生成/生成/作成されたものです

Javaプロジェクトビルドの瓶。

あなたの心からの質問

工場から車

新しい歌

リポジトリ

物事が永続化されるレセプタクルです

JavaプロジェクトのGithub。

困難な質問のためのStackExchange

理論上、アーティファクト - オリは、ライフサイクル全体にわたって永続化および管理されるアーティファクトのリポジトリになります。

DevOpsのコンテキストでは、Artifactoryはバイナリアーティファクトを管理する製品です。ビルドから生成し、コンパイルまたはデプロイ時に再利用するさまざまなタイプ(Jar、Python、npmパッケージなど)を保存および管理します。


興味深い説明、メルシ!
Pierre.Vriens

ca me fait plaisir!
グモール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.