secretbase.log

.NET/C#/Pythonなど

豆ナイトPresents:続・CI超入門 〜Jenkinsノススメ2〜 を楽しんできました #jenkins_night

イベント概要

【1】はじめに

  • Jenkins を導入していくためには
  • CI導入のきも

【2】「今さら聞けないjenkins導入」 川口耕介氏(CloudBees, Inc.)

  • オープンソース
    • MICHELIN でもJenkinsは使っている
    • 運輸関係でも使われている
  • 本もある(Jenkins実践入門)
    • NTTデータの経験を元に書かれたJenkins実践入門 Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
    • Jenkins (ニュージーランドの人が書いた本) 本日発売。Jenkins
    • Web+DB PRESS Vol.67 WEB+DB PRESS Vol.67
  • 継続的インテグレーションの発想
    • ビルドを頻繁に実行しよう
    • テストを頻繁に実行しよう
    • 問題をみつけよう 
    • 発生したときすぐにビルドがこわれたときにすぐわかる
    • テストを書いたほうがいいと認識があるが、日々の仕事が忙しくテストを書くまで回らない
    • テストを書く文化が根付かない→どういう利益が得られるか弱い
    • テストを書く→ビルド&テスト→問題がすぐみつかる
    • 前回バージョン管理を使っていない職場があるという話があったがバージョン管理がなぜ必要かを説得する
  • CI=命綱
    • いつかおこる問題に対する安心感
    • リファクタリングに対するコードの変更のリスクを有るていどとることができる
    • 火災報知機のようなもの=問題が見つかったら早く直す
      • →普段は、警報がなっていない状態にする
      • →警報が鳴りっぱなしになってしまう状態を避けることが文化して根付く鍵
      • →警報がなったときにすぐ直すようにする
      • →野球のフライでお見合いしてしまうのを防ぐ
  • あるとよいもの
    • バージョン管理システム
      • 問題が起きた場合に、だれの変更でビルドが壊れたかわかる。
    • 自動化されたビルドスクリプト
      • ビルドがない言語の場合は品質検査で代用
      • ソースコードに対してなにかをチェックするツール
    • 自動化されたテストスクリプト
      • 目で見るタイプのデバッグをやっている→自動化できない
  • Meet Jenkins
    • Test Drive
      • まずはお試しでデスクトップに1週間や2週間いれてからあらためてインストールすることもできる
      • 試し運転だが実運用と変わらない。TestDriveからインストールすることもできる
  • まとめ
    • 少しずつはじめてください
    • 簡単です

【3】「Jenkins + EC2 で分散ビルド!」 玉川竜司氏(Sky株式会社)

  • 本日発売! Jenkins 蛙本
  • AWS (Amazon Web Services)
  • Jenkins on EC2
    • ビルドは負荷の変動が激しい
    • コスト(一時間単位の従量課金)
    • 伸縮自在 EC2Plugin
    • マルチ構成プロジェクトで特に便利そう
    • Windows/Linux MySQL/PostgreSQL 4台並行
  • EC2 疑念
    • セキュリティは?
    • Amazon Virtual Private Cloud (VPC)
  • デモ1
    • Amazon Linux (Fedora ベースなので、RPMつかえます)
    • Security Groupの設定で8080を開けるのを忘れないこと
  • AMI
  • EC2 Plugin
    • EC2のインスタンスを動的に起動終了してくれる
    • ベースのLinux Ubuntuが簡単
    • 64bit/32bit いまのところ64bit使えない
  • 課金について
    • EC2の課金は、一時間単位です
    • 5分だけインスタンス使って、5分を10回やったら10時間分
    • ちなみに、CloudBeesさんのサービスは分単位課金!

【4】「ディスカッション」 20:15-20:35

  • CIの導入について考える
    • シャイな他人のための Analog Twitter
  • ツール導入全般
    • まずはバグ管理から、なぜ問題がおきたか考える
  • バージョン管理
    • ボトムアップからの導入を考える。楽になることを考える。
    • 自分が楽になる。そして人が楽になる
  • テストコード
    • なぜテストが必要かの問題意識が必要。
    • テストをしなくても、静的解析ツールを走らせるという方法がある。
    • テストコードをかくというプレッシャーを感じなくてもよいのではないか。
  • 参加者のコメント
    • CIが気になっている人にとって最適な内容でした!
  • 自分にとって、CIを導入するとはどういうことか?
  • Jenkinsのメリット
    • ビルドログが残っている(Webで見ることができる)
    • いつビルドを行ったか時刻が残る (Webで見ることができる)

【5】Lightning Talk (かぬ氏, cactusman氏)

StartUp Jenkins 〜 CIから始めないJenkins入門 〜 かぬ氏

  • Jenkins導入策 id:cactusman
    • 本を買いましょう (Jenkins 実践入門、Jenkins、Web+DB)
    • 構想編
      • コストをかけない
      • 何がしないか?焦点を絞る (テストをしたいのか?最終成果物が大事か?)
      • 欲張らない
    • サーバ編
      • 開いているサーバを確保(どこかのサーバに寄生。Subversionとか)
      • クラウド、上司を説得
      • 動くものを見せよう (グラフ)
    • ビルド編
      • ビルドスクリプトを書きましょう(Ruby, Python)
      • 最終成果物
      • やることを絞る
      • 静的解析から始める (テストは大変。静的解析は比較的に導入が容易)
  • 通知編
    • まず自分だけにメール等で通知する
    • 安定してきたら、チームの見る場所へ
    • 通知は必ず対応するものだけに絞ることが大事(他は自分向け)

懇親会

近くの北海道で行われました。12人参加。
川口さんと、かぬさんと、さぼてんさんと名刺交換させていただいたので満足です。

最後に

私は半年前に自分のPCにJenkinsを入れ、チーム内でだんだんと浸透しているところですが、全社で展開する流れになりました。JenkinsやCIを知らない開発現場にどのようなアプローチで導入をすすめていくとよいかという観点で、今回の勉強会に参加させていただきました。そして、CIをすると、なにがうれしいかについていろいろな方の切り口で得られて非常に参考になる勉強会でした。ありがとうございました。