Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Jenkins のつらみを軽減した話
Search
Junki Kaneko
February 21, 2019
Technology
5
2.9k
Jenkins のつらみを軽減した話
Junki Kaneko
February 21, 2019
Tweet
Share
More Decks by Junki Kaneko
See All by Junki Kaneko
DeNA TechCon 2021 - 自動テストのないプロダクトの開発効率化への道
theoden9014
0
220
Welcome_to_Linter
theoden9014
2
18k
Android SDK with Docker
theoden9014
0
5.8k
ReactNativeのテスト紹介
theoden9014
0
1.1k
Other Decks in Technology
See All in Technology
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
190
AI駆動開発を事業のコアに置く
tasukuonizawa
1
390
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
210
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
500
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
330
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
170
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
410
22nd ACRi Webinar - 1Finity Tamura-san's slide
nao_sumikawa
0
110
今日から始めるAmazon Bedrock AgentCore
har1101
4
420
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
190
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
Featured
See All Featured
From π to Pie charts
rasagy
0
130
Raft: Consensus for Rubyists
vanstee
141
7.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
Game over? The fight for quality and originality in the time of robots
wayneb77
1
120
Mobile First: as difficult as doing things right
swwweet
225
10k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
Transcript
のつらみを 軽減した話
自己紹介 金子淳貴 株式会社ディー・エヌ・エー - SWET.G - 言語 - Go, Ruby,
Python
アジェンダ • 背景 を使わざるを得ない理由 • のつらいところ • つらいところを改善した話し
背景 を使わざるを得ない理由
背景 社内全体の開発生産性向上と品質向上をミッションとしている横串組織 社内では事業や組織毎に を から作り直しているところが多く、 適切な構築運用を行われていないところが多かった 適切な構築運用を行うための調査、開発、啓蒙を で行った
を使わざるを得ない理由 • ゲームをビルドする場合、ゲームアセットを大量に作る為、 ビルドに非常に長い時間が掛かる ◦ 高いスペックのマシンが複数台必要 • 現状は を提供しているクラウド は速度面などに問題があるので移行でき
ていない
のつらみ
のつらみ • 構築運用に関して ◦ オンプレで構築する場合、構築と運用にコストが掛かる ▪ クラウドサービスを利用しないので当然発生する問題 ◦ 監視や可用性の確保を自分で行う必要がある ▪
で監視したり、 の設定ファイルを定期的にバックアップとったり 色々面 倒くさい ◦ の管理 ▪ 複数の クラスターを管理していると どこに何の が入っているのかわからなくなったり ◦ マシン毎の環境差異を考えなければならない ▪ 別の で成功していたジョブを別の で動かしたら失敗した • 利用に関して ◦ ジョブの管理 ▪ でポチポチしないといけない •
のつらみを改善
のつらみ • 構築運用に関して ◦ 構築と運用にコストがかかる ◦ の管理 ◦ によって環境差異が発生する ◦
監視や可用性 今回は触れません • 利用に関して ◦ ジョブの管理 構築自動化
構築自動化
の構成 Jenkins Master (Linux) 構成 Jenkins Slave (Windows) Jenkins Slave
(Mac) Jenkins Slave (Mac) ・ ・ ・
構築自動化 ノードにマシンパワーは必要ないので、 クラウド上のリソースを利用して に構築している。 • でクラウド上 のインスタンスを管理 • で のセットアップを自動化
構築自動化 はファイルへ指定フォーマットで記載してインストール可能としてお り、それを で実行している。 既存の にインストールされている 一覧を ファイルにダンプすることも可能。 https://github.com/Kuniwak/jenkins-plugin-fixator
構築自動化 を利用して のセットアップを自動化 ノード毎の設定値を で管理。 インストールする のバージョン一覧 インストールする のバージョン アカウント
証明書 プロファイルの情報
の検証基盤 • と を使って クリーンな環境へのインストールを試行可能にして を回している • や は で仮想化して
に変換 詳細は ある エンジニアの開発プロセス改善最前線 の発表資料をご覧ください
環境毎の差異 を利用し、 ノードにインストールされているアプリケーションを自動検知し、 ノードにラベルを自動で割り当て、 ジョブ実行時に利用する を指定できるようにしている https://github.com/jenkinsci/app-detector-plugin 自動割り当て
None
から標準機能の一つとして が入っている。 ユーザーライクな設定 ソースコードと一緒に管理することが可能 の一連の流れを一括管理可能
を ブロックでパイプラインを定義する 単純化された構文を利用する 自由度は低い 簡単に記述することができる を ブロックでパイプラインを定義する 構文で記述することが可能 自由度は高い 自由度が高すぎて可読性が低くなりがち
スレーブの指定。 ステージ毎、もしくはステージ共通で定義できる のワークフローを 毎に定義していく 具体的な動作をここに定義していく ワークフローの終了結果毎に条件分岐して 後処理のハンドリングを行える
環境変数を定義できる credentials()を使うと 認証情報を扱うことができる 実行時のパラメータ を定義できる ステージ内に定義し、 そのステージを実行する条件 を定義できる
処理等を 化し、 複数の で再利用することができる の標準機能。 https://jenkins.io/doc/book/pipeline/shared-libraries/
まとめ • 構築運用に関して ◦ 構築と運用にコストがかかる と で自動化 ◦ の管理 コードで管理できるように
◦ によって環境差異が発生する で自動化 ◦ 監視や可用性 今回は触れません • 利用に関して ◦ ジョブの管理 化してコードで管理
最後に も工夫すれば楽になる! けどクラウド で問題なければクラウド を使った方が良いと思います