モジュールのバージョン管理<br />NAVER JAPAN開発室<br />
JPMC上のプロジェクト数<br />約260個<br />一般プロジェクト数(本番のみ)<br />モジュールプロジェクト数<br />約80個<br />10回以上参照されているモジュール数 23個<br />
実際のバージョン管理経験談<br />
緊急バグが報告されました。<br />サービスAでバグ発見<br />
こう見えるはずなのに<br />
見えていません<br />サービスA<br />
イシュートラッカーに登録<br />YUIの<br />画像ブロックが見えていません。<br />
原因が見つかりました。バグが発生した所は?<br />モジュールB<br />サービスA<br />モジュールC<br />エラー発生<br />
でもモジュールBとモジュールCはサービスAが配信された後も開発の真っ最中。。。<br />
サービスA配信時のタグ<br />サービスA<br />
サービスA配信時のモジュールCバージョン<br />サービスA<br />1.0.16<br />モジュールC<br />モジュールB<br />
配信時のモジュールバージョン<br />エラー<br />開発中<br />1.0.16<br />モジュールC<br />開発中<br />0.8<br />モジュールB<br />バグ発生<br />開発中<br />R2010……<br ...
モジュールCの<br />リリースログ <br />
タギングされている!!<br />
解決プラン<br />エラー<br />1.0.16.1<br />開発中<br />1.0.16<br />モジュールC<br />開発中<br />0.8.1<br />0.8<br />モジュールB<br />バグ修正<br />開発中<...
バグ修正スタート<br />YUIの<br />画像ブロックが見えていません。<br />
モジュールCの   を修正<br />
http://localhost....<br />
Commit<br />
開発サポートシステムの話<br />
SVN Commit<br />TeamCity, Sonar<br />Subversion<br />Developer<br />Unit Tests<br />Build<br />Commit<br />Static Analysis...
TeamCity<br />ユニットテスト<br />ソースコードのビルド及びユニットテスト検証<br />
Sonar<br />潜在的なバグ<br />コーディング規約の違反<br />テストカバレッジ(テストカバー率)<br />-> ソースコードの品質改善<br />
Sonarレポート詳細<br />
System<br />BTS(IT)<br />alpha servers<br />1<br />Developer<br />beta servers<br />2<br />3<br />release servers<br />Sub...
イシュートラッカーと配信環境<br />開発環境<br />alpha<br />QA環境<br />beta<br />本番環境<br />release<br />
本題に戻って<br />モジュールを修正してCommit した後<br />
モジュールCを1.0.16  1.0.16.1バージョンでリリース<br />モジュールC<br />
モジュールC<br />
モジュールC<br />
モジュールC<br />
モジュールB<br />0.8   0.8.1<br />モジュールCの 1.0.16.1バージョンを参照するように修正してCommit<br />モジュールB<br />
モジュールB<br />
モジュールB<br />
サービスAはモジュールBの0.8.1バージョンを参照するように修正してCommit<br />サービスA<br />
サービスAを開発環境に配信<br />サービスA<br />
開発環境に配信<br />YUIの<br />画像ブロックが見えていません。<br />開発環境<br />alpha<br />
http://alpha....<br />サービスA<br />
サービスAをQA環境に配信<br />サービスA<br />
QA環境に配信<br />YUIの<br />画像ブロックが見えていません。<br />QA環境<br />beta<br />
よろしくお願いいたします。<br />
http://beta....<br />サービスA<br />
OK<br />
サービスAを本番環境に配信<br />サービスA<br />
サービスA<br />
配信したバージョンで再起動<br />サービスA<br />
サービスA<br />
http://release....<br />サービスA<br />
イシューの解決<br />YUIの<br />画像ブロックが見えていません。<br />本番環境<br />release<br />
ロールバック<br />サービスA<br />
結論<br />開発サポートシステム<br />より良い品質のソースコードを生み出す<br />イシュートラッカー<br />イシューの進行状況を把握<br />モジュールのバージョン管理<br />問題発生コードを迅速に手に入れ、影響を最小化...
質問<br />
Upcoming SlideShare
Loading in...5
×

ネイバージャパン モジュールのバージョン管理

1,704

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,704
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

