【じぇんきんす】

Jenkins とは?

💡 CI/CDの「老舗」自動化サーバー
📌 このページのポイント
Jenkins CI/CDパイプライン コード プッシュ ビルド コンパイル テスト 自動テスト ステージング 検証環境 デプロイ 本番反映 Jenkins サーバー パイプライン定義 プラグイン ジョブスケジュール 自動実行 オープンソースのCI/CDツール。豊富なプラグインでカスタマイズ可能
Jenkinsのイメージ
ひよこ ひよこ

JenkinsとGitHub Actionsの違いは?

ペンギン先生 ペンギン先生

Jenkinsは自分でサーバーを立てて運用するセルフホスト型。GitHub ActionsGitHubが提供するマネージドサービス。Jenkinsは自由度が高いけど運用コストがかかる。GitHub Actionsはメンテ不要だけどGitHubに依存する。新規プロジェクトならGitHub Actionsが楽だけど、既存の大規模システムではJenkinsが現役だよ

ひよこ ひよこ

Jenkinsfileって何?

ペンギン先生 ペンギン先生

パイプラインの定義をGroovyベースのDSLで記述するファイルだよ。Declarative Pipeline(宣言的)とScripted Pipeline(スクリプト的)の2つの書き方がある。Declarative Pipelineの方が読みやすくて推奨されているね。Gitリポジトリに含めることでパイプラインもバージョン管理できるんだ

ひよこ ひよこ

Jenkinsの運用で大変なことは?

ペンギン先生 ペンギン先生

プラグイン互換性管理(アップデートで壊れることがある)、②Jenkinsサーバー自体のセキュリティアップデート、③ビルドエージェントのスケーリング、④Groovy DSLの学習コスト。特にプラグイン地獄と呼ばれるほど依存関係が複雑になりがちだから、使うプラグインは最小限にするのがコツだよ

ひよこ ひよこ

Jenkinsからの移行は簡単?

ペンギン先生 ペンギン先生

正直、大変なことが多いよ。JenkinsfileのGroovy DSLからGitHub ActionsYAMLへの書き換え、プラグインで実現していた機能の代替手段の検討が必要。段階的に移行する場合、GitHub ActionsからJenkinsのジョブをトリガーするブリッジパターンもあるよ。最近はJenkins→TektonKubernetes native CI/CD)への移行も増えているね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Jenkins」って出てきたら「歴史あるCI/CD自動化サーバー」と思えればだいたいOK!
📖 おまけ:英語の意味
「Jenkins」 = 人名(ジェンキンスさん)
💬 英国の執事をイメージしたマスコットキャラクターが有名。Hudsonというプロジェクトから分岐したよ
← 用語集にもどる