Upload
nrooms
View
251
Download
0
Embed Size (px)
Citation preview
Effective Jenkins
Keynote● Do You Remember Mr. Jenkins ?
● Memory with Jenkins
● Jenkins Meets Chef
Do You Remember Mr. Jenkins?
コンパイル テスト
インスペクション デプロイ
What's 継続的インテグレーション?
Jenkins導入のモチベーション
● 自動化による生産性向上
● 作業の属人性排除
● "精神論"による品質管理から"仕組み"による品
質管理へ
一般的なJenkinsの活用方法
commitpull request
unit test merge
Curennt Develop
次第にモチベーションも上がる
上がる⤴
でも、これは初歩の初歩
Jenkinsさんはcronとしても優秀
● ボタンをクリックして待つだけ
● 実行結果を簡単に確認できる
● ジョブにコメントや説明を記述できる
● タイマーでタスク実行
● プラグインと組み合わせると、タスクを連携する
ことができる
● 外部のコマンド、サービスを呼び出せる
● 本番環境へのリリースがとても大変
とあるプロジェクトにおける課題
リリース手順が多くて大変
● すべて手動・・・tomcat6の設定
# vi /etc/tomcat6/tomcat6.confJAVA_HOME位置の変更
JAVA_HOME="/usr/lib/jvm/jre-1.7.0"実行ユーザの変更
TOMCAT_USER="root"
使用ポートの変更
# vi /usr/share/tomcat6/conf/server.xml <Connector port="80" protocol="HTTP/1.1"
リリースに丸2日かかった・・・
そもそも手動リリースは危険
自動化しよう!
How May I Help You?
リリース作業をJenkinsで自動化
結果、0.5日に短縮 !!
Immutable Infrastructure
Jenkins Meets Chef
What’s Chef ?
What’s cookbook ?include_recipe 'database::mysql'
mysql_connection_info = {:host => "localhost",
:username => 'root',
:password => node['mysql']
['server_root_password']}
mysql_database "my_app" do
connection mysql_connection_info
action :create
end
Infrastructure as Code
● コードによるインフラの管理
● 台数が増えても構築に時間がかからない
● コード=手順書となるのでコードをメンテナンス
すれば良い
● ヒューマンエラー因子の除去
● 再利用性
Immutable Infrastructure
● 仮想化
● クラウド
● Infrastructure as Code○ サーバをプラグラマブルに管理
● Immutable Infrastructure○ サーバ管理の冪等性
○ サーバ管理の自動化
インフラの継続的インテグレーション
Circle of Jenkins
Effective Jenkins
● エンジニアへの要求が変化している
● 自動化できる作業は計算機に委任する
● 人間は知的作業へシフト
Thank You
Good Jenkins !!Good Continuous Integration !!
Appendix1
Appendix2
● DB(MySQl)のマイグレーション○ gradle経由でFlywayを実行
● Tomcatへのデプロイ○ SSHplugin経由でTomcatManagerを実行
● ジョブの階層化と並列化○ Parameterized Trigger Pluginを利用して階層化○ Build Pipeline Pluginを利用して並列化