20121019-jenkins-akiko_pusu.pdf

85
~ ある管理部門のJenkins展開への道~ たかの あきこ / 2012.10.19 第6回Jenkins勉強会 おひとりさまから はじめよう。 おひとりさまでも はじめよう。

Upload: akikopusu

Post on 24-May-2015

22.848 views

Category:

Documents


0 download

DESCRIPTION

20121019 Jenkins勉強会資料です。技術ネタではなくてすみません...。

TRANSCRIPT

Page 1: 20121019-jenkins-akiko_pusu.pdf

~ ある管理部門のJenkins展開への道~

たかの あきこ / 2012.10.19 第6回Jenkins勉強会

おひとりさまから はじめよう。

おひとりさまでも はじめよう。

Page 2: 20121019-jenkins-akiko_pusu.pdf

自己紹介

@akiko_pusu (たかのあきこ)

某プロバイダ勤務。

管理部門(情シス部門)でお仕事中。

自分では作れないけどOSS大好き。

定時ダッシュ退社する2児の母。

こんなプロフ画像です。

イメージ壊してしまってスミマセン…。

Page 3: 20121019-jenkins-akiko_pusu.pdf

日々の記録から見えてきたこと。

母、執事と出会う。

毎日が、Goog Job!

せっかくだから広めたい。

お話しのながれ

Page 4: 20121019-jenkins-akiko_pusu.pdf

そんなに遠くない、3年ほど前のこと…….

Page 5: 20121019-jenkins-akiko_pusu.pdf

母、

執事と出会う。

Page 6: 20121019-jenkins-akiko_pusu.pdf

突然ですが。

育休明けの、とある

ヘナチョコ社員の

退社以降の流れを紹介。

Page 7: 20121019-jenkins-akiko_pusu.pdf

※小さすぎて見えないと思いますので、詳細はCacooへどうぞ!

退社して大急ぎで 21時半までに寝かしつけ。 ビルドパイプライン、ではありませんが

ノンストップで子どものお世話が待ってます。

Page 8: 20121019-jenkins-akiko_pusu.pdf

毎日へとへと…。

Page 9: 20121019-jenkins-akiko_pusu.pdf

当時、 PloneというCMSで

サポートWebの立ち上げ、 運用がミッションの 1つでした…。

CMS = コンテンツ

マネジメントシステムのこと。

PloneはOSSの高機能なCMSです。

http://plone.org/

Page 10: 20121019-jenkins-akiko_pusu.pdf

ときどき なにかの原因で DBが壊れる 事態が発生!!

Page 11: 20121019-jenkins-akiko_pusu.pdf

■Python良くわかんない。 ■日中メンテは難しいので夜間 対応しないとダメ。 ■多段のSSHしないと作業 できない。 ■自分以外でのメンテは誰も できない。 ■ほっとくと全部壊れる…orz

Page 12: 20121019-jenkins-akiko_pusu.pdf

負のスパイラル…。

自分が壊れる。

家族に対して 余裕がなくなる。

子どもが壊れる。

会社行けない。 仕事ますますできない。

Page 13: 20121019-jenkins-akiko_pusu.pdf

解決しないといけない 課題。

オペミス 怖い

Page 14: 20121019-jenkins-akiko_pusu.pdf

とりあえず、 失敗や障害の記録だけは コツコツと Redmineを使って 記録を残していくことに しました。

Page 15: 20121019-jenkins-akiko_pusu.pdf

…そんなとき。 Redmineに、 “Hudson”という

プラグインがある

ことに気付き

ました。

http://www.r-labs.org/projects/r-labs/wiki/Hudson

Page 16: 20121019-jenkins-akiko_pusu.pdf

これですか?

※スミマセン。そういう世代なんです…

え、

ハドソン?

Page 17: 20121019-jenkins-akiko_pusu.pdf

ともかく、

それが

執事との

出会いでした。

Page 18: 20121019-jenkins-akiko_pusu.pdf

ひと目で状態がわかるシンプルさ

Continuous Integration という言葉

さりげない執事の画像

画像提供: r-labs様 ツールを『執事』 に例えたセンス

Page 19: 20121019-jenkins-akiko_pusu.pdf

疲れた 母のココロに とっても 響きました!

Page 20: 20121019-jenkins-akiko_pusu.pdf

おひとりさまでも

はじめよう。

Page 21: 20121019-jenkins-akiko_pusu.pdf

そんなこんなで、 川口さんの日本語の資料や日本語のWikiがあったので、 すぐ調べてみました。

Page 22: 20121019-jenkins-akiko_pusu.pdf

どんどん気になって、 課のBlogに書いてみたり、 課会で勝手に調べたことを 話したりしてみました。

Page 23: 20121019-jenkins-akiko_pusu.pdf

…が、

周囲からは

いまひとつの

反応でした。

え、これのことじゃないの??

Page 24: 20121019-jenkins-akiko_pusu.pdf

そこでStop?

いいえ。

