Slide 1

Slide 1 text

m3.comを支える巨神の話 2018/5/22 Healthtech Meetup #1 @progrhyme 1

Slide 2

Slide 2 text

自己紹介 ➢ @progrhyme ○ https://github.com/progrhyme ○ https://twitter.com/progrhyme ➢ 職歴 ○ 〜2017 Oct. @DeNA ○ 〜現在 @M3 ➢ 担当: インフラ 2

Slide 3

Slide 3 text

m3.com : https://www.m3.com 3 日本最大級の医師プラットフォーム

Slide 4

Slide 4 text

会員トップページ(ログイン後LP) 4

Slide 5

Slide 5 text

会員トップページ(ログイン後LP) 5 ヘッダー メガメニュー CA RHS ハイライト イベント枠 コンテンツエリア

Slide 6

Slide 6 text

m3.com主要機能 ➢ MR君 ➢ Web講演会 ➢ ワンポイントeディテール ➢ QOL君 ➢ m3 Point Club ➢ Select(会員優待) ➢ アンケート ➢ メールマガジン ➢ ニュース ➢ ジャーナル 6 ➢ ストア(EC) ➢ 医師求人 ➢ Doctors Community ➢ カンファレンス ➢ 治験 ➢ G-TAC ➢ ...and so on. 実際は複数のサイトの集合体。 m3.comに登録することで、多くの機 能が利用できる

Slide 7

Slide 7 text

2015年に大規模リニューアル 7

Slide 8

Slide 8 text

リニューアル前のシステム構成イメージ 8 www.m3.com xxx.m3.com mrkun.m3.com httpd + Resin quiz その他 バックエンド Octoparts 問題点: ➢ 複雑なサービス間通信 ➢ ビュー要素を再利用できない ➢ API Aggregator(=Octoparts)はあった が、フル活用できていなかった httpd + Tomcat API Aggregator httpd + Play m3dev/octoparts

Slide 9

Slide 9 text

リニューアル後のシステム構成イメージ 9 www.m3.com mrkun.m3.com Atlas Octoparts Play news quiz その他 バックエンド xxx.m3.com ➢ www.m3.comの新しいフロントエンド ○ 主要な多くの画面でHTML生成を担当 ➢ 全サイトの共通HTMLパーツをAPIとして提供 ○ ヘッダー、フッター、メニュー等 ➢ DBを持たず、Octoparts経由でデータ取得 NEW httpd DB直参照していたものをAPI化

Slide 10

Slide 10 text

Atlas導入の効果 ➢ UIパーツの再利用性の向上 ○ 共通コンポーネントをAtlasで一元管理することで、各サー ビスで再実装が不要に ➢ AtlasのパーツAPIにより、サービス間連携が標準化 された ○ ビュー要素を提供する側も利用する側も共通のJSON Schemaに沿って開発すれば良い ○ Octoparts経由でAPIコール 10

Slide 11

Slide 11 text

Octoparts + HAProxy 11 httpd + Play + HAProxy L B Octoparts→APIリクエスト時にHAProxyを経 由

Slide 12

Slide 12 text

Octoparts + HAProxy 12 httpd + Play + HAProxy L B モノによっては外部からアクセスされるサー ビスだが、遅いリクエストによってhttpdプロセ スを滞留させたくない

Slide 13

Slide 13 text

現在の課題 ➢ 一部、リニューアル前のページがAtlasに乗っていな い ○ 技術的負債になっているのでなんとかしたい ➢ Octoparts利用増によるサービス間通信の複雑化 ○ A => B => A のようなフローもあるらしい ○ トレーシングを強化したい ■ Zipkinを入れているが、ログ量等の問題で一部に留まっている 13

Slide 14

Slide 14 text

まとめ ➢ m3.comは歴史のある複雑なシステム ➢ 折を見てアーキテクチャーの刷新を行い、レガシー化 や技術的負債と戦っている ➢ まだまだ課題もある 14

Slide 15

Slide 15 text

We are hiring! https://jobs.m3.com/engineer/ 15

Slide 16

Slide 16 text

ご清聴ありがとうございました。 16