SlideShare a Scribd company logo
1 of 44
Download to read offline
Salesforce’s Multitenant
Architecture
​ Doug Merrett
​ Principal Enterprise Architect – Asia Pacific
​ dmerrett@salesforce.com
How we do the magic we do…
Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed
or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-
looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any
statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new,
planned, or upgraded services or technology developments and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new
functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our
operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any
litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our
relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our
service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger
enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in
our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter.
These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section
of our Web site.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available
and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features
that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Safe Harbor
Shared services across applications
The Customer Success Platform
APIs
2,700+ Partner Apps
Open Ecosystem
Workflow
Data &
Objects Identity
Fast App Dev & Customization
AnalyticsCollaborationMobile UI
Scalable Metadata Platform
Complete CRM
Trusted Multitenant Cloud
AnalyticsCommunityMarketingServiceSales Apps
Multitenancy
One Cloud with Many Customers
Shared Elastic Services
One Primary Data Store per Production Instance
8K+ Customers per Instance
50+ Production Instances
All data segregated by customer
All operations include Org ID
Disaster Recovery
Per Org encryption keys
What is in an Instance
Pivot
tables
Data tables
Metadata
tables
Shared Database Metadata Cache
Bulk data
processing
Multitenant aware
Query optimizer
Runtime App
Generator
Full text search
engine
Virtual Application Components
Common
Application
Screens
Tenant
Specific
Screens
Objects
(Tables)
What Multitenancy means for Salesforce R&D
No Legacy Teams
Bugs fixed for everyone
One Version
What Multitenancy means for Salesforce R&D
No Legacy Teams
Bugs fixed for everyone
One Version
260K+ of our Tests
Run your tests as well
Automation
What Multitenancy means for Salesforce R&D
No Legacy Teams
Bugs fixed for everyone
One Version
Instance Architecture
260K+ of our Tests
Run your tests as well
Automation
Staggered Releases
Scalability across all sizes
What Multitenancy means for Salesforce R&D
Three major releases per year
Bug fixes every week
Predictability
No Legacy Teams
Bugs fixed for everyone
One Version
Instance Architecture
260K+ of our Tests
Run your tests as well
Automation
Staggered Releases
Scalability across all sizes
What Multitenancy means for Salesforce R&D
Three major releases per year
Bug fixes every week
Predictability
No Legacy Teams
Bugs fixed for everyone
One Version
Instance Architecture
260K+ of our Tests
Run your tests as well
Automation
Staggered Releases
Scalability across all sizes
​ Stateless Appservers
​ Database system of record
​ No Database Definition Language (DDL) at Runtime
​ All tables partitioned by OrgId
​ Smart Primary Keys, Polymorphic Foreign Keys
​ Creative de-normalization and pivoting
​ Use every RDBMS feature & optimization
Key Architectural Principles
Metadata, data, and pivot table structures store data
corresponding to virtual data structures
The Objects table stores metadata about custom objects
(tables)‫‏‬
The Fields table stores metadata about custom fields
(columns)‫‏‬
The Data heap table stores all structured data corresponding
to custom objects
A single slot can store various types of data that originate
from different objects
The Indexes pivot table manages tenant-specific selective
indexes
The UniqueFields pivot table facilitates uniqueness for
custom fields
The Relationships pivot table facilitates referential integrity
and optimizes joins
​ Tables hash partitioned by OrgId
​ Separate connection pools point to physical hosts
​ App tier is also dynamically partitioned by OrgId
​ Distributed metadata cache with transactional invalidation
All data & metadata structures are partitioned to improve
performance and manageability
§  Native Declarative features
§  Bulk Processing
§  The Recycle Bin
§  Full Text Search
§  Smart Bulk Data Manipulation Language (DML)
§  Web Services APIs
Application Framework: a whole lot for free
Force.com’s native Application Framework provides
declarative development, no coding
Validation rules and simple formulas:
Business analysts can “code” these
Not so simple: Rollup-summary fields provide for easy cross-
object summaries
Force.com’s bulk processing optimizations reduce overhead
for data loads
​ Examples:
§  Sort all records by primary key before attempting DML
§  Operate on tables in deterministic order
§  Slot reallocation for field datatype change
§  Deferred calculation for new rollup-summary field
§  Background processing of mass changes
Data definition processing is optimized to avoid performance
hits or concurrency limits
The Recycle Bin: Smart Undeletes
Restore
§  Individual object instances
(records)
§  Related object instances (parent/
child records)
§  Entire fields and objects
(dropped columns and tables)
Secondary Instance
Multitenant Search, anything but simple
Index Backup
Replication
Primary Instance
Multitenancy delivers Blazing Performance
Transactions Per Quarter
234B Transactions in Q2FY16
79% YoY Growth
Average Page Time
208ms Latency in Q2FY16
4% YoY Improvement
API
Web
​ Consistent SQL generation across the application
​ Deep awareness of pivot table structure
•  Flex schema does impose a cost
​ Tenant, user, object, fields statistics are crucial
​ No runaway queries allowed
​ Deep integration with the sharing model
Multitenant Query Optimization Principles
Multitenant Query Optimizer
Check user
visibility
Check filer
selectivity
Dynamically
write query
based on pre-
queries
Run Pre-Queries
Execute
optimized
query
user visibility = number of rows user can access
filter selectivity = index corresponding to filter column
Search originates
from API or global
search
return results
The optimizer considers pre-query selectivity measurements
when writing a query
Pre-Query
Selectivity
Measurements
… use of index related to filter.HighHigh
… ordered hash join; drive using Data table.LowHigh
… use of index related to filter.HighLow
… nested loops join; drive using view of rows that the user can see.LowLow
Write final database access query, forcing …
FilterUser
Highly Scalable Multitenant
Architecture
Service isolation and redundant design ensures availability
Highly Scalable Multitenant Architecture
•  Instances
–  Consistent deployment size
–  Easy to scale
–  Repeatable
•  Instance Groups
–  Shared service isolation
within a Data Center
•  Data Centers
–  Consistent for Production
and Disaster Recovery
–  Shared services across data
centers
Data Centre
Shared Services
Instance Group
Shared
Services
Sandbox DR
Instances
Sandbox
Instances
Core DR
Instances
Core
Instances
Instance Group
Shared
Services
Sandbox DR
Instances
Sandbox
Instances
Core DR
Instances
Core
Instances
Data Centre
Shared Services
Instance Group
Shared
Services
Sandbox DR
Instances
Sandbox
Instances
Core DR
Instances
Core
Instances
Instance Group
Shared
Services
Sandbox DR
Instances
Sandbox
Instances
Core DR
Instances
Core
Instances
​ Production cluster capacity
•  7+1 (active + spare) nodes
•  Active Data Guard to local standby
(2 node cluster) for fast data
recovery
​ Data replication to secondary
instance
•  Encrypted block-level replication
•  Enables site switching for disaster
recovery
Redundant Site Design with 4 Online Copies of Data
Today: Reliable Core by Design
Encrypted
Async
ReplicationData Guard
Replication
Primary Instance
Application
Servers
Production
DB Cluster
Standby
DB Cluster
Data Guard
Replication
Application
Servers
Production
DB Cluster
Standby
DB Cluster
Secondary Instance
​ 6+2 Production RAC Cluster
•  2 spare nodes provides additional
DB cluster resilience
​ Data Guard to remote site
•  Hardens remote replication
•  Enables faster site switching
•  Shorter planned and unplanned
maintenance windows
Faster Site Switches
Tomorrow: Enhancing Core Reliability
Encrypted
Async DB
Replication
Data Guard
Replication
Primary Instance
Application
Servers
Production
DB Cluster
Standby
DB Cluster
Data Guard
Replication
Application
Servers
Production
DB Cluster
Standby
DB Cluster
Secondary Instance
4 key methods to enable performance at scale
Adaptive Capacity Planning
​ Horizontally
​ Scaling
​ Scale by adding
additional servers or
storage for each
application
​ Scale by using more
powerful servers
•  More CPU cores
•  Larger memory
​ Continuous Salesforce
application and
database optimizations
​ Regular customer and
partner application
tuning to improve
individual org
performance
​ Vertically
​ Scaling
​ Application and DB
​ Tuning
​ Customer Application
​ Tuning
45% Reduction in
Latency
NA7
Aug 20
NA7
Aug 27
360ms
250ms
140+ Hours
Loading Time
21 Hours
Loading Time
85% Reduction in
Load Time
1 2 3 4
Automatically Done For Customers
48c
48c
64c
64c
Force.com Extras
Apex: Force.com’s procedural frontier
Integer NUM = 10;
Account [] accs;
// Clean up old data
accs = [select id from account where name like 'test%'];
delete accs;
commit;
accs = new Account [NUM];
for (Integer i = 0; i < NUM; i++)
{
accs [i] = new Account (name='test ' + i, outstandingshares__c=i);
}
insert accs;
Contact [] cons = new Contact [0];
for (Account acc : accs)
{
cons.add (new Contact (lastName=acc.name + '1', accountid=acc.id));
cons.add (new Contact (lastName=acc.name + '2', accountid=acc.id));
}
insert cons;
SOQL
Query
Variable
Declaration
Control
Structure
Array
Data
Operation
Commit
Transaction
Apex code is stored as metadata, interpreted at runtime, and
cached for scalability
§  Bulk DML
§  Email and messaging
§  Asynchronous processing (@future)
§  XmlStream / HTTP (RESTful) services classes
§  Declarative exposure as new Web Services
§  Platform Encryption
Apex is deeply integrated with platform features
Share Your Feedback, and Win a GoPro!
3 Earn a GoPro prize entry for
each completed survey
Tap the bell to take a
survey2Enroll in a session1
Understanding the Salesforce Architecture: How We Do the Magic We Do