Page 25: 20121019-jenkins-akiko_pusu.pdf

私設執事 として

雇うことに

しました :)

Page 26: 20121019-jenkins-akiko_pusu.pdf

執事召喚

%Java –jar

執事さん.war

Page 27: 20121019-jenkins-akiko_pusu.pdf

今日から

貴女の執事です。

はじめまして。

8080番まで、 なんなりとお申し付け 下さいませ♪

Page 28: 20121019-jenkins-akiko_pusu.pdf

Ant, Mavenは全く分かってないけれど……

ひとまずガシガシと 定型化できそうな処理は Shellを書いて ジョブに置き換えて 行きました。

Page 29: 20121019-jenkins-akiko_pusu.pdf

定型作業はジョブ化。

お悩みごとは….

解決

Page 30: 20121019-jenkins-akiko_pusu.pdf

お悩みのDB壊れる問題は?

■藁をもすがる思いでPloneの MLをあさったり、投稿したり しました。 ■リカバリ用のスクリプトで処理する しかないところまで分かりました。 ■数回のトラブルとチケットに残 した対応記録から、定型作業化 出来そうになっていたので…

Page 31: 20121019-jenkins-akiko_pusu.pdf

お悩みのDB壊れる問題は?

■じゃあ、リカバリを ジョブ化してみることに! ■パラメータ大活用。 ■リカバリ・リストア、 ログ監視もJob化しました。 ■マスターのWeb上の操作で完了!

Page 32: 20121019-jenkins-akiko_pusu.pdf

毎日が、 Good Job!(・∀・)b

Page 33: 20121019-jenkins-akiko_pusu.pdf

母のココロにも 余裕が。

そして次の一歩への気持ちの余裕が…。

子どもにも 笑顔が。

Page 34: 20121019-jenkins-akiko_pusu.pdf

せっかくだから広めたい。

Page 35: 20121019-jenkins-akiko_pusu.pdf

自分だけ幸せでStop?

いいえ。

Page 36: 20121019-jenkins-akiko_pusu.pdf

こんなに良い

ツールは、みんなに

使ってもらいたい!

でも、タイミング

というものもある。

まずは

自分の下地を

固めていこう。

いつでも使える

ようにしておこう。

Page 37: 20121019-jenkins-akiko_pusu.pdf

※画像はイメージです。

社内の開発部隊の

勉強会で、

紹介させてとお願い

しました。

Java専用じゃないんだよー。

Page 38: 20121019-jenkins-akiko_pusu.pdf

こんなデモも やりました。

Page 39: 20121019-jenkins-akiko_pusu.pdf

ちょっと

自信がでました。

Page 40: 20121019-jenkins-akiko_pusu.pdf

お世話になったWikiのページに、日本語訳を付けてみたり。

判らないことはTweetしてみたり。

夜や休日の勉強会は 出られないけれど、ネット上で いろんな方にアドバイス いただいたり。

Page 41: 20121019-jenkins-akiko_pusu.pdf

実業務では使っていない ビルドの方法や テストの方法は、 Redmineつながりで 教えていただいたり しました。

Page 42: 20121019-jenkins-akiko_pusu.pdf

そんなある日。

Page 43: 20121019-jenkins-akiko_pusu.pdf

ActiveDirectory + SQL Server etc..

で作った 内製レポート生成システムの

置き換えという ミッションが到来。

Page 44: 20121019-jenkins-akiko_pusu.pdf

当時、テキストデータ 加工のために、 無理矢理Windows2003に ActivePerlを入れて 文字コード変換や置換、 データのサニタイズをしてから SQL ServerやOracleに 渡していました。

Page 45: 20121019-jenkins-akiko_pusu.pdf

Windows ポリシー 厳しい

『わたしたち』が直面 していた課題。

全部入り サーバの 弊害

Page 46: 20121019-jenkins-akiko_pusu.pdf

もしかして、

チャンス?

Page 47: 20121019-jenkins-akiko_pusu.pdf

執事さんと 関わって来たなか、

気が付いた ことがありました。

Page 48: 20121019-jenkins-akiko_pusu.pdf
Page 49: 20121019-jenkins-akiko_pusu.pdf

あの執事なら やれる!!

今ならできる!

Page 50: 20121019-jenkins-akiko_pusu.pdf

みんなの

執事の

サーバを

立てました。

Page 51: 20121019-jenkins-akiko_pusu.pdf

既存のWindowsも 活かしつつ、 テキスト加工や データ取得は

マスタのCentOSに やらせることにしました。

Page 52: 20121019-jenkins-akiko_pusu.pdf

ひとつのジョブを ひな形に、 どんどんジョブが増えていきました。

ユーザも どんどん増えて いきました。

Page 53: 20121019-jenkins-akiko_pusu.pdf

子分おともだちが増えました!

※詳細は、Cacooへどうぞ!

Page 54: 20121019-jenkins-akiko_pusu.pdf

みんなの毎日が、 Good Job!(・∀・)b

