Sandbox Templates allow you to create sandboxes with some, but not all, of your data. They work with both Full sandboxes (released Summer '13) and Partial Data sandboxes (released Winter '14). Sandbox Templates allow you to choose which objects and object data to copy into a new sandbox so you can control it's size and content.Join us to hear the details of how Sandbox Templates work with both Full and Partial Data sandboxes. We'll also discuss the algorithms used to determine what objects get copied when you create a sandbox using Sandbox Templates.
1. Sandbox Templates
Under The Hood
Seth Tager, Salesforce, Lead Member of Technical Staff
John Vogt, Salesforce, Senior Product Manager
2. Safe harbor
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.
7. Sandbox Lineup as of Spring ‘12 Release
Developer
Configuration***
Full
Refresh Interval
1 Day
1 Day
29 Days
Includes Setup
Configuration
Yes
Yes
Yes
Copies Data
Records
None
None
All
Sandbox Size
10MB
(~5,000 records)
500MB
(~250,000 records)
Match Production
*** Configuration is now Developer Pro
8. Sandbox Use Cases – Our Expectations
Use Case
Developer
Build/ Develop
Quality Assurance
✔
✔
Configuratio
n
✔
✔
Data Load/
Integration Tests
✖
✔
✖
Training
✖
✖
✖
✖
✔
✔
✖
✖
✖
✔
✔
✔
UAT
Perf/Load Test
Staging
Full
✖
✖
9. Sandbox Use Cases – Actual Usage
Use Case
Developer
Build/ Develop
Quality Assurance
✔
✔
Configuratio
n
✔
✔
Data Load/
Integration Tests
✖
✖
✔
Training
✖
✖
✖
✖
✖
✖
✖
✖
✔
✔
✔
✔
UAT
Perf/Load Test
Staging
Full
✖
✔
10. Reliance on Full Sandboxes can Decrease Productivity
• Configuration Sandbox is too limited
• Customers try to duplicate their on premise environments
• Full sandbox creation/refresh is slow
• More full sandbox copies causes delays for all customers
• Post Refresh Tasks are Time Consuming
• Drag on development agility
• Project timelines can suffer
• Customer ROI can degrade
11. How do we increase Productivity with Sandboxes?
• Give the User Control over Sandbox Creation
• Improve Sandbox Copy Performance
• Decrease Refresh Interval
12. Product Innovation: Sandbox Templates
• More Control Over Data Copied
• Potential to Improve Copy Performance
• Potential to Decrease Post Refresh Tasks
15. Templates with FULL sandbox
• Spidering
• Master/Detail and lookup relationships
• Feature groups
16. Templates with FULL sandbox
• Spidering master/detail and required lookup relationships
17. Templates with FULL sandbox
• Spidering master/detail and required lookup relationships
18. Templates with FULL sandbox
• Spidering master/detail and required lookup relationships
19. Templates with FULL sandbox
• Feature groups (Predefined for standard objects)
• e.g. Opportunity
•
OpportunityLineItem
•
OpportunityLineItemSchedule
•
OpportunityCompetitor
•
OpportunityTeamMember
•
OpportunityAlert
•
OpportunityUpdateReminder
•
(OpportunityHistory)
20. Product Innovation: Data Sampling
10K
records
Sample up to 10k records per object
Random samples reflect true testing needs to find edge case issues
24. Sampling
• Max rows for all entities
• (Small) Metadata is fully copied
• Cycles not allowed
• Parents first vs children first
• Non-required relationships (e.g. Contact/Acct, Opp/Acct)
• Helper entities (e.g. notes and attachments)
• Handling multiple non-required relationships
42. New Sandbox Lineup & Bundles
Developer
Developer Pro
Partial Copy***
Full
Refresh Interval
1 Day
1 Day
5 Days
29 Days
Includes Setup
Configuration
Yes
Yes
Yes
Yes
Copies Data Records
No
No
Yes
Yes
Sandbox Templates/
Sampling
No & No
No & No
Yes & Yes (10,000
records/object)
Yes & No (Full Data /
Object)
None
5
10
15
200MB
1GB
(~500K records)
5GB
(2.5M records)
Match production
Bundled Developer
Sandboxes
Sandbox Size
***New Product Available in Winter ‘14
43. Sandbox Use Cases
Use Case
Build / Develop
Quality Assurance
Data Load /
Integration Tests
Training
UAT
Performance /
Load Test
Staging
Developer
✔
✔
✖
✖
✖
✖
✖
Developer
Pro
Partial Data
Full
✔
✔
✔
✔
✖
✖
✔
✔
✔
✔
✔
✖
✖
✖
✔
✔
✔
✔
✖
✖
✔
44. Top Feature Requests & Roadmap
• Partial Copy
• Criteria Based Sampling
• Customer Driven Data Requirements
• Sandbox Copy Service
• New Sandbox Copy Architecture – Pilot
• Multi-Instance Queuing Support
How many people in the room have access to a sandbox product? this would be anyone who works in a sandbox or holds the keys to creating them
How many people in the room have the ability to work with more than one type of sandbox?
How many people in the room work with Full sandboxes?
Has anyone created a sandbox template?
Start building features that give the user control over how the sandbox is built
Improve the performance of the sandbox copy
How do we clarify that bullet #1 is a general concept that covers features not yet implemented
Decrease the refresh interval
Show Template Tab
Create Template, describe UI and data relationships
Show how to apply a template to a full sandbox
Explain that a template on Full copies all data for the objects selected
DEMO:
Build new template
Show creation process
Show results of template applied to FULL – (show data and storage usage and compare to prod org)
Let’s say we have an ERD like this…
If we select C in our template…
Both A and B will be included in the template
But if we select B instead…
Then A will still be selected, but C will not.
C, the detail of B, is not selected automatically when you select B
The item listed as “Opportunity” in the template really represents a large number of entities
OpportunityHistory also depends on “Include Object History Data” checkbox when creating a sandbox.
Increase copy performance
Potential to decrease post copy tasks
Allows us to decrease refresh interval
Talk through some basics of what sampling is – 10,000 records per object
Edit the Template, describe ability to re-use template
Show how to apply a template to a partial copy sandbox
Explain that a template on partial copies a sample of the data for the objects selected
It is possible to create cycles of required relationships using lookup relationships
Select parents first
Select children first
Here’s how parents first sampling works
First we select some parents
The parent selection eliminates come children from possible selection.
Select children from remaining set of rows
Copy data to sandbox
In the case where both parent and child has been included in the template the selection process for non-required is the same as in the case of required relationships
Remember: we don’t spider non-required entities
Select some children
Obviously the relationships will no longer exist since parents are not copied
Wind up with only children in sandbox
Similarly, if the parent is selected, but not the child there will be no lookup data in the sandbox
Helper entities, like Attachments, have many different types of parents.
In this case there are attachments pointing to two different types of entities, but only one of those entities is included in the sandbox template.
In this case we only copy attachments that point to other entities that are included in the sandbox template.
When a child has multiple non-required relationships we try to satisfy at least one.
This may not match the semantics of the object.
For example, the semantics might be “if field A points to something then field B must also point to something”
Allow customers to develop faster without needing 5+ Full Sandboxes
Captures new revenue from smaller customers