• Like
邪道Jenkins
Upcoming SlideShare
Loading in...5
×

邪道Jenkins

  • 15,761 views
Uploaded on

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

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
15,761
On Slideshare
0
From Embeds
0
Number of Embeds
18

Actions

Shares
Downloads
84
Comments
0
Likes
55

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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