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.8k
Jenkins のつらみを軽減した話
Junki Kaneko
February 21, 2019
Tweet
Share
More Decks by Junki Kaneko
See All by Junki Kaneko
DeNA TechCon 2021 - 自動テストのないプロダクトの開発効率化への道
theoden9014
0
210
Welcome_to_Linter
theoden9014
2
18k
Android SDK with Docker
theoden9014
0
5.7k
ReactNativeのテスト紹介
theoden9014
0
1.1k
Other Decks in Technology
See All in Technology
不確実性に備える ABEMA の信頼性設計とオブザーバビリティ基盤
nagapad
1
780
AI時代の戦略的アーキテクチャ 〜Adaptable AI をアーキテクチャで実現する〜 / Enabling Adaptable AI Through Strategic Architecture
bitkey
PRO
9
3.5k
ZOZOTOWNカート決済リプレイス ── モジュラモノリスという過渡期戦略
zozotech
PRO
0
470
スタートアップの事業成長を支えるアーキテクチャとエンジニアリング
doragt
0
1.8k
なぜブラウザで帳票を生成したいのか どのようにブラウザで帳票を生成するのか
yagisanreports
0
140
ある編集者のこれまでとこれから —— 開発者コミュニティと歩んだ四半世紀
inao
5
3.4k
Capitole du Libre 2025 - Keynote - Cloud du Coeur
ju_hnny5
0
120
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
8
4.5k
持続可能なアクセシビリティ開発
azukiazusa1
6
260
現地速報!Microsoft Ignite 2025 M365 Copilotアップデートレポート
kasada
1
1.4k
国産クラウドを支える設計とチームの変遷 “技術・組織・ミッション”
kazeburo
3
2.8k
その意思決定、まだ続けるんですか? ~痛みを超えて未来を作る、AI時代の撤退とピボットの技術~
applism118
0
790
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Scaling GitHub
holman
463
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
We Have a Design System, Now What?
morganepeng
54
7.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
A better future with KSS
kneath
239
18k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
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/
まとめ • 構築運用に関して ◦ 構築と運用にコストがかかる と で自動化 ◦ の管理 コードで管理できるように
◦ によって環境差異が発生する で自動化 ◦ 監視や可用性 今回は触れません • 利用に関して ◦ ジョブの管理 化してコードで管理
最後に も工夫すれば楽になる! けどクラウド で問題なければクラウド を使った方が良いと思います