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
全国タクシーをVB.NetからRuby on Railsに書き換えた話
Search
novless
May 24, 2017
Programming
0
130
全国タクシーをVB.NetからRuby on Railsに書き換えた話
novless
May 24, 2017
Tweet
Share
Other Decks in Programming
See All in Programming
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
8
4k
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
810
Anthropic Cookbook のおすすめレシピ
schroneko
7
750
Git Lint
bkuhlmann
4
750
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
350
Elm Form Validation
bkuhlmann
0
510
What We Can Learn From OSS
inouehi
0
420
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
160
Amazon SQSコンシューマー疎結合への旅 - 出張! #DevelopersIO IT技術ブログの中の人が語る勉強会 #3
quiver
0
220
エンターテイメント業界で利用されるAWS
demuyan
0
210
Rethinking UI building strategies @ SFI 2024
letelete
0
270
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
520
Featured
See All Featured
How to Ace a Technical Interview
jacobian
272
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
354
18k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
A Philosophy of Restraint
colly
196
16k
In The Pink: A Labor of Love
frogandcode
138
21k
Teambox: Starting and Learning
jrom
128
8.4k
Building an army of robots
kneath
300
41k
Code Review Best Practice
trishagee
54
15k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
30
6k
A Tale of Four Properties
chriscoyier
150
22k
Into the Great Unknown - MozCon
thekraken
10
990
4 Signs Your Business is Dying
shpigford
175
21k
Transcript
全国タクシーを VB.NetからRuby on Railsに 書き換えた話 2017/05/23 JapanTaxi株式会社 川原 達也
自己紹介 名前:川原 達也(@Novless) 所属:JapanTaxi株式会社 肩書:プログラマー 在籍期間:1年5ヶ月 特技:擬音語で伝えること(伝わってはいない
JapanTaxi株式会社とは 旧社名:株式会社日交データサービス(2015年8月に社名変更) 設立:1977年8月 事業内容:情報処理サービス業 • 全国タクシーなどのアプリ開発事業 • タクシー会社向け無線システム開発事業 • ドライブレコーダーやタクシーメーターなどのハードウェア開発事業
• コンセプトタクシーなどのメディア事業
全国タクシーとは リリース:2011年12月 ダウンロード:300万DL突破 提携しているタクシー会社:322社 アプリから呼べるタクシー:33,552台 2017年5月時点
抱えていた悩み
• Uberなどのライドシェア勢の台頭 • サーバーのログが数十分後に消える • アラートを検知する仕組みがない • とあるPCからしかデプロイが出来ない • 秘伝のストアド
• 雨が降るとシステムが不安定になる 外部の脅威と内部の弱さ
そうだ! Railsで書き直そう!!
2015年10月にCTOの岩田がJapanTaxiに入社 当時、社内にRails経験者は岩田のみ • エンジニアの採用 ◦ ある程度の技術を担保したい ◦ WEB系のマインドのあるエンジニアを集めたい Railsにした理由
当時の構成 インフラ:Microsoft Azure サーバーOS:Windows Server データベース:Azure SQLServer サーバーサイド言語:VisualBasic WEBフレームワーク:Asp.Net
理想 インフラ:Microsoft Azure → AWS サーバーOS:Windows Server → Amazon Linux
データベース:Azure SQLServer → MySQL(Aurora) サーバーサイド言語:VisualBasic → Ruby WEBフレームワーク:Asp.Net → Ruby on Rails
現実 インフラ:Microsoft Azure サーバーOS:Windows Server → Ubuntu データベース:Azure SQLServer サーバーサイド言語:VisualBasic
→ Ruby と 一部 C# WEBフレームワーク:Asp.Net → Ruby on Rails
出来なかった理由
Auzreからの脱却 Azure独自の機能を利用している • Service Bus ◦ キューイングシステム ◦ タクシー会社のシステムと連携している ◦
Rubyから接続すると工数が足りない ◦ AWSからアクセスできるけどそこまでやる?
Azure SQL Serverから脱却できなかった理由 MS独自の機能を利用している • Membership / Profile クラスの利用 ◦
ユーザー関連のテーブルが別のDBに存在している ◦ パスワードの暗号化方式が不明 ◦ ユーザー情報がバイナリっぽく保存されてる
やったこと
• MacにWindows8.1の仮想環境を構築 ◦ ローカルでの開発は仮想環境のSQLServerに接続する ◦ 今でも新機能の開発時にたまにVBを書く ローカルでの開発環境を構築する
• プロジェクトのメイン業務 ◦ 2,300行を越えるVBと1,400行のストアドと戦う ◦ APIの数は50本ぐらい ◦ Rspecでテストコードも書く VBのコードとストアドの写経
• ログをS3に配置 ◦ NginxのログとRailsのログをS3に置く ▪ 今はAthenaで検索できるようになった ◦ NewRelicとDatadogによる監視 サーバーの監視
やろうとして 出来なかった事
• Azure TrafficManagerやNginxでアクセスを流す ◦ アプリからアクセスされるREST APIは動く ◦ タクシー会社からアクセスされるSOAP APIがセキュリティ 周りで動作せず
◦ 新しいアプリからのみRailsへアクセスさせる 既存のアクセスをRailsに向ける
紆余曲折して、 2016年9月にリリース
正直、まだ終わってません • バッチ処理 • 外部向けAPIの作り直し • 旧システムで動く集計 • Silverlightで作成されたWEBサイト •
アップデートできないアプリ • 新規サービスの開発 • etc...
JapanTaxiでは 旧システムとも仲良くなり たいエンジニアを 募集しています。
ご清聴ありがとうございました