邪道Jenkins
自己紹介向山 雄平(HAZI)仕事 : 社内システムの開発, デザイナー開発 : Javascript, Perl, Ruby, FileMakerTwitter : @HAZIBlog : http://hazi.jp
ニコニコでの活動OS X 用 Dashboard Widget 色々高機能 ニコ生RSS 読み込み部はかなり作るこ んであるので、興味のある方はソース 見てみて! 2011年末開発終了                    し いよ !!   ...
ニコニコでの活動動画制作 sm14157281 エフェクト系担当 Motion, Final Cut Pro
ニコニコでの活動プロ生のお手伝い プロ生ちゃんスタンプ 受付のシステム開発 東京ではほぼ欠かさず参加
今回の内容#1 Jenkinsとは#2 王道なJenkinsの使い方#3 邪道なJenkinsの使い方#4 まともな邪道Jenkinsの使い方※ごめんなさい初心者向けです。
#1Jenkinsとは?
• 旧名 Hudson• Javaベース• CI Tool(継続的インテグレーションツール)                             じぇんきんすじぃ
CI Tool?なにそれ
主にプログラマーのアプリケーション作成時の品質改善や納期の短縮のための習慣のことである。by http://ja.wikipedia.org/wiki/継続的インテグレーション  いわゆる最近はやりのアジャイル系
なるほどよくわからん
具体的には?
#2王道Jenkins
例えば、Gitでバージョン管理しているような場合1. 開発する。2. ローカルテストに成功したらサーバにpushする3. Jenkinsがpushされたことを自動的に確認4. ビルド・詳細テストを自動的に実行• 失敗したらメールで連絡• 成功し...
処理を自動的に実行
忘れない。何かあってもすぐに気付ける。
継続的に品質保持が出来る
王道Jenkins = 意識高い
Jenkins =
多分そういうこと
#3邪道Jenkins
邪道ってなんだ?
Jenkins = CIツール
CIツールとして使わないJenkins     邪道Jenkins
そもそも Jenkins は何が出来るのか• タイマーなどでのタスク実行• それに、WebUI と APIと、プラグイン機能を追加• プラグインは 600個以上• マルチプラットフォーム対応(Win, Mac, Linux)• スレーブが作れる
Jenkins = すごいCrontab ※ CrontabはUNIX系のタイマーでタスクを実行するためのツールです
すごい Crontab って言われると なんだか使えそうじゃない?
すごい Crontabを使うとどんなこ     とが出来るの?
Case 1              🕔スマホで外出先からも操作出来る   目覚まし欲しいなぁ
Case 1              🕔すごいCrontabにお任せ!
Case 1                             🕔•Jenkinsに登録したタイマーでパソコンから大音量の音楽を再生•タイマーの時間は、WebUIから変更可能•突然の外泊でもスマホからタイマーを止められる!•アラームと同時...
Case 2          上司から不定期にメールで報告を求 められて、対応が面倒くさい…。
Case 2         すごいCrontabにお任せ!
Case 2                 •例えば集計結果をメールするだけなら、•定期的にメールをチェックして、報告依頼メールをパターンマッチング•報告依頼メールが来たら、集計を実行し結果を出力•そのままJenkinsから自動的に上司にメ...
Case 3            Instagram的なサービス作りたい!でもグラフィック系のコード書けな          い…。
Case 3          すごいCrontabにお任せ!
Case 3                  •Photoshopで写真を加工するマクロ作る•WebサーバアプリからJenkinsのAPIを使って、そのマクロを実行して画像を作らせる•アクセスが増えても、スレーブの台数を増やせばいい
#4まともな邪道Jenkins
リモートコンパイラ
• iPad などコンパイラの無い環境でコーディング • Dropbox で Mac と同期 • Mac に Jenkins を入れておき • WebUI から Jenkins でテスト・コンパイル実行masuidriveさんが実際にやられてま...
お仕事のお話
• FileMaker Pro で業務システムの開発• バッチ処理がたくさん• Macを何台も用意して Crontab(LaunchAgent) で定期的に実行    ※ FileMaker Pro = MS Access 的な UIとDBを一...
※ 会社のMac mini 達
監視が結構大変
FileMaker外部連携用の    APIとか無い。監視ツールとか難しい。
問題点• 1個のOSで1つしか同時に実行出来ない• 必然的に台数が増える• 1つのタスクの実行を変更すると関連するタスクの修正を、複数 台にまたがって行う必要がある• 複数台にまたがる場合は余裕を見てバッチをセットしたり• エラーで止まっても気...
そこですごいCrontab
マスタで一元管理が出来る• 複数台のマシンをスレーブとして簡単に登録出来 る。• タスクの管理もWebUIから。• 過去どのマシンでどういった実行が行われたかが 確認できる。• 実行するマシンはタグなどで指定出来る。
実行するスクリプトもGitで管理• タスクを実行するたびにJenkinsがワークスペー スを作成し、チェックアウトしてくれる。• スクリプトを更新しても、各マシンに手動でリリ ースしないくていい。• 事前準備が、FileMakerのインストール...
複数のタスクを同時に実行可能• 例えば、マスタデータの更新完了後に5台に分け てバッチ処理を同時に実行出来る• Linuxなどでのタスク終了ごに、FileMakerを実行 することも可能。
エラーが起きるとプロセスを切ってくれる• FileMakerはエラーが起きると止まってしまう。• でも、Jenkinsにエラー信号を返してあげると、 その間作られたプロセスすべてを殺してくれる。• 止まったFileMakerも勝手に殺される。
まとめ
Jenkins はインストールが本当に楽
設定もWebUIから出来る
スレーブ作るのも簡単
邪道Jenkins
Upcoming SlideShare
Loading in...5
×