Page 55: 20121019-jenkins-akiko_pusu.pdf

やがて、みんなの間で こんな言葉が

普通に交わされる ようになりました。

自動化しよう。

Page 56: 20121019-jenkins-akiko_pusu.pdf

処理のほとんどは、 バイナリをビルドしたり、

Javaに関係したりするものでは ありませんでしたが…

Page 57: 20121019-jenkins-akiko_pusu.pdf

それまで 単純に個々のサーバの Cronやバッチ処理 という扱いだったものが、 成果物を出すための 一連の『ビルド』という 考え方に変わってきました。

Page 58: 20121019-jenkins-akiko_pusu.pdf

いろんな処理、

いろんなサーバが

連携して、

成果物を作る。

いまいち使い方に

自身が無かったし、

なんちゃってかも

しれませんが、

ある意味、

継続的インテグレーション

だよね、と思える

ようになりました。

Page 59: 20121019-jenkins-akiko_pusu.pdf

データソース = SCM SQL/解析処理

= ビルド

レポート =

成果物 レポート配布 =

Delivery

Continuous Deliveryに近い のかな、と感じています。

Page 60: 20121019-jenkins-akiko_pusu.pdf

日々の記録から

見えてきたこと。

Page 61: 20121019-jenkins-akiko_pusu.pdf

定期実行のジョブ、 バッチは、

一度スクリプトが決まれば ほとんどコードの 調整は不要。

だいたいは安定稼働。

Page 62: 20121019-jenkins-akiko_pusu.pdf

…ではありません!

めでたし

めでたし

自動化できたし、

Page 63: 20121019-jenkins-akiko_pusu.pdf

失敗

するんです!

Page 64: 20121019-jenkins-akiko_pusu.pdf

安定していた

定期バッチが

失敗する原因は…。

インフラによる

原因が多い!

Page 65: 20121019-jenkins-akiko_pusu.pdf

それには、 安定した

インフラが 必要です。

安定した ビルド。 安定した 成果物の配布。

Page 66: 20121019-jenkins-akiko_pusu.pdf

バッチ

止めとけば

よかったじゃん。

ありがちな会話…。

Page 67: 20121019-jenkins-akiko_pusu.pdf

そんなことで

悩みたくない!

Page 68: 20121019-jenkins-akiko_pusu.pdf

共通のメンテナンス

カレンダーをつくろう!

メンテナンス作業の

『見える化』を図ろう!

Page 69: 20121019-jenkins-akiko_pusu.pdf

つくりました。

Page 70: 20121019-jenkins-akiko_pusu.pdf

インフラチームの 仕事への理解、 お互いの信頼関係が大事だと気付きました。

お互いのジョブの 異変に気が付いたら 情報をすぐに共有 するのが大事だとも 再認識しました。

Page 71: 20121019-jenkins-akiko_pusu.pdf

そしてもうひとつ。

Page 72: 20121019-jenkins-akiko_pusu.pdf

みなさん、ビルドの

『所要時間』も

見ていますか?

Page 73: 20121019-jenkins-akiko_pusu.pdf

定期バッチの処理時間は ほぼ一定だと

思ってませんか?

所要時間のゆらぎが

異常の前触れに

なることも!

Page 74: 20121019-jenkins-akiko_pusu.pdf

成功していても 記録は時々 見て下さい。

気になる記録は 保存しておいて

ください。

Page 75: 20121019-jenkins-akiko_pusu.pdf

いつか必ず

トラブル対応や、

ビルド改善の

糸口になります。

Page 76: 20121019-jenkins-akiko_pusu.pdf

毎日が、

Good Job!

Page 77: 20121019-jenkins-akiko_pusu.pdf

おひとりさまでもはじめよう。

そしてもう1つ…

設定やノウハウは外でも学べます!

まとめ

インフラを大切に!

失敗や時間の記録はとても大事!

Page 78: 20121019-jenkins-akiko_pusu.pdf

わたしたちの課の Blogには、執事さんの アカウントが あります。

Page 79: 20121019-jenkins-akiko_pusu.pdf

※詳細は、Cacooへどうぞ!

執事さんが Blogに投稿する こともあります:)

Page 80: 20121019-jenkins-akiko_pusu.pdf

執事が みんなに仕事を 振ることも あります。

いつもは粛々と みんなの 仕事をこなす 側ですが、

Page 81: 20121019-jenkins-akiko_pusu.pdf

ぜひJenkinsを みなさんのチームの

仲間として むかえて 下さい!

どうせなら、楽しく行きましょう!

Page 82: 20121019-jenkins-akiko_pusu.pdf

ということで。

楽しい

使い方があったら、

ぜひ教えて

くださいませ!

Page 83: 20121019-jenkins-akiko_pusu.pdf

ということで。

Page 84: 20121019-jenkins-akiko_pusu.pdf

さらに毎日が、

Good Job!

Page 85: 20121019-jenkins-akiko_pusu.pdf

こんなお話しですが、

何かのきっかけに

なれば幸いです。