More Related Content

What's hot

What's hot (20)

Top Benefits of Salesforce in Business
Top Benefits of Salesforce in BusinessTop Benefits of Salesforce in Business
Top Benefits of Salesforce in Business
 
Salesforce Overview For Beginners/Students
Salesforce Overview For Beginners/StudentsSalesforce Overview For Beginners/Students
Salesforce Overview For Beginners/Students
 
Understanding Multitenancy and the Architecture of the Salesforce Platform
Understanding Multitenancy and the Architecture of the Salesforce PlatformUnderstanding Multitenancy and the Architecture of the Salesforce Platform
Understanding Multitenancy and the Architecture of the Salesforce Platform
 
The Salesforce Advantage: Understanding the Why (August 17, 2015)
The Salesforce Advantage: Understanding the Why (August 17, 2015)The Salesforce Advantage: Understanding the Why (August 17, 2015)
The Salesforce Advantage: Understanding the Why (August 17, 2015)
 
Salesforce for Marketing Overview Deck
Salesforce for Marketing Overview DeckSalesforce for Marketing Overview Deck
Salesforce for Marketing Overview Deck
 
Introducing the Salesforce platform
Introducing the Salesforce platformIntroducing the Salesforce platform
Introducing the Salesforce platform
 
Marketing cloud development
Marketing cloud developmentMarketing cloud development
Marketing cloud development
 
