Your SlideShare is downloading. ×
0
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
LL言語でもHudsonを使おう!
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

LL言語でもHudsonを使おう!

5,978

Published on

2010/02/25開催 Cyber Agent様 × KLab勉強会資料

2010/02/25開催 Cyber Agent様 × KLab勉強会資料

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,978
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
16
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. LL言語でもHudsonを使お う! 2010/02/25 研究開発部 佐々木健一 Copyright 2010 KLab Inc. All rights reserved. 1
  • 2. 自己紹介 Copyright 2010 KLab Inc. All rights reserved. 2
  • 3. 自己紹介 • 名前 – 佐々木健一 • 沿革 – ~2009年8月 • プロジェクトマネジメント部に在籍 • 自社向け携帯サイト開発フレームワーク作成(Java) • Hudsonをコツコツ使う – 2009年9月~ • マネジメントよりモノづくりが好きで現部署へ • LL言語にもCIの必要性を感じつつ今へ至る • 技術 – 大昔はC,C++ – 今はJavaな人です。 – PythonやRuby、Haskell、Scalaをかじった Copyright 2010 KLab Inc. All rights reserved. 3
  • 4. Hudson(CIサーバ)に対する誤解 • Java専用CIサーバ? –Java界隈では話題 –LL言語には使えないのでは • インストール面倒? – JavaVMのインストール – Tomcatのインストール – XMLとの戦い – ああ、ヤダヤダ Copyright 2010 KLab Inc. All rights reserved. 4
  • 5. CI (Continuous Integration)サーバ? • 携帯サイト展開後不具合出しは大変 – 結合してから判明する不具合もある – 切羽詰ってるし • 問題は早期に検出したほうがよい – しかも手間なく – 小人さんが自動でやってくれるとうれしいな あ • そんな小人さん – Continuous Integration (継続結合)サーバ Copyright 2010 KLab Inc. All rights reserved. 5
  • 6. Hudsonとは Webアプリ です 複数ジョブ ジョブの状況をお天 を登録でき 気アイコンで表示 る ジョブを自動的に実施して結 果を残してくれる Hudson先生 Copyright 2010 KLab Inc. All rights reserved. 6
  • 7. Hudsonのインストールは簡単だ Copyright 2010 KLab Inc. All rights reserved. 7
  • 8. インストールを簡単にする工夫が • TomcatとかServletコンテナ不要 – ファイルはhudson.warひとつだけ – java -jar hudson.war で起動できる • Winstoneという超小型Servlet Container内包 – Tomcatに組み込むことも可能 • 各種OS向けPackageが用意されている – 佐々木はdebian lennyで使ってみました Copyright 2010 KLab Inc. All rights reserved. 8
  • 9. Windows • JNLP(Java WebStart)経由で動かせる – http://wiki.hudson- ci.org/display/HUDSON/Installing+Hudson+as +a+Windows+service • Windows Serviceとして登録 Copyright 2010 KLab Inc. All rights reserved. 9
  • 10. Debian GNU/Linux (lenny) • debianパッケージとして提供されてる • Hudson配布元を追加 # wget -O - http://hudson-ci.org/debian/hudson-ci.org.key | sudo apt-key add - # vi /etc/apt/sources.list deb http://hudson-ci.org/debian binary/ • インストール # apt-get update # aptiude install openjdk-6-jdk # aptitude install hudson Copyright 2010 KLab Inc. All rights reserved. 10
  • 11. PHP継続プロファイリング環境構築 Copyright 2010 KLab Inc. All rights reserved. 11
  • 12. HudsonはJava専用ではない • 確かにHudsonはjavaで書かれている – shellスクリプト呼べる – LL言語用Pluginもある – 使う上でJavaの知識必須ではない • HudsonのPlugin開発にはJavaの知識必要 • PHP環境向けにセットアップ – Shellスクリプト呼べるのでPHPでも問題ない – 継続プロファイリング環境を構築してみた Copyright 2010 KLab Inc. All rights reserved. 12
  • 13. 継続プロファイリング環境とは • 開発中からプロファイリングを行う • 単体テストと同じ考えで • 継続して行う • 回帰的に行う • 結果を時系列に可視化 • 意義 • 性能問題の早期発見 • 問題の可視化はモチベーションあがる Copyright 2010 KLab Inc. All rights reserved. 13
  • 14. 継続プロファイリング環境 - 構成要素 • Hudson – 今回の主役 • Bazaar – 弊社で使用中の分散SCM (git とか Mercurial の仲間) • XDEBUG – PHP拡張。プロファイリングやコードカバ レージを可能にする。 • webgrind – プロファイル結果web可視化ツール Copyright 2010 KLab Inc. All rights reserved. 14
  • 15. 継続プロファイリング環境 - 構成要素 http://hudson-srv/webgrind bzr push 開発者 自動チェックアウ ト& デブロイ http://scm-svr/~sasaki-k/bzr-repo/ ソースリポジトリを監視 scm-svr hudson-srv Copyright 2010 KLab Inc. All rights reserved. 15
  • 16. 構築手順(1/4) on Debian GNU/Linux (lenny) • PHP / Xdebug拡張 # aptitude install php5-dev # aptitude install php5-mysql # pecl install xdebug • ”You shuld add “extension=xdebug.so” to php.ini” と出 力されるが無視 – 間違いらしいので注意(Xdebug本家サイトより) • 正しくは – zend_extension=“xdebug.soへのフルパス” – /etc/php5/apache2/conf.d/xdebug.iniへ記述 • 有効にするには – xdebug.ini へ xdebug.profiler_enable = 1 を追記 Copyright 2010 KLab Inc. All rights reserved. 16
  • 17. 構築手順(2/4) on Debian GNU/Linux (lenny) • bazaar – CVS、Subversion、gitでもOK – debianで配布されているものは古い – pipで取得 (pip = setuptoolsの後継) # aptitude install python-dev # aptitude install libroot-python-dev # wget http://peak.telecommunity.com/dist/ez_setup.py # python ez_setup.py # easy_install pip # pip install bzr Copyright 2010 KLab Inc. All rights reserved. 17
  • 18. 構築手順(3/4) on Debian GNU/Linux (lenny) • webgrind – Xdebugが出力するcachegrind.outの可視化 – PHPで記述 – http://code.google.com/p/webgrind/ より取得 • DocumentRootの適当な場所へ配置 webgrind自身が プロファイリング されないように # cat .htaccess php_flag xdebug.profiler_enable 0 Copyright 2010 KLab Inc. All rights reserved. 18
  • 19. 構築手順(4/4) on Debian GNU/Linux (lenny) • Hudsonから Bazaarコマンドを呼び出すた め – Hudson Bazaar plugin 必要なpluginにチェック入れて 「インストールボタンクリッ ク」 Copyright 2010 KLab Inc. All rights reserved. 19
  • 20. demo • パフォーマンス問題コードを用意 • 解消されるまでを確認 Copyright 2010 KLab Inc. All rights reserved. 20
  • 21. webgrind これがボトルネックになって いることがわかる 関数単独で要 したコスト 関数呼び出し先も 含んで要したコス ト Copyright 2010 KLab Inc. All rights reserved. 21
  • 22. まとめ • HudsonはJava以外でも使える • Hudson自体のインストールは簡単 – PHP環境の方が大変 • CIをLL言語にも導入してソースの健康維 持を図りましょう やらなきゃ☆Hudson! Copyright 2010 KLab Inc. All rights reserved. 22
  • 23. 参考資料(1/2) • Hudson – http://hudson-ci.org/ • Hudson Debian packages – http://hudson-ci.org/debian/ • Installing Hudson – http://wiki.hudson- ci.org/display/HUDSON/Installing+Hudson • HudsonでPHPのユニットテスト – http://d.hatena.ne.jp/ssogabe/20081102/1225 642743 Copyright 2010 KLab Inc. All rights reserved. 23
  • 24. 参考資料(2/2) • Xdebug – http://xdebug.org/index.php • WebGrind – http://code.google.com/p/webgrind/ • Profiling PHP with Xdebug and Webgrind – http://www.chrisabernethy.com/php-profiling- xdebug-webgrind/ Copyright 2010 KLab Inc. All rights reserved. 24
  • 25. ご静聴ありがとうございました 質問た~~~いむ Copyright 2010 KLab Inc. All rights reserved. 25

×