🏭

【小学生でもわかる】JFrogとは?導入から設定例までまるっと解説

に公開

「小学生でもわかる」シリーズ、今回はJFrogについてです!

JFrogはDevOpsの世界でよく使われる便利なサービスですが、難しそうに感じるかもしれません。
そこで今回は、小学生でもわかるようにたとえ話を交えて、JFrogの概要から導入、設定までをまるっと解説します!


JFrogってなに?

JFrogは、ソフトウェアを作って、保存して、届けるための仕組みを提供してくれるサービスです。


たとえば、こんな感じ:JFrogは“お弁当工場”!

開発チームは「お弁当を作る料理人たち」

  • 料理人(=プログラマー)がいろんな料理(=プログラム)を作ります。
  • 料理は、おかずの箱(=ライブラリやツール)をたくさん組み合わせて作ります。

それを冷凍保存する「大きな冷蔵庫」が必要

  • 作ったお弁当をすぐ食べるわけじゃなくて、冷蔵庫(=JFrog Artifactory)にしまっておきます。
  • 冷蔵庫には、どの料理がいつ作られたか、誰が作ったか、ラベルも貼って保管されます。

お弁当を「工場からお店(=本番環境)」に届ける

  • 毎日、決まった時間に、きちんと検査されたお弁当(=ちゃんと動くプログラム)だけをお店に届けます。
  • これを パイプライン(=JFrog Pipelines)というベルトコンベアみたいな仕組みで自動で行います。

つまり、JFrogって?

たとえ 実際のJFrogでの意味
お弁当 ソフトウェアやライブラリ
冷蔵庫 Artifactory(保存場所)
ラベル バージョン番号やメタデータ
ベルトコンベア Pipelines(自動化処理)
お店 実際に動かす場所(本番環境)

JFrogはいつ動作するの?

お弁当工場(JFrog)は、次のようなときに働きます:

  1. 開発者が新しいプログラムを作ったとき
  2. お弁当の中身を検査(テスト)するとき
  3. 成果物を保存するとき
  4. 本番環境にリリースするとき

実際の組み合わせ例

たとえば、こんな流れで動きます:

開発者がGitHubにコードをPush!
    ↓
GitHub Actionsが動いてプログラムをビルド!
    ↓
できた成果物をJFrogにアップロード(Artifactory)
    ↓
自動でセキュリティチェック(Xray)
    ↓
テストに合格したら本番環境へデプロイ!

どうやって導入するの?

JFrogアカウントを作る

② Artifactoryリポジトリを作る

  • Maven や npm などの形式に合わせたリポジトリを作成します

③ APIキー or 認証情報を取得

  • アップロードのためのユーザー名とパスワード、または APIキーを取得

④ GitHubなどのCIと連携

  • GitHub Actions などにシークレット変数を設定して連携します

どうやって実装するの?

GitHubにシークレット登録

名前 内容
JFROG_URL 例:https://yourinstance.jfrog.io/artifactory
JFROG_USERNAME Artifactoryのユーザー名
JFROG_PASSWORD パスワードまたはAPIキー

GitHub Actions のYAML設定例(Maven)

name: Build and Upload to JFrog

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: リポジトリをチェックアウト
        uses: actions/checkout@v3

      - name: Java をセットアップ
        uses: actions/setup-java@v3
        with:
          distribution: 'temurin'
          java-version: '17'

      - name: Maven ビルドと Artifactory へデプロイ
        env:
          JFROG_URL: ${{ secrets.JFROG_URL }}
          JFROG_USERNAME: ${{ secrets.JFROG_USERNAME }}
          JFROG_PASSWORD: ${{ secrets.JFROG_PASSWORD }}
        run: |
          echo "<settings>
            <servers>
              <server>
                <id>jfrog</id>
                <username>${JFROG_USERNAME}</username>
                <password>${JFROG_PASSWORD}</password>
              </server>
            </servers>
          </settings>" > ~/.m2/settings.xml

          mvn deploy -DaltDeploymentRepository=jfrog::default::${JFROG_URL}/libs-release-local

pom.xml の設定

<distributionManagement>
  <repository>
    <id>jfrog</id>
    <name>JFrog Artifactory</name>
    <url>https://yourinstance.jfrog.io/artifactory/libs-release-local</url>
  </repository>
</distributionManagement>

おまけ:もっと使いこなしたい人へ

  • JFrog Xrayでセキュリティスキャン
  • 古いアーティファクトの自動削除
  • Dockerやnpmのリポジトリ管理も可能
  • 複数環境へのデプロイも簡単

🎉 まとめ

疑問 たとえ 実際の意味
いつ動く? お弁当ができたとき・運ぶとき コード変更、ビルド、テスト、リリース時
どう導入する? 工場を建てて準備する サーバー/クラウドにインストール&設定
どう実装する? 料理して冷蔵庫に入れて出荷 ツール連携してCI/CDに組み込む

最後に

JFrogはちょっととっつきにくいサービスに見えるかもしれませんが、たとえ話で考えるとずっと理解しやすくなります。この記事が「お弁当工場」みたいに、あなたの開発を自動化・効率化するヒントになれば嬉しいです!

Discussion