Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ClassiのRuby/Railsバージョンアップ始動物語
Search
Shodai Suzuki
October 30, 2019
Business
1
990
ClassiのRuby/Railsバージョンアップ始動物語
ClassiでのRuby/Railsバージョンアップの第一歩を踏み出した時の成功事例
Shodai Suzuki
October 30, 2019
Tweet
Share
More Decks by Shodai Suzuki
See All by Shodai Suzuki
400超Lambda構成アプリケーションの漸進的リアーキテクチャ
soarteclab
1
250
急成長期の品質とスピードを両立するフロントエンド技術基盤
soarteclab
0
1.3k
MOSHでのフロントエンドリアーキテクチャの選定技術の紹介
soarteclab
0
1.1k
Webアプリ開発におけるRDBMS基礎
soarteclab
0
170
Other Decks in Business
See All in Business
営業職/新卒向け会社紹介資料(テックファーム株式会社)
techfirm
1
550
上司と部下の会話に活かすTOCfE
4884biz
0
210
リンクアンドモチベーション 営業コンサルタント向け紹介資料 / Introduction to Link and Motivation for Sales and Consultants
lmi
0
120k
クラスメソッド_営業向け会社紹介資料_202502 / introduction to classmethod for sales
classmethod_jinji
0
920
株式会社Antway 会社紹介資料
antway
0
790
スクラム2年生の私がスクラムを嫌いになったときに考えたこと / What I thought when I hated Scrum
k_takashiro
3
220
2022~2025年の成長戦略(アップデート)
junkiogawa
0
3.7k
アッテル会社紹介資料/culture deck
attelu
10
14k
見積りと提案の力を競う見積りソン/ an estimation-thon to compete on the quality of estimates and proposals
bpstudy
0
270
AmbientNavi_紹介資料.pdf
ambientnavi0329
0
480
IRIAM Culture Deck
iriam
4
100k
生成AIを活用した勉強法 ~電車内でできたAWS Certified AI Practitioner過去問対策~
yuta3110
0
340
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
69
4.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Agile that works and the tools we love
rasmusluckow
328
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
For a Future-Friendly Web
brad_frost
176
9.6k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Building Your Own Lightsaber
phodgson
104
6.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Transcript
ClassiのRuby/Railsバージョン アッププロジェクト始動物語 Shodai Suzuki @SoartecL Meetup for Rails engineers 2019.10.30
Classiとバージョンアップ
Classiとバージョンアップ
Classiとバージョンアップ
アジェンダ • Classiのサービスアーキテクチャ • バージョンアップの課題 • やった事と成功要因 • 成果まとめ •
自己紹介
Classiのサービスアーキテクチャ
Classiサービスアーキテクチャ
Classiサービスアーキテクチャ
Classiサービスアーキテクチャ API API API
Classiサービスアーキテクチャ API API API Auth
Classiサービスアーキテクチャ 画像
バージョンアップの課題
1.アプリケーションの数
アプリケーションの数 API API API Auth
14
アプリケーションの数
2.バージョンの古さ
以前のバージョン Rails: 4.2 Ruby: 2.3
3.classi_coreの存在
classi_coreの存在
classi_coreバンドルアプリ API API API Auth
バージョンアップの課題 1. アプリケーションの数 2. 現行バージョンの古さ 3. classi_coreの存在
ゴール
Rails 5.2.3 Ruby 2.6系
~2020.03
いつ終わるの?見通しが立たない
私の立ち位置 1. Rails自体を知っている 2. Railsバージョンアップ経験有り 3. 社内のRailsアプリ全てにコミット
とりあえず1つやってよう
対象アプリケーションの選定
選定基準 1. テストカバレッジ
選定基準 1. テストカバレッジ 2. ドメインの複雑度 3. 依存gemの数
選定基準 1. テストカバレッジ 2. ドメインの複雑度 3. 依存gemの数
選定基準
成功要因1. いけるいける精神 いけるいける! いけるいける!
成功要因1. いけるいける精神
classi_core統合
classi_core統合 classi_core
classi_core統合
classi_core統合
classi_core統合 • デベロッパーサクセスチーム
成功要因2. 技術的な問題は複数のエンジニアで解決
バージョンアップ
Rails バージョンアップ Ruby 5.2 5.0 4.2 2.3 2.6 2.5 2.4
バージョンアップ
バージョンアップ • デベロッパーサクセスエンジニア • プロダクトマネージャー • ディレクター
品質担保
品質担保 1. 対面でのコードレビュー
品質担保 1. 対面でのコードレビュー 2. QAチームのリグレッションテスト
品質担保 1. 対面でのコードレビュー 2. QAチームのリグレッションテスト 3. カスタマーサクセスチームとテストケース 洗い出し
品質担保 • デベロッパーサクセスエンジニア • プロダクトマネージャー • ディレクター • カスタマーサクセスチーム •
QAチーム
成功要因3. 非エンジニアの理解・協力
成功要因まとめ 1. いけるいける精神 2. 問題は複数のエンジニアで解決 3. 非エンジニア理解・協力
成功要因まとめ 1. いけるいける精神 2. 問題は複数のエンジニアで解決 3. 非エンジニア理解・協力
成功要因まとめ 1. いけるいける精神 2. 問題は複数のエンジニアで解決 3. 非エンジニア理解・協力
成功要因まとめ 1. いけるいける精神 2. 問題は複数のエンジニアで解決 3. 非エンジニア理解・協力
成果
成果
着手からリリースまでの期間
3ヶ月
作業時間
1ヶ月 見積は220日でした
バージョンアップ起因の障害
0件
成果 自信 知見
成果 自信 • 安全なバージョンアップ • 見通しが立てれるように
得たもの 自信 • 安全なバージョンアップ • 見通しが立てれるように 知見 • 技術的な知見 •
プロセスの知見
優秀なエンジニアがどんどん増えた
なので抜けて
CREチーム立ち上げ
CREチーム立ち上げ いけるいける! いけるいける!
自己紹介 • 鈴木翔大 @SoartecL • フリーランスエンジニア • 2018/10~ Classi •
CREチーム • OSSコントリビューター ◦ Rails ◦ RailsGuide ◦ chanko ◦ elasticsearch_dsl
ありがとうございました。
APENDIX
バージョンアップ計画工数
いつ終わるの?見通しが立たない
着手前の概算
13人年
今後の課題
いかに継続的にバージョンアップしていくか? • バージョンの追従は? ◦ 最新リリースバージョン? ◦ 最新の1つ前のバージョン? ◦ リリースバージョンではなく常にmasterを追従する? ▪
https://github.blog/2019-09-09-running-github-on-rails-6-0/ • 品質はどう担保する? ◦ 毎回ユーザーテストをし直す? ◦ テストの範囲は?レベルは? • だれがやる? ◦ 得意な人が集まってやる? ◦ 自動化?