Salesforce Online Training
Salesforce Online TrainingSalesforce Online Training
Salesforce Online Training
 
Salesforce Integration
Salesforce IntegrationSalesforce Integration
Salesforce Integration
 
Salesforce Consulting Services
Salesforce Consulting ServicesSalesforce Consulting Services
Salesforce Consulting Services
 
Manage Salesforce Like a Pro with Governance
Manage Salesforce Like a Pro with GovernanceManage Salesforce Like a Pro with Governance
Manage Salesforce Like a Pro with Governance
 
Salesforce integration best practices columbus meetup
Salesforce integration best practices   columbus meetupSalesforce integration best practices   columbus meetup
Salesforce integration best practices columbus meetup
 
Webinar: Take Control of Your Org with Salesforce Optimizer
Webinar: Take Control of Your Org with Salesforce OptimizerWebinar: Take Control of Your Org with Salesforce Optimizer
Webinar: Take Control of Your Org with Salesforce Optimizer
 
Sales Cloud Best Practices
Sales Cloud Best PracticesSales Cloud Best Practices
Sales Cloud Best Practices
 
Microservice-based Architecture on the Salesforce App Cloud
Microservice-based Architecture on the Salesforce App CloudMicroservice-based Architecture on the Salesforce App Cloud
Microservice-based Architecture on the Salesforce App Cloud
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
 
