Slide 1

Slide 1 text

福岡RubyKaigi#02 メドピアの全⼒Rails化の取り組み晒します!

Slide 2

Slide 2 text

⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. MedPeerのRails化の話 4. 1年間取り込んでの振り返り 5. これからの展望 6. まとめ

Slide 3

Slide 3 text

⾃⼰紹介 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 福村彰展

Slide 4

Slide 4 text

謝辞 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 4 メドピアもRubyと出会えました

Slide 5

Slide 5 text

⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. MedPeerのRails化の話 4. 1年間取り込んでの振り返り 5. これからの展望 6. まとめ

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 7 医師専⽤メディア運営が メインの会社です

Slide 8

Slide 8 text

メドピアってどういう会社? 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名以上のエキスパートが臨床 の疑問を解決。 朝⽇新聞による全国の医療関連 ニュースを医師向けに配信 有名臨床研修指定病院の症例で、 鑑別診断をトレーニング。

Slide 9

Slide 9 text

メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 9 メドピアの特徴は3つ!

Slide 10

Slide 10 text

メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 10 1. 社⻑が現役の医師!

Slide 11

Slide 11 text

メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 11 医療現場の⼿触り感 1. 社⻑が現役の医師!

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

メドピアってどういう会社? Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 14 3.ダイナミックな 事業展開!

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. MedPeerのRails化の話 4. 1年間取り込んでの振り返り 5. これからの展望 6. まとめ

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 21 つらい

Slide 22

Slide 22 text

MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 22 移⾏だ!

Slide 23

Slide 23 text

MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 23 Rubyスペシャリストで タスクフォース結成

Slide 24

Slide 24 text

MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 24 社内Ruby経験の エンジニア全員ジョイン

Slide 25

Slide 25 text

MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 25 2名(10名中)

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 29 3名

Slide 30

Slide 30 text

MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 30 技術顧問 パーフェクトRuby on Rails 共著の 前島⽒

Slide 31

Slide 31 text

MedPeerのRails化の話:導⼊ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 31 2名+3名+技術顧問で スタート

Slide 32

Slide 32 text

MedPeerのRails化の話:移⾏ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 32 PHP(独⾃)から Ruby(Rails)へ

Slide 33

Slide 33 text

MedPeerのRails化の話:移⾏ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 33 ⼀気に移⾏するのは⼤変 PHP・Ruby環境の並⾏稼動

Slide 34

Slide 34 text

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 テックブログに寄稿しました 結構反響あり、社内でも盛り上がりました。

Slide 35

Slide 35 text

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の開発は外部の協⼒!

Slide 36

Slide 36 text

MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 36 同じ轍は踏まない!

Slide 37

Slide 37 text

MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 37 品質!

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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 テックブログに寄稿しました すこしずつ知⾒を明⽂化しています

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

MedPeerのRails化の話:品質 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 45 bundle update 当番 週1回のbundle update を実施

Slide 46

Slide 46 text

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をあげるときの確認でした

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 48 Ruby未経験者の受け⼊れ 体制も整えていきたい

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 50 勉強会やってます

Slide 51

Slide 51 text

MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 51 社内勉強会 (輪読会・発表会)

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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⽉ 群⾺

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

MedPeerのRails化の話:成⻑環境 Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 55 ランチLT⼤会やってます

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. MedPeerのRails化の話 4. 1年間取り込んでの振り返り 5. これからの展望 6. まとめ

Slide 58

Slide 58 text

1年間取り組んでの振り返り Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 58 Rails使いが成⻑した・増えた

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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のような新しい技術もスムーズに導⼊で きるようになりました

Slide 62

Slide 62 text

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年間取り組んでの振り返り

Slide 63

Slide 63 text

1年間取り組んでの振り返り Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 63 PVも3倍に成⻑! 今 MedPeerのPV推移 Rails新サービス 初リリース

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. MedPeerのRails化の話 4. 1年間取り込んでの振り返り 5. これからの展望 6. まとめ

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

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環境

Slide 70

Slide 70 text

⽬次 1. ⾃⼰紹介 2. メドピアってどういう会社? 3. MedPeerのRails化の話 4. 1年間取り込んでの振り返り 5. これからの展望 6. まとめ

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

おまけ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 72 ヘルステックベンチャーなので コロロン⽤意しました ⼿のマッサージにつかってください

Slide 73

Slide 73 text

まとめ Copyright(C) 2017 ALL RIGHTS RESERVED , MedPeer,Inc. CONFIDENTIAL 2017/11/25 73 ご清聴ありがとうございました!!