Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
2014/6/9(月) 仮想開発環境とか勉強会
(Vagrant/Chef/docker/Jenkins)
で発表する予定でしたけど…参加出来なくてごめんなさい…
JenkinsをJava開発で
こんな感じで使ってます
未
発
表
-自己紹介-
株式会社キャムの江原と申します。
プログラマしてます。
twitter : @itokami1123
企業の経営戦略に役立つサービス「CAM MACS」を
AWSにて提供してます。
1月から転職して今の職場になりました。
そこで初めてJenkinsに触れました。
この発表では弊社でのJenkins利用方法を
ご紹介したいと思います。
もっとこうした方がいいよとかありましたら
是非ご指摘ください!
アジェンダ
=======
- 言語とフレームワーク
- 開発でJenkins
- 夜間バッチでJenkins
言語とフレームワーク
弊社はJavaでの開発がメインです。
一番新しい開発では、Spring Bootを使用しています。
Seasar2(Teeda)->JavaEE6->Springと変わってきました。
AngularJS
(JavaScript)
Grunt Maven
Spring Boot
(Java8)
PostgreSQLDomaREST
組込Jetty
開発でJenkins
GitHUB Jenkins
ソースのバージョン管理はGitを使用してます。
GitHub上のリポジトリにソースを集約してます。
PUSH
(
(
(
プルリク・プルリク/
GitHUB Jenkins
GitHubからを5分毎にポーリングして
マージしたソースをJenkinsに取得しています。
PULL
(
(
(
Git plugin!/
* /5 * * * *
GitHUB Jenkins
Jenkinsの状態(ビルド開始など)をHipChatで通知します。
HipChatは他にもGitHubの状態などにも使ってます。
通知
(
(
(
 Jenkins HipChat Plugin /
 コンパイルはじまった! /
GitHUB Jenkins
ビルドジョブを実行します。緊急でビルドだけしたい時も考
えてテストジョブは分けてます。
(
(
(
 ビルドなう! /
maven
mvn install -DskipTests=true
ビルド
ジョブ
JSHintやCheckstyleで品質管理
GitHUB Jenkins
ビルドジョブ終了をキッカケにテストジョブを実行〜。
テストジョブ終了をキッカケにデプロイテストを実行〜。
(
(
(
ビルド
ジョブ
テスト
ジョブ
 上流から下流ジョブ /
デプロ
イテスト
状況を結果通知
/ちゃんと動いてる!
GitHUB Jenkins
ステージング環境やプロダクト環境に配備するJOBは手動で
実行しています。(課題の切りのよいタイミングで行う為)
(
(
(
ステー
ジング
ジョブ
ステージング環境
 結合試験! /
課題管理はJIRA使ってます。
手動で起動
夜間バッチでJenkins
夜間処理といえば
商用のジョブ管理ソフトがありますが
高価ですね…
!
例えば○○とか△△とか
!
かといって cronだけでは
状況を把握しにくいです…
Jenkins
指定したタイミングでシェルが起動出きるのを利用して
夜間に行わせたい業務処理もJenkinsでやっています。
毎日の集計処理.sh
業務
ジョブ
業務
ジョブ
不要データ削除.sh PostgreSQL
Cron Columnプラグインを使えば
起動タイミングの設定をView上で確認できますし
Next Executionsプラグインを使えば
今度いつ起動するか確認できます。
ログも世代でブラウザから確認できますし
Timestamperを使えば実行のおよその時間も分かります
-まとめ-
まず、Jenkinsの前に
!
エクセル管理台帳を愛する
!
業務系アプリのみなさんも
!
そろそろソース管理ソフト導入しましょ。
根性や精神論もいいけど
!
JenkinsでCheckstyleやJUnitを
!
動かして品質の維持を自動化しましょ
Jenkinsは、シェルのジョブ管理にも
!
便利に使えます。
!
ジョブ管理ソフトとしても優秀です!
転職前の私のように
!
Jenkins導入されていない貴方!
!
是非導入してみてください!
!
むっちゃ楽になりますよ。
会社で導入してもらえないなら転職するしかないかも…
今日参加出来なくて
すみませんでした…

More Related Content

JenkinsをJava開発でこんな感じで使っています