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