ClassiのRuby/Railsバージョンアップ始動物語

49b971542e290b91b53382e8a36aa99b?s=47 Shodai Suzuki
October 30, 2019

 ClassiのRuby/Railsバージョンアップ始動物語

ClassiでのRuby/Railsバージョンアップの第一歩を踏み出した時の成功事例

49b971542e290b91b53382e8a36aa99b?s=128

Shodai Suzuki

October 30, 2019
Tweet

Transcript

  1. ClassiのRuby/Railsバージョン アッププロジェクト始動物語
 Shodai Suzuki @SoartecL
 Meetup for Rails engineers 2019.10.30


  2. Classiとバージョンアップ


  3. Classiとバージョンアップ


  4. Classiとバージョンアップ


  5. アジェンダ
 • Classiのサービスアーキテクチャ • バージョンアップの課題 • やった事と成功要因 • 成果まとめ •

    自己紹介
  6. Classiのサービスアーキテクチャ


  7. Classiサービスアーキテクチャ


  8. Classiサービスアーキテクチャ


  9. Classiサービスアーキテクチャ
 API
 API
 API


  10. Classiサービスアーキテクチャ
 API
 API
 API
 Auth


  11. Classiサービスアーキテクチャ
 画像


  12. バージョンアップの課題


  13. 1.アプリケーションの数


  14. アプリケーションの数
 API
 API
 API
 Auth


  15. 14


  16. アプリケーションの数


  17. 2.バージョンの古さ


  18. 以前のバージョン
 
 Rails: 4.2
 Ruby: 2.3


  19. 3.classi_coreの存在


  20. classi_coreの存在


  21. classi_coreバンドルアプリ
 API
 API
 API
 Auth


  22. バージョンアップの課題
 1. アプリケーションの数
 2. 現行バージョンの古さ
 3. classi_coreの存在
 


  23. ゴール


  24. Rails 5.2.3
 Ruby 2.6系


  25. ~2020.03


  26. いつ終わるの?見通しが立たない


  27. 私の立ち位置
 1. Rails自体を知っている
 2. Railsバージョンアップ経験有り
 3. 社内のRailsアプリ全てにコミット


  28. とりあえず1つやってよう


  29. 対象アプリケーションの選定


  30. 選定基準
 1. テストカバレッジ


  31. 選定基準
 1. テストカバレッジ
 2. ドメインの複雑度
 3. 依存gemの数


  32. 選定基準
 1. テストカバレッジ
 2. ドメインの複雑度
 3. 依存gemの数


  33. 選定基準


  34. 成功要因1. いけるいける精神
 いけるいける!
 いけるいける!


  35. 成功要因1. いけるいける精神


  36. classi_core統合


  37. classi_core統合
 classi_core


  38. classi_core統合


  39. classi_core統合


  40. classi_core統合
 • デベロッパーサクセスチーム


  41. 成功要因2. 技術的な問題は複数のエンジニアで解決


  42. バージョンアップ


  43. Rails
 バージョンアップ
 Ruby
 5.2
 5.0
 4.2
 2.3
 2.6
 2.5
 2.4


  44. バージョンアップ


  45. バージョンアップ
 • デベロッパーサクセスエンジニア
 • プロダクトマネージャー
 • ディレクター


  46. 品質担保


  47. 品質担保
 1. 対面でのコードレビュー


  48. 品質担保
 1. 対面でのコードレビュー
 2. QAチームのリグレッションテスト
 


  49. 品質担保
 1. 対面でのコードレビュー
 2. QAチームのリグレッションテスト
 3. カスタマーサクセスチームとテストケース 洗い出し
 


  50. 品質担保
 • デベロッパーサクセスエンジニア
 • プロダクトマネージャー
 • ディレクター
 • カスタマーサクセスチーム
 •

    QAチーム

  51. 成功要因3. 非エンジニアの理解・協力


  52. 成功要因まとめ
 1. いけるいける精神
 2. 問題は複数のエンジニアで解決
 3. 非エンジニア理解・協力


  53. 成功要因まとめ
 1. いけるいける精神
 2. 問題は複数のエンジニアで解決
 3. 非エンジニア理解・協力


  54. 成功要因まとめ
 1. いけるいける精神
 2. 問題は複数のエンジニアで解決
 3. 非エンジニア理解・協力


  55. 成功要因まとめ
 1. いけるいける精神
 2. 問題は複数のエンジニアで解決
 3. 非エンジニア理解・協力


  56.   成果


  57. 成果


  58. 着手からリリースまでの期間


  59. 3ヶ月


  60. 作業時間


  61. 1ヶ月
 見積は220日でした


  62. バージョンアップ起因の障害


  63. 0件


  64. 成果
 自信
 知見


  65. 成果
 自信
 • 安全なバージョンアップ
 • 見通しが立てれるように


  66. 得たもの
 自信
 • 安全なバージョンアップ
 • 見通しが立てれるように
 知見
 • 技術的な知見
 •

    プロセスの知見

  67. 優秀なエンジニアがどんどん増えた


  68. なので抜けて


  69. CREチーム立ち上げ


  70. CREチーム立ち上げ
 いけるいける!
 いけるいける!


  71. 自己紹介
 • 鈴木翔大 @SoartecL
 • フリーランスエンジニア
 • 2018/10~ Classi
 •

    CREチーム
 • OSSコントリビューター
 ◦ Rails
 ◦ RailsGuide
 ◦ chanko
 ◦ elasticsearch_dsl

  72. ありがとうございました。


  73. APENDIX


  74. バージョンアップ計画工数


  75. いつ終わるの?見通しが立たない


  76. 着手前の概算


  77. 13人年


  78. 今後の課題


  79. いかに継続的にバージョンアップしていくか?
 • バージョンの追従は?
 ◦ 最新リリースバージョン?
 ◦ 最新の1つ前のバージョン?
 ◦ リリースバージョンではなく常にmasterを追従する?
 ▪

    https://github.blog/2019-09-09-running-github-on-rails-6-0/
 • 品質はどう担保する?
 ◦ 毎回ユーザーテストをし直す?
 ◦ テストの範囲は?レベルは?
 • だれがやる?
 ◦ 得意な人が集まってやる?
 ◦ 自動化?