Decluttering your Salesfroce org
Decluttering your Salesfroce orgDecluttering your Salesfroce org
Decluttering your Salesfroce org
 
Tackling Salesforce Technical Debt
Tackling Salesforce Technical DebtTackling Salesforce Technical Debt
Tackling Salesforce Technical Debt
 
Ivan Gubynskyy Salesforce CRM and Platform Overview
Ivan Gubynskyy Salesforce CRM and Platform OverviewIvan Gubynskyy Salesforce CRM and Platform Overview
Ivan Gubynskyy Salesforce CRM and Platform Overview
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 

Viewers also liked

Flow Presentation vFINAL
Flow Presentation vFINALFlow Presentation vFINAL
Flow Presentation vFINAL
Nick Spencer
 
Kafka Lambda architecture with mirroring
Kafka Lambda architecture with mirroringKafka Lambda architecture with mirroring
Kafka Lambda architecture with mirroring
Anant Rustagi
 
Salesforce presentation for it summit
Salesforce presentation for it summitSalesforce presentation for it summit
Salesforce presentation for it summit
kevin_donovan
 

Viewers also liked (20)

Tips for Studying for your Salesforce Certification
Tips for Studying for your Salesforce CertificationTips for Studying for your Salesforce Certification
Tips for Studying for your Salesforce Certification
 
Enterprise Architecture Salesforce
Enterprise Architecture SalesforceEnterprise Architecture Salesforce
Enterprise Architecture Salesforce
 
Advanced Developer Certification Preparation: Expert Tips
Advanced Developer Certification Preparation: Expert TipsAdvanced Developer Certification Preparation: Expert Tips
Advanced Developer Certification Preparation: Expert Tips
 
How One Billion Salesforce records Can Be Replicated with Minimal API Usage
How One Billion Salesforce records Can Be Replicated with Minimal API UsageHow One Billion Salesforce records Can Be Replicated with Minimal API Usage
How One Billion Salesforce records Can Be Replicated with Minimal API Usage
 
Mds cloud saturday 2015 salesforce intro
Mds cloud saturday 2015 salesforce introMds cloud saturday 2015 salesforce intro
Mds cloud saturday 2015 salesforce intro
 
Salesforce Cloud Security
Salesforce Cloud SecuritySalesforce Cloud Security
Salesforce Cloud Security
 
Intro to Building Mobile Apps with Salesforce1: No Code Required Webinar
Intro to Building Mobile Apps with Salesforce1: No Code Required WebinarIntro to Building Mobile Apps with Salesforce1: No Code Required Webinar
Intro to Building Mobile Apps with Salesforce1: No Code Required Webinar
 
Flow Presentation vFINAL
Flow Presentation vFINALFlow Presentation vFINAL
Flow Presentation vFINAL
 
Cloud flow designer: Salesforce.com
Cloud flow designer: Salesforce.comCloud flow designer: Salesforce.com
Cloud flow designer: Salesforce.com
 
