Under the Hood of Sandbox Templates


Published on

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.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 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
  • Under the Hood of Sandbox Templates

    1. 1. Sandbox Templates Under The Hood Seth Tager, Salesforce, Lead Member of Technical Staff John Vogt, Salesforce, Senior Product Manager
    2. 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.
    3. 3. Seth Tager Lead Member of Technical Staff @sethtager
    4. 4. John Vogt Product Manager, Platform
    5. 5. Before we get started…
    6. 6. Why create Sandbox Templates?
    7. 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. 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. 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. 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. 11. How do we increase Productivity with Sandboxes? • Give the User Control over Sandbox Creation • Improve Sandbox Copy Performance • Decrease Refresh Interval
    12. 12. Product Innovation: Sandbox Templates • More Control Over Data Copied • Potential to Improve Copy Performance • Potential to Decrease Post Refresh Tasks
    13. 13. Demonstration: Sandbox Templates with Full Sandbox
    14. 14. “Custom All” Copy Strategy Explained
    15. 15. Templates with FULL sandbox • Spidering • Master/Detail and lookup relationships • Feature groups
    16. 16. Templates with FULL sandbox • Spidering master/detail and required lookup relationships
    17. 17. Templates with FULL sandbox • Spidering master/detail and required lookup relationships
    18. 18. Templates with FULL sandbox • Spidering master/detail and required lookup relationships
    19. 19. Templates with FULL sandbox • Feature groups (Predefined for standard objects) • e.g. Opportunity • OpportunityLineItem • OpportunityLineItemSchedule • OpportunityCompetitor • OpportunityTeamMember • OpportunityAlert • OpportunityUpdateReminder • (OpportunityHistory)
    20. 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
    21. 21. Demonstration: Sandbox Templates with Partial Copy Sandbox
    22. 22. “Custom Sampled” Copy Strategy Explained
    23. 23. Templates with partial copy • Custom Sampled • Spidering • And Sampling
    24. 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
    25. 25. Sampling • Cycles
    26. 26. Sampling: Parents First vs Children First • Parents First
    27. 27. Sampling: Parents First vs Children First • Children First
    28. 28. Sampling • Parents First – Select parents
    29. 29. Sampling • Parents First – Narrow the field
    30. 30. Sampling • Parents First – Sample children
    31. 31. Sampling • Parents First – Copy rows
    32. 32. Sampling • Non-required relationships
    33. 33. Sampling • Non-required relationships
    34. 34. Sampling • Non-required relationships
    35. 35. Sampling • Non-required relationships
    36. 36. Sampling • Helper entities
    37. 37. Sampling • Helper entities
    38. 38. Sampling • Multiple Non-Required Relationships
    39. 39. Sampling • Multiple Non-Required Relationships
    40. 40. Sampling • Multiple Non-Required Relationships
    41. 41. Product Line Evolution
    42. 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. 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. 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
    45. 45. John Vogt Seth Tager Senior Product Manager Lead Member of Tech Staff, @sethtager