Submit Search
Upload
アメーバピグとJenkinsと私
•
26 likes
•
14,760 views
Takashi Maruyama
Follow
第6回 テックヒルズ 『Let’s study Jenkins~さまざまなケーススタディ~』 発表資料
Read less
Read more
Report
Share
Report
Share
1 of 51
Recommended
Interop2015-c4-3-モバイルゲームのチート対策
Interop2015-c4-3-モバイルゲームのチート対策
Osamu Kurokochi
経営目線を持つ人事になる方法20140718
経営目線を持つ人事になる方法20140718
Tetsuhito Soyama
サイバーエージェント流人材マネジメント
サイバーエージェント流人材マネジメント
Tetsuhito Soyama
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
goccy
【第6回テックヒルズ】検索基盤開発のための結合テスト環境の自動化
【第6回テックヒルズ】検索基盤開発のための結合テスト環境の自動化
Kotaro Ogino
Croozにおけるjenkins活用事例20130618
Croozにおけるjenkins活用事例20130618
Katsuya Ohnishi
Building a keyboard from scratch
Building a keyboard from scratch
Jesse Vincent
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料
Kohei Morino
Recommended
Interop2015-c4-3-モバイルゲームのチート対策
Interop2015-c4-3-モバイルゲームのチート対策
Osamu Kurokochi
経営目線を持つ人事になる方法20140718
経営目線を持つ人事になる方法20140718
Tetsuhito Soyama
サイバーエージェント流人材マネジメント
サイバーエージェント流人材マネジメント
Tetsuhito Soyama
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
goccy
【第6回テックヒルズ】検索基盤開発のための結合テスト環境の自動化
【第6回テックヒルズ】検索基盤開発のための結合テスト環境の自動化
Kotaro Ogino
Croozにおけるjenkins活用事例20130618
Croozにおけるjenkins活用事例20130618
Katsuya Ohnishi
Building a keyboard from scratch
Building a keyboard from scratch
Jesse Vincent
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料
Kohei Morino
Inside png
Inside png
flare phoenix
海外向けサービスの苦労話
海外向けサービスの苦労話
Masakazu Matsushita
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
Yuuki Namikawa
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
Yusaku Watanabe
松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入
matsumoto_katsuhiko
OpenCVによる顔認識システムの開発
OpenCVによる顔認識システムの開発
Takahiko Teramoto
iOS App performance tuning with Instruments
iOS App performance tuning with Instruments
gc-hiramatsu
Ca勉強会・ldについて
Ca勉強会・ldについて
Masahiro Horikoshi
kontagent紹介資料
kontagent紹介資料
Eiji Hachiya
From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2
Naoki Sega
佐野裕章 Virident 社製半導体ストレージ flash max の検証
佐野裕章 Virident 社製半導体ストレージ flash max の検証
Hiroaki Sano
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
matsumoto_katsuhiko
研究開発レポート抜粋
研究開発レポート抜粋
Satoshi Udagawa
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
Kazuhiro Kosaka
アメブロFaceの顔認識システム
アメブロFaceの顔認識システム
Takahiko Teramoto
Ameba × Akamai技術交流会
Ameba × Akamai技術交流会
Satoshi Udagawa
Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測
JAVA DM
Mongo DBを半年運用してみた
Mongo DBを半年運用してみた
Masakazu Matsushita
Global Netflix Platform
Global Netflix Platform
Adrian Cockcroft
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
Daisuke Maki
20121010e xplainers営業資料
20121010e xplainers営業資料
Akiko Miyao
【Unite Tokyo 2018】なんとっ!ユナイト!ミリシタをささえる『AKANE大作戦』とは?
【Unite Tokyo 2018】なんとっ!ユナイト!ミリシタをささえる『AKANE大作戦』とは?
UnityTechnologiesJapan002
More Related Content
Viewers also liked
Inside png
Inside png
flare phoenix
海外向けサービスの苦労話
海外向けサービスの苦労話
Masakazu Matsushita
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
Yuuki Namikawa
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
Yusaku Watanabe
松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入
matsumoto_katsuhiko
OpenCVによる顔認識システムの開発
OpenCVによる顔認識システムの開発
Takahiko Teramoto
iOS App performance tuning with Instruments
iOS App performance tuning with Instruments
gc-hiramatsu
Ca勉強会・ldについて
Ca勉強会・ldについて
Masahiro Horikoshi
kontagent紹介資料
kontagent紹介資料
Eiji Hachiya
From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2
Naoki Sega
佐野裕章 Virident 社製半導体ストレージ flash max の検証
佐野裕章 Virident 社製半導体ストレージ flash max の検証
Hiroaki Sano
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
matsumoto_katsuhiko
研究開発レポート抜粋
研究開発レポート抜粋
Satoshi Udagawa
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
Kazuhiro Kosaka
アメブロFaceの顔認識システム
アメブロFaceの顔認識システム
Takahiko Teramoto
Ameba × Akamai技術交流会
Ameba × Akamai技術交流会
Satoshi Udagawa
Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測
JAVA DM
Mongo DBを半年運用してみた
Mongo DBを半年運用してみた
Masakazu Matsushita
Global Netflix Platform
Global Netflix Platform
Adrian Cockcroft
Viewers also liked
(19)
Inside png
Inside png
海外向けサービスの苦労話
海外向けサービスの苦労話
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入
OpenCVによる顔認識システムの開発
OpenCVによる顔認識システムの開発
iOS App performance tuning with Instruments
iOS App performance tuning with Instruments
Ca勉強会・ldについて
Ca勉強会・ldについて
kontagent紹介資料
kontagent紹介資料
From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2
佐野裕章 Virident 社製半導体ストレージ flash max の検証
佐野裕章 Virident 社製半導体ストレージ flash max の検証
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
研究開発レポート抜粋
研究開発レポート抜粋
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
SWFバージョン4においての テキスト形式による コンパイル結果の違い及び JavaScriptでの その描画方法に関する考察
アメブロFaceの顔認識システム
アメブロFaceの顔認識システム
Ameba × Akamai技術交流会
Ameba × Akamai技術交流会
Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測
Mongo DBを半年運用してみた
Mongo DBを半年運用してみた
Global Netflix Platform
Global Netflix Platform
Similar to アメーバピグとJenkinsと私
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
Daisuke Maki
20121010e xplainers営業資料
20121010e xplainers営業資料
Akiko Miyao
【Unite Tokyo 2018】なんとっ!ユナイト!ミリシタをささえる『AKANE大作戦』とは?
【Unite Tokyo 2018】なんとっ!ユナイト!ミリシタをささえる『AKANE大作戦』とは?
UnityTechnologiesJapan002
人類にとって 個性的な商品や魅力的なクリエイターと出会うならSUZURI! グッズを売るならSUZURI一択! という未来を目指して
人類にとって 個性的な商品や魅力的なクリエイターと出会うならSUZURI! グッズを売るならSUZURI一択! という未来を目指して
Hiroshi Ataka
どうする!?これからのCto c(仮)
どうする!?これからのCto c(仮)
Junya Tanaka
15分で解説 concrete5って、どんなCMS?(午後のCMS茶話会)
15分で解説 concrete5って、どんなCMS?(午後のCMS茶話会)
株式会社ND&I しかたこうき
20171114 inevitable ai対談
20171114 inevitable ai対談
Hideki Ojima
グローバルSEOキャンペーン運用の課題と対応
グローバルSEOキャンペーン運用の課題と対応
DemandSphere
海外展開のためのSEO/Webマーケティングセミナー_清水パート
海外展開のためのSEO/Webマーケティングセミナー_清水パート
DemandSphere
エンジニアが広報にしてもらってうれしかったこと #PRLT
エンジニアが広報にしてもらってうれしかったこと #PRLT
akira6592
第2回 make network party ライトニングトーク enmono
第2回 make network party ライトニングトーク enmono
shigeu utsunomiya
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
Masayuki Sekihara
わかりにくいものを”わかりやすく”動画制作サービス
わかりにくいものを”わかりやすく”動画制作サービス
DHRgroup
DeNA SOMPO Mobility会社紹介資料_20210423
DeNA SOMPO Mobility会社紹介資料_20210423
DeNA SOMPO Mobility Recruiting
ソーシャルメディア分布図2010を作ってみた
ソーシャルメディア分布図2010を作ってみた
Taiuke Nakamura
【概要】フロム・エージャパン.pdf
【概要】フロム・エージャパン.pdf
ssuserf233ca1
DeNA SOMPO Mobility会社紹介資料_20210401
DeNA SOMPO Mobility会社紹介資料_20210401
DeNA SOMPO Mobility Recruiting
Agile UX Research
Agile UX Research
Miho Matsuzono
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
Masakazu Matsushita
シリコンバレーTech企業でのプロダクトマネージャー業務とは? - [ITビジネスセミナー] 現役プロダクトマネージャーが語る、日本企業におけるプロダクト...
シリコンバレーTech企業でのプロダクトマネージャー業務とは? - [ITビジネスセミナー] 現役プロダクトマネージャーが語る、日本企業におけるプロダクト...
POStudy
Similar to アメーバピグとJenkinsと私
(20)
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
未踏カンファレンス2012「メルコグループと未踏ソフト」(スポンサーPR枠)<字幕付き>
20121010e xplainers営業資料
20121010e xplainers営業資料
【Unite Tokyo 2018】なんとっ!ユナイト!ミリシタをささえる『AKANE大作戦』とは?
【Unite Tokyo 2018】なんとっ!ユナイト!ミリシタをささえる『AKANE大作戦』とは?
人類にとって 個性的な商品や魅力的なクリエイターと出会うならSUZURI! グッズを売るならSUZURI一択! という未来を目指して
人類にとって 個性的な商品や魅力的なクリエイターと出会うならSUZURI! グッズを売るならSUZURI一択! という未来を目指して
どうする!?これからのCto c(仮)
どうする!?これからのCto c(仮)
15分で解説 concrete5って、どんなCMS?(午後のCMS茶話会)
15分で解説 concrete5って、どんなCMS?(午後のCMS茶話会)
20171114 inevitable ai対談
20171114 inevitable ai対談
グローバルSEOキャンペーン運用の課題と対応
グローバルSEOキャンペーン運用の課題と対応
海外展開のためのSEO/Webマーケティングセミナー_清水パート
海外展開のためのSEO/Webマーケティングセミナー_清水パート
エンジニアが広報にしてもらってうれしかったこと #PRLT
エンジニアが広報にしてもらってうれしかったこと #PRLT
第2回 make network party ライトニングトーク enmono
第2回 make network party ライトニングトーク enmono
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
Fiori 使わないと未来はない、SAPGUI撲滅キャンペーン
わかりにくいものを”わかりやすく”動画制作サービス
わかりにくいものを”わかりやすく”動画制作サービス
DeNA SOMPO Mobility会社紹介資料_20210423
DeNA SOMPO Mobility会社紹介資料_20210423
ソーシャルメディア分布図2010を作ってみた
ソーシャルメディア分布図2010を作ってみた
【概要】フロム・エージャパン.pdf
【概要】フロム・エージャパン.pdf
DeNA SOMPO Mobility会社紹介資料_20210401
DeNA SOMPO Mobility会社紹介資料_20210401
Agile UX Research
Agile UX Research
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
全世界6,500万DL突破!ヒットゲームを作り上げたチームの道のり
シリコンバレーTech企業でのプロダクトマネージャー業務とは? - [ITビジネスセミナー] 現役プロダクトマネージャーが語る、日本企業におけるプロダクト...
シリコンバレーTech企業でのプロダクトマネージャー業務とは? - [ITビジネスセミナー] 現役プロダクトマネージャーが語る、日本企業におけるプロダクト...
アメーバピグとJenkinsと私
1.
アメーバピグとJenkinsと私 株式会社サイバーエージェント 丸山 隆司
2.
自己紹介 名前: 丸山 隆司 所属: 株式会社サイバーエージェント アメーバ事業本部 担当: アメーバピグの開発・運用 (2011年5月∼)
3.
宣伝 PCピグも頑張ってますよ
4.
宣伝 日本最大級のアバターコミュニティサービス
5.
弊社イメージ? 何かと誤解されやすいです>< by NAVERまとめ
h,p://matome.naver.jp/odai/2137085316482128101
6.
世間一般の弊社イメージ by 日本経済新聞
h,p://www.nikkei.com/content/pic/20130227/96958A9C93819499E0E5E2E2948DE0E5E2E0E0E2E3E1E2E2E2E2E2E2-‐DSXZZO5220017027022013000000-‐PB1-‐27.jpg
7.
本日話すこと 運用開始してそれなりに期間がたった ピグでの運用効率化の取り組み 弊社イメージに反して大変泥臭い内容でお送りします
8.
アジェンダ アメーバピグでのJenkinsケーススタディ • コードの品質管理 • バッチ制御 •
オペレーションの自動化
9.
-バグの発生を抑える- Case 1:コードの品質管理
10.
理想的なCIの形 1) Compile 2) Unit
testing 3) Inspection 4) Reporting 5) Deploy trunkbranch IRC CI server developer VCS
11.
Piggの現実(2011年当時) trunkbranch developer review • CI環境なし • デプロイは手動 •
品質担保はレビューのみ • テストコード(ほぼ)無し – あってもほったらかし – 新卒「テストしてないんスか?」 subversion
12.
13.
まずは入れてみた 1) Test compile 2)
Check Style 3) Findbugs 4) Reporting trunk Jenkins subversion
14.
15.
予想はしてましたが… • 全PJ合わせて数千個のFindbugs警告 – うち約160個はけっこう深刻 • 放っておくと日々増える どこから手を付けるの?\(^o^)/
16.
理想に近づけるための戦略 • CI環境の整備 • 危ないバグはみんなで修正 •
その警告、本当に必要?
17.
理想に近づけるための戦略 • CI環境の整備 • 危ないバグはみんなで修正 •
その警告、本当に必要?
18.
CI環境の整備 1) Compile 2) Inspection 3)
Reporting trunkbranch IRC Jenkins developer Hook script feedback commit
19.
理想に近づけるための戦略 • CI環境の整備 • 危ないバグはみんなで修正 •
その警告、本当に必要?
20.
by “新・学力への挑戦” h,p://image.space.rakuten.co.jp/lg01/94/0000136394/19/img4031544ckq36lc.jpeg
21.
危ないバグはみんなで修正 • 面倒ごとはみんなで倒す – ある程度は強制力をはたらかす
22.
理想に近づけるための戦略 • CI環境の整備 • 危ないバグはみんなで修正 •
その警告、本当に必要?
23.
その警告、本当に必要? • 一部のコードは解析対象から除外 • テストコード •
DTO(getter/setterのみ)
24.
その警告、本当に必要? • 警告そのものを無効化 – 参照の受け渡し • 全可変オブジェクトに防御的コピーを 実装するのは非現実的 – Javadoc無し •
但しサービスI/Fは除く – コンストラクタでのフィールドの初期化 • Spring Framework で DI しているので などなど…
25.
現在のPigg(2013年) 1) Compile 2) Unit
Testing 3) Inspection 4) Reporting trunkbranch IRC Jenkins developer Hook script feedback
26.
課題 • IRC開いてないと通知に気付かない • ガイドラインに沿ったコードになって いるかのチェックを自動化
27.
-責務の分離・可視化- Case 2:バッチ制御
28.
ピグで稼働するバッチ処理 • 57本(2013年6月現在) • オンライン処理の裏側で稼働 •
単発の処理がほとんど – 不要なデータの削除 – ログの収集・解析 などなど…
29.
注:写真はイメージです by Response.jp
h,p://response.jp/imgs/zoom/255829.jpg
30.
ツギハギだらけのバッチ環境 • cron起動 &
SpringBatch が混在 – サービスの拡大とともに変貌した結果? • 新バッチサーバ & 旧バッチサーバ – 旧 のくせに大事な処理が野ざらし – ジョブ失敗してるのに通知来ない
31.
運用上の問題点 • ジョブの実行状況が把握しづらい – どんなジョブが稼働してるかひと目で把握できない –
実行時間の増加傾向が掴みづらい – 異常終了が通知されない • SpringBatch 固有の問題 – 管理サーバと各ジョブが同一VM上で稼働 – ジョブが想定外の異常終了すると管理サーバごとVM が落ちる
32.
33.
Jenkinsを活用したバッチ環境 JOB① JOB② … developer Jenkins Batch server ü
スケジュール ü 記録
34.
取り組んできたこと • SpringBatchを捨てる – ジョブ実行用のシンプルなFWを開発 –
FWに合わせてプログラムは再作成 – バッチの制御はJenkinsに委譲 – cron起動していたジョブもJenkinsから実行 • Jenkinsでバッチを制御 – スケジューリング – 実行記録の保持
35.
Jenkinsを活用したバッチ環境 JOB① JOB② … developer Jenkins Batch server mon ü
スケジュール ü 記録 ü 死活監視 ü リソース監視
36.
取り組んできたこと • Remote APIを利用したリソース監視 –
キューイングされているジョブがないか – 同一ジョブの多重実行がないか ジョブのチューニングのタイミングを自動的に知る
37.
現状の課題 • 権限(認可)問題 – 現状は社員であれば誰でもジョブの実行 /停止/削除ができる
38.
-同じ過ちは繰り返さない- Case 3:オペレーションの自動化
39.
前提知識:アメーバピグの運用 • 2系統ある本番環境 • 毎週切り替え 本番系 待機系 LB DB Other Service swf
40.
前提知識:アメーバピグの運用 • 2系統ある本番環境 • 毎週切り替え 10分メンテを実現 待機系 本番系 LB DB Other Service swf 本番系 待機系
41.
過去に起きた障害たち • 本番/待機系でリリース物が異なってヒヤリ事件 • 管理画面が
the Internet に大公開事件 • 実はサーバの死活監視してませんでした事件 • 来週リリースのタグ切り1日早いんだった(・ω<) 事件 • a などなど…
42.
再発防止策? cheklist by
Alan Cleaver h,p://www.flickr.com/photos/alancleaver/4439276478/ 再発防止策?
43.
人は同じ過ちを繰り返す • 問題点 – 人間が運用するとまたミスる •
再発するとチェックリストは増える • チェックリストのチェックリスト問題
44.
45.
モニタリングの仕組み developer Jenkins Google Calendar
API servers (production)
46.
こんなことに利用してます • リソースの差分チェック – サーバ間差異 –
本番/待機系間差異 • リマインダ – 月金が公休の場合に警告メール送信
47.
今後の展望 • 自動化できる範囲を広げる – デプロイ&リリース –
稼動系の切り替え – メンテナンス切り替え などなど…
48.
まとめ
49.
本日お話ししたこと アメーバピグでのJenkinsケーススタディ • コードの品質管理 • バッチ制御 •
オペレーションの自動化
50.
散々語ってきましたが 正直途中から入れるのめんどいから はじめから入れようぜ!
51.
ご静聴ありがとうございました!