SFDC Visual Flow
SFDC Visual FlowSFDC Visual Flow
SFDC Visual Flow
 
Building Dynamic UI with Visual Workflow Runtime API
Building Dynamic UI with Visual Workflow Runtime APIBuilding Dynamic UI with Visual Workflow Runtime API
Building Dynamic UI with Visual Workflow Runtime API
 
salesforce training
salesforce trainingsalesforce training
salesforce training
 
Real-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stackReal-time personal trainer on the SMACK stack
Real-time personal trainer on the SMACK stack
 
Appirio Lead Generation presentation on Salesforce
Appirio Lead Generation presentation on SalesforceAppirio Lead Generation presentation on Salesforce
Appirio Lead Generation presentation on Salesforce
 
Demystifying salesforce for developers
Demystifying salesforce for developersDemystifying salesforce for developers
Demystifying salesforce for developers
 
Kafka Lambda architecture with mirroring
Kafka Lambda architecture with mirroringKafka Lambda architecture with mirroring
Kafka Lambda architecture with mirroring
 
Extreme Salesforce Data Volumes Webinar
Extreme Salesforce Data Volumes WebinarExtreme Salesforce Data Volumes Webinar
Extreme Salesforce Data Volumes Webinar
 
Salesforce presentation for it summit
Salesforce presentation for it summitSalesforce presentation for it summit
Salesforce presentation for it summit
 
How Apache Kafka is transforming Hadoop, Spark and Storm
How Apache Kafka is transforming Hadoop, Spark and StormHow Apache Kafka is transforming Hadoop, Spark and Storm
How Apache Kafka is transforming Hadoop, Spark and Storm
 
Large volume data analysis on the Typesafe Reactive Platform - Big Data Scala...
Large volume data analysis on the Typesafe Reactive Platform - Big Data Scala...Large volume data analysis on the Typesafe Reactive Platform - Big Data Scala...
Large volume data analysis on the Typesafe Reactive Platform - Big Data Scala...
 

Similar to Understanding the Salesforce Architecture: How We Do the Magic We Do

Integration Strategies in a SaaS Environment
Integration Strategies in a SaaS EnvironmentIntegration Strategies in a SaaS Environment
Integration Strategies in a SaaS Environment
dreamforce2006
 
Peter Coffee on Cloud Transformation
Peter Coffee on Cloud TransformationPeter Coffee on Cloud Transformation
Peter Coffee on Cloud Transformation
Peter Coffee
 
Building Command-line Tools with the Tooling API
Building Command-line Tools with the Tooling APIBuilding Command-line Tools with the Tooling API
Building Command-line Tools with the Tooling API
Jeff Douglas
 
The Mystery Is Solved Demystifying Integrations
The Mystery Is Solved Demystifying IntegrationsThe Mystery Is Solved Demystifying Integrations
The Mystery Is Solved Demystifying Integrations
dreamforce2006
 

Similar to Understanding the Salesforce Architecture: How We Do the Magic We Do (20)

Salesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We DoSalesforce Multitenant Architecture: How We Do the Magic We Do
Salesforce Multitenant Architecture: How We Do the Magic We Do
 
Manage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance FrameworkManage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance Framework
 
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)
Avoid Growing Pains: Scale Your App for the Enterprise (October 14, 2014)
 
Building einstein analytics apps uk-compressed
Building einstein analytics apps   uk-compressedBuilding einstein analytics apps   uk-compressed
Building einstein analytics apps uk-compressed
 
Designing Custom REST and SOAP Interfaces on Force.com
Designing Custom REST and SOAP Interfaces on Force.comDesigning Custom REST and SOAP Interfaces on Force.com
Designing Custom REST and SOAP Interfaces on Force.com
 
Integration Strategies in a SaaS Environment
Integration Strategies in a SaaS EnvironmentIntegration Strategies in a SaaS Environment
Integration Strategies in a SaaS Environment
 
