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
SalesforceArchitectGroupOsaka#14_platform-multitenant-architecture
Search
atomica7sei
May 29, 2023
Technology
0
78
SalesforceArchitectGroupOsaka#14_platform-multitenant-architecture
atomica7sei
May 29, 2023
Tweet
Share
More Decks by atomica7sei
See All by atomica7sei
SalesforceArchitectGroupOsaka#16_Well-Architected_ALM
atomica7sei
0
180
Salesforce World Tour Tokyo 2023秋 振り返り会 for Arch
atomica7sei
0
93
SalesforceArchitectGroup#15_Integration
atomica7sei
0
180
SalesforceArchitectGroupOsaka#13_Sharing_and_Visibility
atomica7sei
0
590
SalesforceArchitectGroupDF22GG
atomica7sei
0
110
SalesforceArchitectGroup#11_Development Lifecycle and Deployment
atomica7sei
0
350
SalesforceArchitecsMeetupOsaka#08Quiz
atomica7sei
0
160
SalesforceArchitectGroup#07_MDM_and_DataModeling
atomica7sei
0
260
SalesforceArchitectGroup#06_Identity and Access Management
atomica7sei
0
170
Other Decks in Technology
See All in Technology
IPUT App Dev. Co. -Overview 2024/4
iputapp
0
120
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
790
【SORACOM UG 東海】あらゆるモノがつながる社会へ、IoT と SORACOM
soracom
PRO
1
140
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
380
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
3.6k
2024春 注目のWeb系 OSS & SaaS 3選
makies
0
170
地理空間データ可視化・解析・活用ソリューション Pacific Spatial Solutions (PSS)
pacificspatialsolutions
0
330
How to Lead? Testimonial of a Lead Android Engineer
oleur
1
110
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
web-application-security
matsuihidetoshi
1
190
生成AIの変革の時代に、直近1年で直面した課題とその解決策
ktc_wada
0
510
推しは推せるときに推せ! プロダクトにフィードバックしていこう
nakasho
0
460
Featured
See All Featured
Designing Experiences People Love
moore
136
23k
Building Adaptive Systems
keathley
32
1.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
KATA
mclloyd
16
12k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
The Invisible Customer
myddelton
114
12k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
46k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
26
2.3k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Designing for humans not robots
tammielis
248
25k
Designing the Hi-DPI Web
ddemaree
276
33k
Transcript
内部プラットフォーム処理
要約 2 • Salesforceプラットフォームの独自の処理アーキテクチャについて述べられている • クエリ ◦ コストベースのクエリオプティマイザーで、マルチテナント仕様および独自テーブル 仕様(MT_DATA等)により、様々な統計情報を駆使 ◦
内部セキュリティ関連テーブル(グループやメンバー、カスタム共有)等も考慮して いる • 検索 ◦ 最適なキャッシュ機構やインデックスでパフォーマンスを上げている • 一括操作 ◦ 一括処理エンジンが効率的なアプローチを取っている [出典]
要約 3 • スキーマの変更 ◦ メタデータ設計が活きている ◦ 全体的なパフォーマンスへの影響を軽減する仕組みがある(積み上げ集計項目を 設定→バックグラウンド処理で反映される) •
マルチテナントの分離と保護 ◦ ガバナ制限による保護 ◦ テストカバレッジを設けることで潜在的なシステム問題を回避する ◦ デプロイのプロセスもメタデータ設計による恩恵を受けている(エラー時のロール バックが容易) ◦ パフォーマンスの分析を行ってフィードバック • 削除、削除取消、ごみ箱 ◦ 15日間は復元可能 ◦ 子レコードも復元、参照関係も復元 [出典]
クエリ 4 [出典] APIやストアドプロシー ジャなどから呼び出され る。 事前クエリを実行。 統計情報を活用。 最適なクエリを構築。 結果を返す。
事前クエリを実行し、その結果に基づき、クエリオプティマイザ-でマルチテナント環境を 想定した最適なデータベースクエリを作成して実行する
クエリ 5 [出典] 事前クエリにおける実行基準 作成されるデータベースアクセスクエリの内容 ユーザのアクセス 権限レベル 絞り込み条件水準 低 低
ネストされたループ結合 ユーザが参照権限を持つ行のビューを使用 低 高 フィルタに関連付けられたインデックスを使用 高 低 順序を指定したハッシュ結合 MT_DATAテーブルを使用 高 高 フィルタに関連付けられたインデックスを使用 事前クエリで現在のユーザのアクセス権限とクエリの絞り込み条件の水準を評価し、その 結果に基づき、データアクセスを要求するデータベースクエリを作成
感想 6 • マーティン・ファウラー氏(アジャイルソフトウェア開発宣言やUML等で知られるソフト ウェア開発者)曰く、アーキテクチャとは「変更するのが難しいもの」 • 初期の段階で行った微妙な選択が今も影響している • Salesforceを利用する顧客はそのアーキテクチャを実際に知る必要はない(車を運 転する人が、車がどうして動いているのか知る必要がないのと同じ)
• ただ、背後にはこうしたアーキテクチャが歴然として存在し、24時間365日、問題の 解決に日々を費やしている素晴らしいSaleforceのエンジニアのチームがいるという こと • あらためてアーキテクチャの重要性に気づく内容だった [出典] https://engineering.salesforce.com/the-architecture-files-f1dfa7a97e77/