邪道Jenkins

20,520

Published on

12/22 プログラミング生放送勉強会 第19回@品川 で、お話させて頂いた内容です。

http://hazi.jp/2012-12/2203/

Published in: Technology
0 Comments
59 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
20,520
On Slideshare
0
From Embeds
0
Number of Embeds
23
Actions
Shares
0
Downloads
88
Comments
0
Likes
59
Embeds 0
No embeds

No notes for slide

邪道Jenkins

  1. 1. 邪道Jenkins
  2. 2. 自己紹介向山 雄平(HAZI)仕事 : 社内システムの開発, デザイナー開発 : Javascript, Perl, Ruby, FileMakerTwitter : @HAZIBlog : http://hazi.jp
  3. 3. ニコニコでの活動OS X 用 Dashboard Widget 色々高機能 ニコ生RSS 読み込み部はかなり作るこ んであるので、興味のある方はソース 見てみて! 2011年末開発終了 し いよ !! 一応動 くら
  4. 4. ニコニコでの活動動画制作 sm14157281 エフェクト系担当 Motion, Final Cut Pro
  5. 5. ニコニコでの活動プロ生のお手伝い プロ生ちゃんスタンプ 受付のシステム開発 東京ではほぼ欠かさず参加
  6. 6. 今回の内容#1 Jenkinsとは#2 王道なJenkinsの使い方#3 邪道なJenkinsの使い方#4 まともな邪道Jenkinsの使い方※ごめんなさい初心者向けです。
  7. 7. #1Jenkinsとは?
  8. 8. • 旧名 Hudson• Javaベース• CI Tool(継続的インテグレーションツール) じぇんきんすじぃ
  9. 9. CI Tool?なにそれ
  10. 10. 主にプログラマーのアプリケーション作成時の品質改善や納期の短縮のための習慣のことである。by http://ja.wikipedia.org/wiki/継続的インテグレーション いわゆる最近はやりのアジャイル系
  11. 11. なるほどよくわからん
  12. 12. 具体的には?
  13. 13. #2王道Jenkins
  14. 14. 例えば、Gitでバージョン管理しているような場合1. 開発する。2. ローカルテストに成功したらサーバにpushする3. Jenkinsがpushされたことを自動的に確認4. ビルド・詳細テストを自動的に実行• 失敗したらメールで連絡• 成功したら本番環境にデプロイ
  15. 15. 処理を自動的に実行
  16. 16. 忘れない。何かあってもすぐに気付ける。
  17. 17. 継続的に品質保持が出来る
  18. 18. 王道Jenkins = 意識高い
  19. 19. Jenkins =
  20. 20. 多分そういうこと
  21. 21. #3邪道Jenkins
  22. 22. 邪道ってなんだ?
  23. 23. Jenkins = CIツール
  24. 24. CIツールとして使わないJenkins 邪道Jenkins
  25. 25. そもそも Jenkins は何が出来るのか• タイマーなどでのタスク実行• それに、WebUI と APIと、プラグイン機能を追加• プラグインは 600個以上• マルチプラットフォーム対応(Win, Mac, Linux)• スレーブが作れる
  26. 26. Jenkins = すごいCrontab ※ CrontabはUNIX系のタイマーでタスクを実行するためのツールです
  27. 27. すごい Crontab って言われると なんだか使えそうじゃない?
  28. 28. すごい Crontabを使うとどんなこ とが出来るの?
  29. 29. Case 1 🕔スマホで外出先からも操作出来る 目覚まし欲しいなぁ
  30. 30. Case 1 🕔すごいCrontabにお任せ!
  31. 31. Case 1 🕔•Jenkinsに登録したタイマーでパソコンから大音量の音楽を再生•タイマーの時間は、WebUIから変更可能•突然の外泊でもスマホからタイマーを止められる!•アラームと同時にメールを飛ばせば、止め忘れ防止にも。 ※ 電気代のことを気にしたら負け
  32. 32. Case 2 上司から不定期にメールで報告を求 められて、対応が面倒くさい…。
  33. 33. Case 2 すごいCrontabにお任せ!
  34. 34. Case 2 •例えば集計結果をメールするだけなら、•定期的にメールをチェックして、報告依頼メールをパターンマッチング•報告依頼メールが来たら、集計を実行し結果を出力•そのままJenkinsから自動的に上司にメールを送信!
  35. 35. Case 3 Instagram的なサービス作りたい!でもグラフィック系のコード書けな い…。
  36. 36. Case 3 すごいCrontabにお任せ!
  37. 37. Case 3 •Photoshopで写真を加工するマクロ作る•WebサーバアプリからJenkinsのAPIを使って、そのマクロを実行して画像を作らせる•アクセスが増えても、スレーブの台数を増やせばいい
  38. 38. #4まともな邪道Jenkins
  39. 39. リモートコンパイラ
  40. 40. • iPad などコンパイラの無い環境でコーディング • Dropbox で Mac と同期 • Mac に Jenkins を入れておき • WebUI から Jenkins でテスト・コンパイル実行masuidriveさんが実際にやられてました。http://blog.masuidrive.jp/index.php/2012/12/02/ipad-mini-codeeditor/
  41. 41. お仕事のお話
  42. 42. • FileMaker Pro で業務システムの開発• バッチ処理がたくさん• Macを何台も用意して Crontab(LaunchAgent) で定期的に実行 ※ FileMaker Pro = MS Access 的な UIとDBを一緒にしたアプリケーション。 作ったものがiPadでも実行出来て最近注目を浴びている。
  43. 43. ※ 会社のMac mini 達
  44. 44. 監視が結構大変
  45. 45. FileMaker外部連携用の APIとか無い。監視ツールとか難しい。
  46. 46. 問題点• 1個のOSで1つしか同時に実行出来ない• 必然的に台数が増える• 1つのタスクの実行を変更すると関連するタスクの修正を、複数 台にまたがって行う必要がある• 複数台にまたがる場合は余裕を見てバッチをセットしたり• エラーで止まっても気づかなかったり
  47. 47. そこですごいCrontab
  48. 48. マスタで一元管理が出来る• 複数台のマシンをスレーブとして簡単に登録出来 る。• タスクの管理もWebUIから。• 過去どのマシンでどういった実行が行われたかが 確認できる。• 実行するマシンはタグなどで指定出来る。
  49. 49. 実行するスクリプトもGitで管理• タスクを実行するたびにJenkinsがワークスペー スを作成し、チェックアウトしてくれる。• スクリプトを更新しても、各マシンに手動でリリ ースしないくていい。• 事前準備が、FileMakerのインストールと、 Jenkinsへの登録のみ。
  50. 50. 複数のタスクを同時に実行可能• 例えば、マスタデータの更新完了後に5台に分け てバッチ処理を同時に実行出来る• Linuxなどでのタスク終了ごに、FileMakerを実行 することも可能。
  51. 51. エラーが起きるとプロセスを切ってくれる• FileMakerはエラーが起きると止まってしまう。• でも、Jenkinsにエラー信号を返してあげると、 その間作られたプロセスすべてを殺してくれる。• 止まったFileMakerも勝手に殺される。
  52. 52. まとめ
  53. 53. Jenkins はインストールが本当に楽
  54. 54. 設定もWebUIから出来る
  55. 55. スレーブ作るのも簡単
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×