Designing custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comDesigning custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.com
 
Unlock SAP - Release the potential of your existing backend systems with Sale...
Unlock SAP - Release the potential of your existing backend systems with Sale...Unlock SAP - Release the potential of your existing backend systems with Sale...
Unlock SAP - Release the potential of your existing backend systems with Sale...
 
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible AppsOur API Evolution: From Metadata to Tooling API for Building Incredible Apps
Our API Evolution: From Metadata to Tooling API for Building Incredible Apps
 
Dreamforce 2017: Salesforce DX - an Admin's Perspective
Dreamforce 2017:  Salesforce DX - an Admin's PerspectiveDreamforce 2017:  Salesforce DX - an Admin's Perspective
Dreamforce 2017: Salesforce DX - an Admin's Perspective
 
Coding in the App Cloud
Coding in the App CloudCoding in the App Cloud
Coding in the App Cloud
 
How Salesforce.com R&D Delivers the Cloud
How Salesforce.com R&D Delivers the CloudHow Salesforce.com R&D Delivers the Cloud
How Salesforce.com R&D Delivers the Cloud
 
CloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.comCloudOps evening presentation from Salesforce.com
CloudOps evening presentation from Salesforce.com
 
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief OverviewSalesforce Cloud Infrastructure and Challenges - A Brief Overview
Salesforce Cloud Infrastructure and Challenges - A Brief Overview
 
Peter Coffee on Cloud Transformation
Peter Coffee on Cloud TransformationPeter Coffee on Cloud Transformation
Peter Coffee on Cloud Transformation
 
Org Merge Best Practices
Org Merge Best PracticesOrg Merge Best Practices
Org Merge Best Practices
 
Building Command-line Tools with the Tooling API
Building Command-line Tools with the Tooling APIBuilding Command-line Tools with the Tooling API
Building Command-line Tools with the Tooling API
 
The Mystery Is Solved Demystifying Integrations
The Mystery Is Solved Demystifying IntegrationsThe Mystery Is Solved Demystifying Integrations
The Mystery Is Solved Demystifying Integrations
 
Build Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku ConnectBuild Consumer-Facing Apps with Heroku Connect
Build Consumer-Facing Apps with Heroku Connect
 
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
 

