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.2k
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
67
実践RDBMS〜PostgreSQL編〜
progrhyme
6
130k
Other Decks in Technology
See All in Technology
原則から考える保守しやすいComposable関数設計
moriatsushi
3
500
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
11
4.1k
生成AIでwebアプリケーションを作ってみた
tajimon
2
130
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
190
[TechNight #90-1] 本当に使える?ZDMの新機能を実践検証してみた
oracle4engineer
PRO
3
140
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
170
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
150
Oracle Audit Vault and Database Firewall 20 概要
oracle4engineer
PRO
3
1.6k
20250623 Findy Lunch LT Brown
3150
0
780
ローカルLLMでファインチューニング
knishioka
0
130
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
10
2.9k
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
140
Featured
See All Featured
Done Done
chrislema
184
16k
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Side Projects
sachag
455
42k
Building an army of robots
kneath
306
45k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
How GitHub (no longer) Works
holman
314
140k
Practical Orchestrator
shlominoach
188
11k
BBQ
matthewcrist
89
9.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
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