20121019-jenkins-akiko_pusu.pdf
DESCRIPTION
20121019 Jenkins勉強会資料です。技術ネタではなくてすみません...。TRANSCRIPT
~ ある管理部門のJenkins展開への道~
たかの あきこ / 2012.10.19 第6回Jenkins勉強会
おひとりさまから はじめよう。
おひとりさまでも はじめよう。
自己紹介
@akiko_pusu (たかのあきこ)
某プロバイダ勤務。
管理部門(情シス部門)でお仕事中。
自分では作れないけどOSS大好き。
定時ダッシュ退社する2児の母。
こんなプロフ画像です。
イメージ壊してしまってスミマセン…。
日々の記録から見えてきたこと。
母、執事と出会う。
毎日が、Goog Job!
せっかくだから広めたい。
お話しのながれ
そんなに遠くない、3年ほど前のこと…….
母、
執事と出会う。
突然ですが。
育休明けの、とある
ヘナチョコ社員の
退社以降の流れを紹介。
※小さすぎて見えないと思いますので、詳細はCacooへどうぞ!
退社して大急ぎで 21時半までに寝かしつけ。 ビルドパイプライン、ではありませんが
ノンストップで子どものお世話が待ってます。
毎日へとへと…。
当時、 PloneというCMSで
サポートWebの立ち上げ、 運用がミッションの 1つでした…。
CMS = コンテンツ
マネジメントシステムのこと。
PloneはOSSの高機能なCMSです。
http://plone.org/
ときどき なにかの原因で DBが壊れる 事態が発生!!
■Python良くわかんない。 ■日中メンテは難しいので夜間 対応しないとダメ。 ■多段のSSHしないと作業 できない。 ■自分以外でのメンテは誰も できない。 ■ほっとくと全部壊れる…orz
負のスパイラル…。
自分が壊れる。
家族に対して 余裕がなくなる。
子どもが壊れる。
会社行けない。 仕事ますますできない。
解決しないといけない 課題。
オペミス 怖い
とりあえず、 失敗や障害の記録だけは コツコツと Redmineを使って 記録を残していくことに しました。
…そんなとき。 Redmineに、 “Hudson”という
プラグインがある
ことに気付き
ました。
http://www.r-labs.org/projects/r-labs/wiki/Hudson
これですか?
※スミマセン。そういう世代なんです…
え、
ハドソン?
ともかく、
それが
執事との
出会いでした。
ひと目で状態がわかるシンプルさ
Continuous Integration という言葉
さりげない執事の画像
画像提供: r-labs様 ツールを『執事』 に例えたセンス
疲れた 母のココロに とっても 響きました!
おひとりさまでも
はじめよう。
そんなこんなで、 川口さんの日本語の資料や日本語のWikiがあったので、 すぐ調べてみました。
どんどん気になって、 課のBlogに書いてみたり、 課会で勝手に調べたことを 話したりしてみました。
…が、
周囲からは
いまひとつの
反応でした。
え、これのことじゃないの??
そこでStop?
いいえ。
私設執事 として
雇うことに
しました :)
執事召喚
%Java –jar
執事さん.war
今日から
貴女の執事です。
はじめまして。
8080番まで、 なんなりとお申し付け 下さいませ♪
Ant, Mavenは全く分かってないけれど……
ひとまずガシガシと 定型化できそうな処理は Shellを書いて ジョブに置き換えて 行きました。
定型作業はジョブ化。
お悩みごとは….
解決
お悩みのDB壊れる問題は?
■藁をもすがる思いでPloneの MLをあさったり、投稿したり しました。 ■リカバリ用のスクリプトで処理する しかないところまで分かりました。 ■数回のトラブルとチケットに残 した対応記録から、定型作業化 出来そうになっていたので…
お悩みのDB壊れる問題は?
■じゃあ、リカバリを ジョブ化してみることに! ■パラメータ大活用。 ■リカバリ・リストア、 ログ監視もJob化しました。 ■マスターのWeb上の操作で完了!
毎日が、 Good Job!(・∀・)b
母のココロにも 余裕が。
そして次の一歩への気持ちの余裕が…。
子どもにも 笑顔が。
せっかくだから広めたい。
自分だけ幸せでStop?
いいえ。
こんなに良い
ツールは、みんなに
使ってもらいたい!
でも、タイミング
というものもある。
まずは
自分の下地を
固めていこう。
いつでも使える
ようにしておこう。
※画像はイメージです。
社内の開発部隊の
勉強会で、
紹介させてとお願い
しました。
Java専用じゃないんだよー。
こんなデモも やりました。
ちょっと
自信がでました。
お世話になったWikiのページに、日本語訳を付けてみたり。
判らないことはTweetしてみたり。
夜や休日の勉強会は 出られないけれど、ネット上で いろんな方にアドバイス いただいたり。
実業務では使っていない ビルドの方法や テストの方法は、 Redmineつながりで 教えていただいたり しました。
そんなある日。
ActiveDirectory + SQL Server etc..
で作った 内製レポート生成システムの
置き換えという ミッションが到来。
当時、テキストデータ 加工のために、 無理矢理Windows2003に ActivePerlを入れて 文字コード変換や置換、 データのサニタイズをしてから SQL ServerやOracleに 渡していました。
Windows ポリシー 厳しい
『わたしたち』が直面 していた課題。
全部入り サーバの 弊害
もしかして、
チャンス?
執事さんと 関わって来たなか、
気が付いた ことがありました。
あの執事なら やれる!!
今ならできる!
みんなの
執事の
サーバを
立てました。
既存のWindowsも 活かしつつ、 テキスト加工や データ取得は
マスタのCentOSに やらせることにしました。
ひとつのジョブを ひな形に、 どんどんジョブが増えていきました。
ユーザも どんどん増えて いきました。
みんなの毎日が、 Good Job!(・∀・)b
やがて、みんなの間で こんな言葉が
普通に交わされる ようになりました。
自動化しよう。
処理のほとんどは、 バイナリをビルドしたり、
Javaに関係したりするものでは ありませんでしたが…
それまで 単純に個々のサーバの Cronやバッチ処理 という扱いだったものが、 成果物を出すための 一連の『ビルド』という 考え方に変わってきました。
いろんな処理、
いろんなサーバが
連携して、
成果物を作る。
いまいち使い方に
自身が無かったし、
なんちゃってかも
しれませんが、
ある意味、
継続的インテグレーション
だよね、と思える
ようになりました。
データソース = SCM SQL/解析処理
= ビルド
レポート =
成果物 レポート配布 =
Delivery
Continuous Deliveryに近い のかな、と感じています。
日々の記録から
見えてきたこと。
定期実行のジョブ、 バッチは、
一度スクリプトが決まれば ほとんどコードの 調整は不要。
だいたいは安定稼働。
…ではありません!
めでたし
めでたし
自動化できたし、
失敗
するんです!
安定していた
定期バッチが
失敗する原因は…。
インフラによる
原因が多い!
それには、 安定した
インフラが 必要です。
安定した ビルド。 安定した 成果物の配布。
バッチ
止めとけば
よかったじゃん。
ありがちな会話…。
そんなことで
悩みたくない!
共通のメンテナンス
カレンダーをつくろう!
メンテナンス作業の
『見える化』を図ろう!
つくりました。
インフラチームの 仕事への理解、 お互いの信頼関係が大事だと気付きました。
お互いのジョブの 異変に気が付いたら 情報をすぐに共有 するのが大事だとも 再認識しました。
そしてもうひとつ。
みなさん、ビルドの
『所要時間』も
見ていますか?
定期バッチの処理時間は ほぼ一定だと
思ってませんか?
所要時間のゆらぎが
異常の前触れに
なることも!
成功していても 記録は時々 見て下さい。
気になる記録は 保存しておいて
ください。
いつか必ず
トラブル対応や、
ビルド改善の
糸口になります。
毎日が、
Good Job!
おひとりさまでもはじめよう。
そしてもう1つ…
設定やノウハウは外でも学べます!
まとめ
インフラを大切に!
失敗や時間の記録はとても大事!
わたしたちの課の Blogには、執事さんの アカウントが あります。
執事が みんなに仕事を 振ることも あります。
いつもは粛々と みんなの 仕事をこなす 側ですが、
ぜひJenkinsを みなさんのチームの
仲間として むかえて 下さい!
どうせなら、楽しく行きましょう!
ということで。
楽しい
使い方があったら、
ぜひ教えて
くださいませ!
ということで。
さらに毎日が、
Good Job!
こんなお話しですが、
何かのきっかけに
なれば幸いです。