More from Salesforce Developers

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 
Introduction to MuleSoft
Introduction to MuleSoftIntroduction to MuleSoft
Introduction to MuleSoft
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Understanding the Salesforce Architecture: How We Do the Magic We Do

  • 1. Salesforce’s Multitenant Architecture ​ Doug Merrett ​ Principal Enterprise Architect – Asia Pacific ​ dmerrett@salesforce.com How we do the magic we do…
  • 2. Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward- looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements. Safe Harbor
  • 3. Shared services across applications The Customer Success Platform APIs 2,700+ Partner Apps Open Ecosystem Workflow Data & Objects Identity Fast App Dev & Customization AnalyticsCollaborationMobile UI Scalable Metadata Platform Complete CRM Trusted Multitenant Cloud AnalyticsCommunityMarketingServiceSales Apps
  • 5. One Cloud with Many Customers Shared Elastic Services One Primary Data Store per Production Instance 8K+ Customers per Instance 50+ Production Instances All data segregated by customer All operations include Org ID Disaster Recovery Per Org encryption keys
  • 6. What is in an Instance Pivot tables Data tables Metadata tables Shared Database Metadata Cache Bulk data processing Multitenant aware Query optimizer Runtime App Generator Full text search engine Virtual Application Components Common Application Screens Tenant Specific Screens Objects (Tables)
  • 7. What Multitenancy means for Salesforce R&D No Legacy Teams Bugs fixed for everyone One Version
  • 8. What Multitenancy means for Salesforce R&D No Legacy Teams Bugs fixed for everyone One Version 260K+ of our Tests Run your tests as well Automation
  • 9. What Multitenancy means for Salesforce R&D No Legacy Teams Bugs fixed for everyone One Version Instance Architecture 260K+ of our Tests Run your tests as well Automation Staggered Releases Scalability across all sizes
  • 10. What Multitenancy means for Salesforce R&D Three major releases per year Bug fixes every week Predictability No Legacy Teams Bugs fixed for everyone One Version Instance Architecture 260K+ of our Tests Run your tests as well Automation Staggered Releases Scalability across all sizes
  • 11. What Multitenancy means for Salesforce R&D Three major releases per year Bug fixes every week Predictability No Legacy Teams Bugs fixed for everyone One Version Instance Architecture 260K+ of our Tests Run your tests as well Automation Staggered Releases Scalability across all sizes
  • 12. ​ Stateless Appservers ​ Database system of record ​ No Database Definition Language (DDL) at Runtime ​ All tables partitioned by OrgId ​ Smart Primary Keys, Polymorphic Foreign Keys ​ Creative de-normalization and pivoting ​ Use every RDBMS feature & optimization Key Architectural Principles
  • 13. Metadata, data, and pivot table structures store data corresponding to virtual data structures
  • 14. The Objects table stores metadata about custom objects (tables)‫‏‬
  • 15. The Fields table stores metadata about custom fields (columns)‫‏‬
  • 16. The Data heap table stores all structured data corresponding to custom objects
  • 17. A single slot can store various types of data that originate from different objects
  • 18. The Indexes pivot table manages tenant-specific selective indexes
  • 19. The UniqueFields pivot table facilitates uniqueness for custom fields
  • 20. The Relationships pivot table facilitates referential integrity and optimizes joins
  • 21. ​ Tables hash partitioned by OrgId ​ Separate connection pools point to physical hosts ​ App tier is also dynamically partitioned by OrgId ​ Distributed metadata cache with transactional invalidation All data & metadata structures are partitioned to improve performance and manageability
  • 22. §  Native Declarative features §  Bulk Processing §  The Recycle Bin §  Full Text Search §  Smart Bulk Data Manipulation Language (DML) §  Web Services APIs Application Framework: a whole lot for free
  • 23. Force.com’s native Application Framework provides declarative development, no coding
  • 24. Validation rules and simple formulas: Business analysts can “code” these
  • 25. Not so simple: Rollup-summary fields provide for easy cross- object summaries
  • 26. Force.com’s bulk processing optimizations reduce overhead for data loads
  • 27. ​ Examples: §  Sort all records by primary key before attempting DML §  Operate on tables in deterministic order §  Slot reallocation for field datatype change §  Deferred calculation for new rollup-summary field §  Background processing of mass changes Data definition processing is optimized to avoid performance hits or concurrency limits
  • 28. The Recycle Bin: Smart Undeletes Restore §  Individual object instances (records) §  Related object instances (parent/ child records) §  Entire fields and objects (dropped columns and tables)
  • 29. Secondary Instance Multitenant Search, anything but simple Index Backup Replication Primary Instance
  • 30. Multitenancy delivers Blazing Performance Transactions Per Quarter 234B Transactions in Q2FY16 79% YoY Growth Average Page Time 208ms Latency in Q2FY16 4% YoY Improvement API Web
  • 31. ​ Consistent SQL generation across the application ​ Deep awareness of pivot table structure •  Flex schema does impose a cost ​ Tenant, user, object, fields statistics are crucial ​ No runaway queries allowed ​ Deep integration with the sharing model Multitenant Query Optimization Principles
  • 32. Multitenant Query Optimizer Check user visibility Check filer selectivity Dynamically write query based on pre- queries Run Pre-Queries Execute optimized query user visibility = number of rows user can access filter selectivity = index corresponding to filter column Search originates from API or global search return results
  • 33. The optimizer considers pre-query selectivity measurements when writing a query Pre-Query Selectivity Measurements … use of index related to filter.HighHigh … ordered hash join; drive using Data table.LowHigh … use of index related to filter.HighLow … nested loops join; drive using view of rows that the user can see.LowLow Write final database access query, forcing … FilterUser
  • 35. Service isolation and redundant design ensures availability Highly Scalable Multitenant Architecture •  Instances –  Consistent deployment size –  Easy to scale –  Repeatable •  Instance Groups –  Shared service isolation within a Data Center •  Data Centers –  Consistent for Production and Disaster Recovery –  Shared services across data centers Data Centre Shared Services Instance Group Shared Services Sandbox DR Instances Sandbox Instances Core DR Instances Core Instances Instance Group Shared Services Sandbox DR Instances Sandbox Instances Core DR Instances Core Instances Data Centre Shared Services Instance Group Shared Services Sandbox DR Instances Sandbox Instances Core DR Instances Core Instances Instance Group Shared Services Sandbox DR Instances Sandbox Instances Core DR Instances Core Instances
  • 36. ​ Production cluster capacity •  7+1 (active + spare) nodes •  Active Data Guard to local standby (2 node cluster) for fast data recovery ​ Data replication to secondary instance •  Encrypted block-level replication •  Enables site switching for disaster recovery Redundant Site Design with 4 Online Copies of Data Today: Reliable Core by Design Encrypted Async ReplicationData Guard Replication Primary Instance Application Servers Production DB Cluster Standby DB Cluster Data Guard Replication Application Servers Production DB Cluster Standby DB Cluster Secondary Instance
  • 37. ​ 6+2 Production RAC Cluster •  2 spare nodes provides additional DB cluster resilience ​ Data Guard to remote site •  Hardens remote replication •  Enables faster site switching •  Shorter planned and unplanned maintenance windows Faster Site Switches Tomorrow: Enhancing Core Reliability Encrypted Async DB Replication Data Guard Replication Primary Instance Application Servers Production DB Cluster Standby DB Cluster Data Guard Replication Application Servers Production DB Cluster Standby DB Cluster Secondary Instance
  • 38. 4 key methods to enable performance at scale Adaptive Capacity Planning ​ Horizontally ​ Scaling ​ Scale by adding additional servers or storage for each application ​ Scale by using more powerful servers •  More CPU cores •  Larger memory ​ Continuous Salesforce application and database optimizations ​ Regular customer and partner application tuning to improve individual org performance ​ Vertically ​ Scaling ​ Application and DB ​ Tuning ​ Customer Application ​ Tuning 45% Reduction in Latency NA7 Aug 20 NA7 Aug 27 360ms 250ms 140+ Hours Loading Time 21 Hours Loading Time 85% Reduction in Load Time 1 2 3 4 Automatically Done For Customers 48c 48c 64c 64c
  • 40. Apex: Force.com’s procedural frontier Integer NUM = 10; Account [] accs; // Clean up old data accs = [select id from account where name like 'test%']; delete accs; commit; accs = new Account [NUM]; for (Integer i = 0; i < NUM; i++) { accs [i] = new Account (name='test ' + i, outstandingshares__c=i); } insert accs; Contact [] cons = new Contact [0]; for (Account acc : accs) { cons.add (new Contact (lastName=acc.name + '1', accountid=acc.id)); cons.add (new Contact (lastName=acc.name + '2', accountid=acc.id)); } insert cons; SOQL Query Variable Declaration Control Structure Array Data Operation Commit Transaction
  • 41. Apex code is stored as metadata, interpreted at runtime, and cached for scalability
  • 42. §  Bulk DML §  Email and messaging §  Asynchronous processing (@future) §  XmlStream / HTTP (RESTful) services classes §  Declarative exposure as new Web Services §  Platform Encryption Apex is deeply integrated with platform features
  • 43. Share Your Feedback, and Win a GoPro! 3 Earn a GoPro prize entry for each completed survey Tap the bell to take a survey2Enroll in a session1