Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

メドピアの全力Rails化の取り組み晒します!

fukumura
November 25, 2017

 メドピアの全力Rails化の取り組み晒します!

2017/11/25 福岡Ruby会議#02 での発表資料です。
http://regional.rubykaigi.org/fukuoka02/

fukumura

November 25, 2017
Tweet

More Decks by fukumura

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    3 年 横浜市立大学理学部物理学科卒。 年 フジシステムズ(4*FS)入社。 *41のサービス開発。 1FSM、1)1、オレオレ 年 株式会社ミクシィに入社。(1FSM、オレオレ) 'JOE+PCの開発責任者。(1FSM、オレオレ) 年に新規事業室に移り、 新サービスの開発。(1FSM、.PKP、"NPO) 年 メドピア株式会社入社。(1)1、オレオレ) 現在に至る。 メドピア株式会社(2014年東証マザーズに上場) 執⾏役員 CTO 福村彰展
  2. メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    6 Supporting Doctors, Helping Patients. 医師を⽀援すること。そして患者を救うこと。 集合知により医療を再発明する。 Mission Vision
  3. メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    8 医師の知⾒が集まるUGC型サイト 集合知 薬剤評価掲⽰板 FORUM(掲⽰板) FORUM Survey MedPeer朝⽇ニュース 症例相談 (Meet the Experts) 症例検討会 ⼝コミ件数50万件以上。医師同⼠ で薬剤の処⽅実感を⼝コミ共有。 臨床からキャリア、プライベート まで医師同⼠の⾃由な意⾒交換。 3,000件以上の回答が集まる医師 への⼤規模アンケート調査。 450名以上のエキスパートが臨床 の疑問を解決。 朝⽇新聞による全国の医療関連 ニュースを医師向けに配信 有名臨床研修指定病院の症例で、 鑑別診断をトレーニング。
  4. メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    12 2. ⽇本の医師の3⼈に1⼈が会員! ? ? 医師の3⼈に1⼈が会員
  5. メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    13 ? ? 医師の3⼈に1⼈が会員 医療業界へゲームチェ ンジが起こせるプラッ トフォーム 2. ⽇本の医師の3⼈に1⼈が会員!
  6. メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    15 3.ダイナミックな 事業展開! UGC型の医師プラット フォームとシナジー ヘルスケアx医療 ※UGC:ユーザ(医師)が投稿したコンテンツで成⽴する
  7. Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 16

    メドピアってどういう会社? 医師によるオンライン 健康相談プラットフォーム チャットで気軽に相談 テレビ電話でじっくり相談 管理栄養⼠による ⾷事トレーニングサービス 管理栄養⼠が個別カウンセリング 専⽤アプリで 毎⾷アドバイス アプリ⾃動連携の 体重体組成計も販売 昨年、ヘルスケアの会社を2社買収 1社⽬がメディプラット 2社⽬がフィッツプラス(旧クックパッドダイエットラボ)
  8. Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 17

    ⼀緒に働いてくれる⽅ ⼤募集m(_ _)m メドピアってどういう会社?
  9. MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    19 MedPeerは⻑い間 PHPの独⾃フレームワーク 巨⼤です。
  10. MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    20 PHPの独⾃フレームワーク 設計思想が謎。なんでこうなってるのかわからない。 メンテがおいついていない、というかメンテナー不在 CIが回せない・テストない Library周りをいじるのがこわい パフォーマンスがでない・カイゼンしにくい キャッシュ機構が弱い DB周りのパフォーマンス・トランザクションの作り込みが中途半端。 コネクションプーリングない 突然デッドロック発⽣したりする セキュリティ対策にAjax通信が想定されていない 知⾒が秘伝のタレ化しやすい ぐぐっても出てこない 等々
  11. MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    26 内製化したい⼀⽅で スピーディに移⾏PJTを 軌道に乗せたい
  12. MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    27 軌道に乗せるまでの 基盤作り・⽂化作りは パワーがいる
  13. MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    28 将来的には内製化を ⾒据えつつ外部の協⼒を 求めることに!
  14. MedPeerのRails化の話:移⾏ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    34 http://tech.medpeer.co.jp/entry/2017/01/31/004227 テックブログに寄稿しました 結構反響あり、社内でも盛り上がりました。
  15. MedPeerのRails化の話:移⾏ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    35 Ruby環境 PHP環境 nginx db-sync ⼀気に移⾏はしない(危険) • PHP環境と新Ruby環境の並⾏稼動 • 移⾏を機にDB構造を⾒直す • DBはPHP環境をRuby環境へSync • ⽌められないPHPの開発は外部の協⼒!
  16. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    38 初期からCI • RSpec • RuboCop • eslint • sass-lint • haml-lint • brakeman
  17. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    39 • Rails経験者のLGTMがないとマージできないルールに • RailsWayから脱線しないように コードレビューの徹底
  18. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    40 コードレビューの徹底 • RSpecをしっかり書く • テストコード作成分の工数確保 • スペックだけでもレビュー
  19. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    41 http://tech.medpeer.co.jp/entry/2017/05/23/070000 テックブログに寄稿しました すこしずつ知⾒を明⽂化しています
  20. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    42 コードレビューの振り返り会 週1でコードレビュー振り返り会を開発者全員で実施
  21. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    43 「振り返り希望」ラベル コードレビューの振り返り会
  22. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    44 • パトロールしなくても指摘された情報が入ってくる • 同じような指摘ができるようになる • 疑問は積極的に話し合われるので納得感が生まれる • 議事録とるので知見が貯まる • 勉強になる コードレビューの振り返り会
  23. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    46 http://tech.medpeer.co.jp/entry/2017/07/18/064500 テックブログに寄稿しました 5.0から5.1へのアップグレードで⼀番苦労したのは 依存したgemをあげるときの確認でした
  24. MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    47 bundle update 貯めるとつらい 週1回のbundle update の実施
  25. MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    49 指定図書希望者へ会社から支給(未経験者を対象に) • パーフェクトRuby • パーフェクトRuby on Rails • 体系的に学ぶ 安全なWebアプリケーションの作り方 ⼊社前受け⼊れ準備
  26. MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    52 社内勉強会 (輪読会・発表会) • 平⽇週1回1時間確保 • 対象書籍を決め会社から⽀給
  27. MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    53 開発合宿やってます 過去実績 2013年3⽉ 伊東 2013年9⽉ 箱根 2014年2⽉ 伊東 2014年6⽉ 千葉 2015年3⽉ 伊東 2016年1⽉ 熱海 2016年8⽉ 湯河原 2017年3⽉ 湯河原 2017年7⽉ 千葉 2017年11⽉ 群⾺
  28. MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    54 • 平⽇の3⽇間でいきます • 差し⼊れは社⻑からのカンパ!もあります • ネタは • 重要度⾼だけど緊急度が低いタスクだったり • ⼿を出したかった技術をやったり • 来週もあります!(今年3回⽬!) 開発合宿やってます
  29. MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    56 • ⽉1回、エンジニア主体で技術発表会 • ピザ・寿司を頼んでエンジニアでは ない⼈にも聞いてもらってます • エンジニアではない⼈からの発表もあったりします! • ネタは • 気になっている技術だったり • 皆がしらない既存サービスの仕様だったり • 医療関係(診療報酬改定の仕組み)だったり • さまざまです! ランチLT⼤会やってます
  30. 1年間取り組んでの振り返り Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    59 エンジニアが楽しんで 開発できるようになった CI動かしてテストできる! 安⼼! 最新技術に追従できる! たのしい! 情報発信して反応がある! 嬉しい!
  31. 1年間取り組んでの振り返り Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    60 開発スピードがアップ RailsWayに乗ることで 設計等いろいろな⾯で悩まな くなったの⼤きい! 普通の技術を採⽤し、普通に 開発できるようになった!
  32. 1年間取り組んでの振り返り Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    61 http://tech.medpeer.co.jp/entry/2017/10/30/073000 テックブログに寄稿しました Webpackerのような新しい技術もスムーズに導⼊で きるようになりました
  33. 2017/11/25 62 Copyright(C) 2015 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL

    グッドサイクルが回り始めた。DAUが2倍に成⻑! 2016年9⽉期 2017年9⽉期 2018年9⽉期(イメージ) DAU推移 ×2.0 UGCサービスのグッドサイクル 訪問者が 増える コンテンツ が増える サービスの 魅⼒が上がる 投稿が 増える DAU拡⼤ サイクル 1年間取り組んでの振り返り
  34. 1年間取り組んでの振り返り Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    63 PVも3倍に成⻑! 今 MedPeerのPV推移 Rails新サービス 初リリース
  35. (参考)サーバレスポンス Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    64 ⼤幅改善 (データ量等々違うので参考程度) 旧PHP環境 (独自フレームワーク) 新Ruby環境 (Ruby on Rails) 150ms前後 35ms前後
  36. (参考)サーバレスポンス Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    65 ⼤幅改善 (データ量等々違うので参考程度) 旧PHP環境 (独自フレームワーク) 新Ruby環境 (Ruby on Rails) 150ms前後 35ms前後 このギザギザがPHP環境の不安定を物語っている。 新環境の⽅が、PVも瞬間トラフィックも多いです。
  37. MedPeerのRails化のお話:これからの展望 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    68 ⼀気に移⾏するのは⼤変 PHP・Ruby環境の並⾏稼動 まだ並⾏稼動中です (T_T)
  38. MedPeerのRails化のお話:これからの展望 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    69 2017年11⽉現在 • Ruby環境が開発のメインに。 • DBのSyncはさせつつ • 移⾏を加速させる準備中 PHP環境 nginx db-sync Ruby環境
  39. まとめ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    71 まだ移⾏は途中ですが・・・ Rubyに出会い 楽しく・成⻑できる環境を作ることで 結果がつくようになってきた! Rubyでの開発たのしい! サイトも活性化! エンジニア環境へ投資しよう!
  40. おまけ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25

    72 ヘルステックベンチャーなので コロロン⽤意しました ⼿のマッサージにつかってください