アーティファクト・ジャングル、開発との接点を探る

開発者である私たちはどのように設計し、コーディングし、デバッグし、結合するかにほとんどの時間を費やしています。思考はソースファイルに向けられ、バージョンコントロールシステムを構成するリポジトリやブランチに注目します。それが私たちの仕事であり、私たちの世界なのです。

しかし、DevOpsのプロフェッショナルになるためには、コードを実行する環境に持っていくために何が起こるかを考えなければなりません。DevOpsとはアプリケーションの開発から配布までを行うことです。

DevOpsを成功させるためには、ソフトウェアの構成要素であるアーティファクトに焦点を当てなければなりません。

配布されるアプリケーションはバイナリ、依存関係、イメージなどのアーティファクトで構成されており、それらは互いに接続されています。納品可能なソフトウェアアプリケーションを作るために必要なアーティファクトの多様なエコシステムを理解することは本番環境へのリリースを加速するための第一歩です。

アーティファクトのエコシステム

自然界では全ての生物と物理的環境が相互に影響し合って生態系を構成しています。それぞれがバランスを保ちながら他方を支えています。

継続的インテグレーション・パイプラインにおけるアーティファクトのエコシステムも、ほぼ同じです。アーティファクトは他のアーティファクトに依存し、あるプロセスで作られたアーティファクトは別のプロセス利用されます。

The Artifact Ecosystem

アーティファクトのエコシステム

パッケージ

アプリケーションはMaven、npm、PyPi、Conanなどのパッケージ管理技術によって配布されるオープンソースやプロプライエタリの依存関係に依存しています。これらのコンポーネントは直接依存と他動的依存間でアプリケーションコードの大部分を構成します。

ビルド

デプロイ可能なアプリケーションはソースコード、依存関係、サポートファイルからビルドされ、WAR、ZIPまたはその他のアーカイブ形式になります。Artifactoryは「ビルド情報」メタデータによってビルドを記録し、すべてのコンポーネントを元に戻すことができます。

コンテナ

アプリケーションをDockerやOCIイメージとしてパッケージ化してコンテナとして使用したり、Artifactoryのプライベートレジストリに保存したりすることができます。

設定ファイル

アプリケーションにはKubernetesでオーケストレーションを行うためのHelmのような設定ファイルやChefやPuppetのようなInfrastructure-as-Codeファイルが必要になります。Artifactoryはこれらのリポジトリタイプをネイティブにサポートしているため、これらの重要なファイルを信頼できる唯一の情報源に保管することができます。

リリース

最新のアプリケーションは通常、相互に動作するマイクロサービスで構成されており、バージョン管理された一式を配布する必要があります。JFrog Distributionはアプリケーションのコンポーネントを署名付きのリリースバンドルにまとめ、トレースしているため、エッジサーバーに安全に配布することができます。

Artifactoryの信頼できる唯一の情報源

Artifactoryは全てのアーティファクトのためのユニバーサルリポジトリマネージャであり、多様なアーティファクトエコシステムのための信頼できる唯一の情報源を提供します。

約30種類のパッケージタイプをネイティブにサポート(Genericリポジトリを含む)しており、開発組織のアーティファクトエコシステム全体を保存、整理、追跡するための唯一の情報源となります。開発者は日常的に使用しているパッケージ管理サービスを利用し、パッケージやイメージをArtifactoryリポジトリに保存・取得することができます。

Artifactory Package Types

Artifactoryリポジトリタイプ

Artifactoryのユニバーサルなバイナリ管理は組織内のすべての開発者に提供されます。Java、JavaScript、Python、Go、C++、C#、Swift、Rustなどでプログラムを開発しているかどうかにかかわらず、Artifactoryはすべてのパッケージとビルドの中心となります。

メタデータ

Artifactoryはパッケージタイプや「ビルド情報」と呼ばれるメタデータを保持しているため、アーティファクトがどこから来たのか、どのように作成されたのか、どこに配置されたのかを知ることができます。この包括的なメタデータがあれば全てのアーティファクトがどこから来たのか、またどこで使用されたのかを追跡できます。

リモートリポジトリのプロキシ

Artifactoryのリモートリポジトリは唯一の情報源にリモートリソースの依存関係をキャッシュするをローカルプロキシです。開発者はリモートリソースに直接アクセスすることなく、Artifactoryの依存関係を不変的なコピーをオンデマンドで使用してビルドします。

これにより、物理的な距離や不安定なサービス接続に起因するネットワークの遅延を解消し、ビルドを可能な限り高速に実行することができます。また、プロキシは接続の中断やリモートサイト自体が利用できなくなった場合の問題を防ぎます。

開発からDevOpsへ

アーティファクトのエコシステムを理解し、継続的統合パイプラインでのフローを管理する方法を理解することは、開発からDevOpsへの移行の第一歩です。

すべてのアーティファクトがArtifactoryの唯一の情報源によって管理されていれば、企業全体が同じSDLCワークフローとベストプラクティスに沿って調整することができ、品質を保証し、リリース速度を加速することができます。これがArtifactoryがJFrog DevOps Platformを強化する完全に自動化されたソフトウェア配布パイプラインの中心的なコンポーネントである理由です。

可能性を追求するため、JFrogクラウドの無料アカウントでArtifactoryを始めましょう。