Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
m3.comを支える巨神の話 / atlas-in-m3
Search
progrhyme
May 22, 2018
Technology
0
2.1k
m3.comを支える巨神の話 / atlas-in-m3
Healthtech Meetup #1で行ったLT資料です。
progrhyme
May 22, 2018
Tweet
Share
More Decks by progrhyme
See All by progrhyme
shelp - brief introduction
progrhyme
0
66
実践RDBMS〜PostgreSQL編〜
progrhyme
6
130k
Other Decks in Technology
See All in Technology
Cline&CursorによるAIコーディング徹底活用―Live Vibe Coding付き
pharma_x_tech
2
460
MagicPodが描くAIエージェント戦略とソフトウェアテストの未来
magicpod
0
330
激動の一年を通じて見えてきた「技術でリードする」ということ
ktr_0731
8
8.5k
分解し、導き、託す ログラスにおける“技術でリードする” 実践の記録
hryushm
1
610
ワールドカフェ再び、そしてロール・ツール群の開発 / World Café Again, and the Development of a Suite of Roles and Tools
ks91
PRO
0
110
GrafanaをClaude DesktopからMCPで触ってみた
hamadakoji
0
1.2k
正解のない未知(インボイス制度対応)をフルサイクル開発で乗り越える方法 / How to overcome the unknown invoice system with full cycle development
carta_engineering
0
170
Docker Compose で手軽に手元環境を実現する / Simplifying Local Environments with Docker Compose #CinemaDeLT
nabeo
0
280
本番環境への影響リスクが低い Real Application Testing (SQL Performance Analyzer) の実施方法の検討と実践
jri_narita
0
230
Streamlit in Snowflakeで加速する不動産テック企業のデータ活用 @Snowflake WESTユーザー会
yuto16
1
140
開発も運用もビジネス部門も! クラウドで実現する「つらくない」統制とセキュリティ / Effortless Governance and Security Enabled by the Cloud
kanny
1
130
10年もののアプリケーションを運用・開発するアプリケーションエンジニアのDatadog活用術
miyamu
0
130
Featured
See All Featured
Scaling GitHub
holman
459
140k
How to Ace a Technical Interview
jacobian
276
23k
YesSQL, Process and Tooling at Scale
rocio
172
14k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
GraphQLとの向き合い方2022年版
quramy
46
14k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
620
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
810
Side Projects
sachag
453
42k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
Transcript
m3.comを支える巨神の話 2018/5/22 Healthtech Meetup #1 @progrhyme 1
自己紹介 ➢ @progrhyme ◦ https://github.com/progrhyme ◦ https://twitter.com/progrhyme ➢ 職歴 ◦
〜2017 Oct. @DeNA ◦ 〜現在 @M3 ➢ 担当: インフラ 2
m3.com : https://www.m3.com 3 日本最大級の医師プラットフォーム
会員トップページ(ログイン後LP) 4
会員トップページ(ログイン後LP) 5 ヘッダー メガメニュー CA RHS ハイライト イベント枠 コンテンツエリア
m3.com主要機能 ➢ MR君 ➢ Web講演会 ➢ ワンポイントeディテール ➢ QOL君 ➢
m3 Point Club ➢ Select(会員優待) ➢ アンケート ➢ メールマガジン ➢ ニュース ➢ ジャーナル 6 ➢ ストア(EC) ➢ 医師求人 ➢ Doctors Community ➢ カンファレンス ➢ 治験 ➢ G-TAC ➢ ...and so on. 実際は複数のサイトの集合体。 m3.comに登録することで、多くの機 能が利用できる
2015年に大規模リニューアル 7
リニューアル前のシステム構成イメージ 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
リニューアル後のシステム構成イメージ 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化
Atlas導入の効果 ➢ UIパーツの再利用性の向上 ◦ 共通コンポーネントをAtlasで一元管理することで、各サー ビスで再実装が不要に ➢ AtlasのパーツAPIにより、サービス間連携が標準化 された ◦
ビュー要素を提供する側も利用する側も共通のJSON Schemaに沿って開発すれば良い ◦ Octoparts経由でAPIコール 10
Octoparts + HAProxy 11 httpd + Play + HAProxy L
B Octoparts→APIリクエスト時にHAProxyを経 由
Octoparts + HAProxy 12 httpd + Play + HAProxy L
B モノによっては外部からアクセスされるサー ビスだが、遅いリクエストによってhttpdプロセ スを滞留させたくない
現在の課題 ➢ 一部、リニューアル前のページがAtlasに乗っていな い ◦ 技術的負債になっているのでなんとかしたい ➢ Octoparts利用増によるサービス間通信の複雑化 ◦ A
=> B => A のようなフローもあるらしい ◦ トレーシングを強化したい ▪ Zipkinを入れているが、ログ量等の問題で一部に留まっている 13
まとめ ➢ m3.comは歴史のある複雑なシステム ➢ 折を見てアーキテクチャーの刷新を行い、レガシー化 や技術的負債と戦っている ➢ まだまだ課題もある 14
We are hiring! https://jobs.m3.com/engineer/ 15
ご清聴ありがとうございました。 16