ネイバージャパン モジュールのバージョン管理

  1. 1. モジュールのバージョン管理<br />NAVER JAPAN開発室<br />
  2. 2. JPMC上のプロジェクト数<br />約260個<br />一般プロジェクト数(本番のみ)<br />モジュールプロジェクト数<br />約80個<br />10回以上参照されているモジュール数 23個<br />
  3. 3. 実際のバージョン管理経験談<br />
  4. 4. 緊急バグが報告されました。<br />サービスAでバグ発見<br />
  5. 5. こう見えるはずなのに<br />
  6. 6. 見えていません<br />サービスA<br />
  7. 7. イシュートラッカーに登録<br />YUIの<br />画像ブロックが見えていません。<br />
  8. 8. 原因が見つかりました。バグが発生した所は?<br />モジュールB<br />サービスA<br />モジュールC<br />エラー発生<br />
  9. 9. でもモジュールBとモジュールCはサービスAが配信された後も開発の真っ最中。。。<br />
  10. 10. サービスA配信時のタグ<br />サービスA<br />
  11. 11. サービスA配信時のモジュールCバージョン<br />サービスA<br />1.0.16<br />モジュールC<br />モジュールB<br />
  12. 12. 配信時のモジュールバージョン<br />エラー<br />開発中<br />1.0.16<br />モジュールC<br />開発中<br />0.8<br />モジュールB<br />バグ発生<br />開発中<br />R2010……<br />サービスA<br />
  13. 13. モジュールCの<br />リリースログ <br />
  14. 14. タギングされている!!<br />
  15. 15. 解決プラン<br />エラー<br />1.0.16.1<br />開発中<br />1.0.16<br />モジュールC<br />開発中<br />0.8.1<br />0.8<br />モジュールB<br />バグ修正<br />開発中<br />R2010……<br />サービスA<br />
  16. 16. バグ修正スタート<br />YUIの<br />画像ブロックが見えていません。<br />
  17. 17. モジュールCの   を修正<br />
  18. 18. http://localhost....<br />
  19. 19. Commit<br />
  20. 20. 開発サポートシステムの話<br />
  21. 21. SVN Commit<br />TeamCity, Sonar<br />Subversion<br />Developer<br />Unit Tests<br />Build<br />Commit<br />Static Analysis<br />
  22. 22. TeamCity<br />ユニットテスト<br />ソースコードのビルド及びユニットテスト検証<br />
  23. 23. Sonar<br />潜在的なバグ<br />コーディング規約の違反<br />テストカバレッジ(テストカバー率)<br />-> ソースコードの品質改善<br />
  24. 24. Sonarレポート詳細<br />
  25. 25. System<br />BTS(IT)<br />alpha servers<br />1<br />Developer<br />beta servers<br />2<br />3<br />release servers<br />Subversion<br />(SCM)<br />JPMC2(Deploy)<br />Sonar<br />(Static Code Analysis)<br />Archiva<br />(Maven Artifact Repository)<br />TeamCity(CI)<br />
  26. 26. イシュートラッカーと配信環境<br />開発環境<br />alpha<br />QA環境<br />beta<br />本番環境<br />release<br />
  27. 27. 本題に戻って<br />モジュールを修正してCommit した後<br />
  28. 28. モジュールCを1.0.16  1.0.16.1バージョンでリリース<br />モジュールC<br />
  29. 29. モジュールC<br />
  30. 30. モジュールC<br />
  31. 31. モジュールC<br />
  32. 32. モジュールB<br />0.8   0.8.1<br />モジュールCの 1.0.16.1バージョンを参照するように修正してCommit<br />モジュールB<br />
  33. 33. モジュールB<br />
  34. 34. モジュールB<br />
  35. 35. サービスAはモジュールBの0.8.1バージョンを参照するように修正してCommit<br />サービスA<br />
  36. 36. サービスAを開発環境に配信<br />サービスA<br />
  37. 37. 開発環境に配信<br />YUIの<br />画像ブロックが見えていません。<br />開発環境<br />alpha<br />
  38. 38. http://alpha....<br />サービスA<br />
  39. 39. サービスAをQA環境に配信<br />サービスA<br />
  40. 40. QA環境に配信<br />YUIの<br />画像ブロックが見えていません。<br />QA環境<br />beta<br />
  41. 41. よろしくお願いいたします。<br />
  42. 42. http://beta....<br />サービスA<br />
  43. 43. OK<br />
  44. 44. サービスAを本番環境に配信<br />サービスA<br />
  45. 45. サービスA<br />
  46. 46. 配信したバージョンで再起動<br />サービスA<br />
  47. 47. サービスA<br />
  48. 48. http://release....<br />サービスA<br />
  49. 49. イシューの解決<br />YUIの<br />画像ブロックが見えていません。<br />本番環境<br />release<br />
  50. 50. ロールバック<br />サービスA<br />
  51. 51. 結論<br />開発サポートシステム<br />より良い品質のソースコードを生み出す<br />イシュートラッカー<br />イシューの進行状況を把握<br />モジュールのバージョン管理<br />問題発生コードを迅速に手に入れ、影響を最小化して解決<br />
  52. 52. 質問<br />

×