Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,397 views

Published on

Published in: Technology
  • Be the first to comment

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

  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 />

×