Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Copyright © 2018 M3, Inc. All Rights Reserved クラウド型電子カルテシステムと Microservices への歩み LT @Microservices Meetup vol.6 加藤 諒(エムスリー株式会社)
Slide 2
Slide 2 text
サービス概要 クラウド型電子カルテシステム - クラウド: AWSを用いて構築(大手はオンプレ) - 電子カルテ: 患者情報の入力・会計機能 - 症状・処方した医薬品名などを入力 - その日に患者が支払う金額を計算 - 医師が過去に入力したデータから 医薬品などを事前にレコメンド => ほぼクリックだけでカルテが完成
Slide 3
Slide 3 text
サービスアーキテクチャ概要 ・レコメンド ・会計 常時接続 WebSocket メイン ロジック クリニック内
Slide 4
Slide 4 text
サービスアーキテクチャ概要 ・レコメンド ・会計 常時接続 WebSocket メイン ロジック クリニック内 よくありがちな web アプリ
Slide 5
Slide 5 text
今日のトピック ・レコメンド ・会計 メイン ロジック HTTP & JSON Faraday gem チョット Microservices な構成が どのように生まれてきたか
Slide 6
Slide 6 text
ファーストリリース前 レコメンド メイン ロジック
Slide 7
Slide 7 text
ファーストリリース前 レコメンド メイン ロジック 一般論: 良いユーザ体験をもたらす レコメンド機能の実装には 十分多量のデータ処理が必要
Slide 8
Slide 8 text
ファーストリリース前 レコメンド メイン ロジック フィールドテストの初期段階で 重すぎる処理・応答速度が発生
Slide 9
Slide 9 text
ファーストリリース前 レコメンド メイン ロジック Thread を利用した 待ち合わせ処理に転換 Rails + Thread の結果 - autoload 壊れる - Concern 壊れる - バージョンアップへの負債
Slide 10
Slide 10 text
ファーストリリース前 レコメンド メイン ロジック レコメンド機能に専念する 別アプリケーションとして 分離することに
Slide 11
Slide 11 text
ファーストリリース前 メイン ロジック HTTP & JSON Faraday gem レコメンド JVM 上でスレッドを使う アプリケーションを Scala + Skinny Framework で実装
Slide 12
Slide 12 text
ファーストリリース メイン ロジック HTTP & JSON Faraday gem レコメンド 速い応答速度・良いユーザ体験 キラー機能・ビジネスにも貢献 良いユーザ体験を実現するため Microservices 的になった
Slide 13
Slide 13 text
会計機能リリース前 メイン ロジック HTTP & JSON Faraday gem レコメンド 会計は「金銭の発生する計算」 - 関数型のアプローチ - 保守性の高い言語・技術を使 いたい - 尖った新技術に挑戦したい
Slide 14
Slide 14 text
会計機能リリース前 メイン ロジック HTTP & JSON Faraday gem レコメンド Scala + Cats による実装を 別エンドポイントとして追加 Cats: Scala の関数型ライブラリ Scala + Cats の開発に関しては同僚が ScalaMatsuri 2018 (3/17 13:15-13:25) で登壇
Slide 15
Slide 15 text
会計機能リリース前 メイン ロジック HTTP & JSON Faraday gem Scala + Cats による実装を 別エンドポイントとして追加 Cats: Scala の関数型ライブラリ Scala + Cats の開発に関しては同僚が ScalaMatsuri 2018 (3/17 13:15-13:25) で登壇 ・レコメンド ・会計
Slide 16
Slide 16 text
会計機能リリース メイン ロジック HTTP & JSON Faraday gem - 保守性の高い言語・技術 - 尖った新技術への挑戦 - 現在も安定稼働 ・レコメンド ・会計 Microservices 的な構成により 技術選択の幅が広がった
Slide 17
Slide 17 text
今後の展望 ・レコメンド ・会計 常時接続 WebSocket メイン ロジック クリニック内 EC2 のコンテナ化(ECS など) - 運用の時間的コスト削減 - ちなみに社内別サービスでは Elastic Beanstalk の運用実績
Slide 18
Slide 18 text
まとめ - Monolithic => チョット Microservices へ - Microservices は原理主義的にこだわらずとも 十分にメリットのある技術選択肢 - Microservices による適材適所の技術選択で 良いユーザ体験・ビジネスにも貢献 - Microservices によりエンジニアの伸び代が作れる