Salesforce.com Girl Geek Dinner

Preview:

DESCRIPTION

Presentation from 28th Bay Area Girl Geek Dinner hosted by salesforce.com on November 1, 2012

Citation preview

Salesforce.com Girl Geek DinnerFollow the conversation at #SFDCggd

A Behind the Scenes Look at the Salesforce ArchitectureJeanine WaltersArchitect

/jeanine.walters

@jeaninesw

in/jeaninesw

* All characters appearing in this work are fictitious. Any resemblance to real persons, living or dead, is purely coincidental.

ReneeDell’s Regional Manager*

Are laptops selling well in the Western United States?

Renee has a question:

Multitenancy: One Cloud with Many Customers

Different Customers Store Different Data

Burberry’s Customer

Data

Your Payroll

Data

Dell’s Product

Data

What type of computer? Server, laptop, etc.

Is this a repeat customer? True or False.

What’s the employee’s deduction amount?

Flex Schema: Everyone’s DataFlex Column: Multiple Data Types

ID Customer Data 1 Data 2 Data N

1000001 Dell Monitor

1000002 Dell Laptop

1000003 Dell Server

1000004 Burberry True

1000005 Burberry False

1000006 Burberry True

1000007 You $190

1000008 You $250

1000009 You $680

Flex Schema: Everyone’s Optimizations

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat toto naturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

Multitenant IndexMultitenant Table

ID Customer Data 2

1000001 Dell Monitor

1000002 Dell Laptop

1000003 Dell Server

1000004 Burberry True

1000005 Burberry False

1000006 Burberry True

1000007 You $190

1000008 You $250

1000009 You $680

Customer Text Number Boolean

Dell Monitor

Dell Laptop

Dell Server

Burberry True

Burberry False

Burberry True

You $190

You $250

You $680

Back to Renee’s Question

Back to Renee’s Question

How do we get her information as

fast as possible?

Dell’s Data

Data Renee can see

Western SalesLaptops sold

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat totonaturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

User VisibilityIndexes

Millions of Opportunities

Data Tables

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat totonaturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

Renee

Laptops

West

Where do we start?

Multitenant Query Optimizer

The Fastest Plan

The Fastest Plan

User Visibility

User Visibility

Data SizeData Size

Index on

Filter?

Index on

Filter?

Run pre-queriesCheck

user VisibilityCheck filter

selectivity

Write query-based on

results of pre-queries

Execute query

User Visibility

# of rows that the user can access

=

Filter Selectivity

How specificis this filter?

=

Multitenant Query Optimizer

SharedVisibility

SharedIndexes

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat totonaturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

ID Data 1 Data 2

10002 unus erat toto naturae

10003 vultus in orbe

10004 quem dixere chaeos

10005 rudis indigestaque

10006 meis perpetuum

10007 deducite temopra

10008 carmen ante

10009 mare et terras

10010 tegit et quod

10011 omnia caelum

10012 unus erat totonaturae

10013 vultus in orbe

10014 quem dixere chaeos

10015 rudis indigestaque

10016 meis perpetuum

10017 deducite temopra

10018 carmen ante

10019 mare et terras

10020 tegit et quod

10021 omnia caelum

10022 unus erat toto naturae

10023 vultus in orbe

10024 quem dixere chaeos

10025 rudis indigestaque

10026 meis perpetuum

10027 deducite temopra

10028 carmen ante

10029 mare et terras

10030 tegit et quod

10031 omnia caelum

10032 unus erat toto naturae

10033 vultus in orbe

Done

Done

GoGo

Multi-tenant Optimizer Statistics

Renee’s Answer

Lots of laptops have sold in the West

Thank you!/jeanine.walters

@jeaninesw

in/jeaninesw

“I hear what you mean…”Product Management as Translation

Susan KimberlinProduct Management Director

@SusanSearchPro

in/susankimberlin

Product Management Goal: Happy Customers

When our customers are successful, our

business is successful

Internal consumers of your work are customers

too

It’s not what they say, it’s what they mean…

Natural Languages are what we use

to speak to one another– The only requirement is mutual

understanding

Code is language too

Everyone has their own language

“I want it to work like Google.”

“I want it to work like Google.”

“What is the algorithm?”

“What is the algorithm?”

“Is it okay if we just do it this way?”

“Is it okay if we just do it this way?”

“This color hurts my eyes.”“This color hurts my eyes.”

“I want this button on the

other side of the page.”

“I want this button on the

other side of the page.”

“It will take me 2 years to build this.”

“It will take me 2 years to build this.”

“If you do X instead, what will you have to drop from your

plan?”

“If you do X instead, what will you have to drop from your

plan?”

“When will we have X?”“When will we have X?”

Tools of the Translation Trade

Solve for the Problem

or Opportunity

Walk in their shoes

ABT – Always Be Translating

Every interaction with customers, internal stakeholders

and your team is an opportunity to gather input and

translate for product decisions!

Thank you!

@SusanSearchPro

in/susankimberlin

Mysti BerryPrincipal Content Strategist

@MystiContent

Individual Contributor as Leader: My First Year

mberry@salesforce.com

Lesson One: It’s different being in front

Scary different

Lesson 1: Bid farewell to “equality”

Leave humor for face-to-face conversations (sad!)

We’re all created equal…but– Perceived rank makes some people timid

– People think differently, act differently, need different things

– Therefore, It’s impossible to overcommunicate

Lesson 2: It’s going to hurt for a while

It’s hard on the ego to no longer be the expert

It takes time to stop trying to fix everything

You have to trust more, do less

At first, neither managers

nor other ICs may know what to do with you

Repeat: It’s impossible to overcommunicate

Lesson 3: Your team is smarter than you are

Connecting people to problems is better than solving

every problem yourself and then telling someone how to

do it

When you ask for help, your team SHINES

Did I mention that it’s impossible to overcommunciate?

Thank you!

@MystiContent

mberry@salesforce.com

Test Automation At ScaleReena MathewPrincipal Architect

How do we scale?

Test Automation at Salesforce addresses scale for– Products

– Releases

– Customers

– Engineers

– Tests

– Systems

Product Suite

Multiple Products and Dependencies

Salesforce Release Cycles

3 Major Releases per Year

– New features and products

– Major architectural enhancements

– Bug fixes and performance enhancements

Weekly Patch & Emergency Releases

2-3 deployments per week on average

Smooth Releases is extremely important

> 7,000 Subscribers

> 30,000 Subscribers

> 10,000 Subscribers

> 5,000 Subscribers

Salesforce R&D

150+ Scrum Teams

Globally Distributed Teams

– 15 Different Locations

Why Test Automation?

Test Automation is what enables us to do frequent releases

without compromising our #1 value - Customer TRUST

Code Check-in Workflow @ Salesforce

PRE-CHECKIN

Automation Tools We Use @ Salesforce

Test Frameworks & Tools

o JUnit

o Selenium (RC, Webdriver)

o HtmlUnit, JSUnit, NUnit

o EasyMock, Mockito

Code Coverage

o Clover, JSCoverage

Static Analysis

o FindBugs

Continuous Integration

o Jenkins

Pre-Checkin SystemKeep the Build Green

Pre-checkin is a remote server that performs a full

build with your change

– Rejects your changelist when the build or tests fail

– Can also run tests selected by engineer

With pre-checkin, we guarantee that the build never

breaks!

Pre-checkin is enforced across all code lines– Salesforce engineers can submit their changes only when pre-

checkin succeeds with their changes

Automation Cloud

App DB

VMs to run tests

App DBApp DB

App DB

App DB

App DBApp DB App DB

App DBApp DB App DB

Test Suite

Test Suite

Test Suite

DB

Queue of VMs for each test suite

VM will pick up the next run when free

Results consolidates in central DB

Behind The Cloud: Infrastructure Support Keep the Automation Infrastructure Green

Multiple Clouds

Private and Public

Clouds

Future: Use jclouds

to work with multiple

clouds

Sauce Labs for

Multiple Browser

and Device Testing

Private Cloud

Private Cloud

Salesforce VM Provisioning Engine

Test Thresholds

For the Automated Test Suites we set very high Test Thresholds– 100% Pass Rate for the basic suites

– 99% for other test suites on the patch and emergency release branches

– Lower thresholds for Major Releases during initial development, thresholds

increase as we get closer to the deployment date

Monitor Test Thresholds consistently, take quick action if they fall

below expectations

Meeting test thresholds is a pre-requisite for deployment

Meeting test thresholds is a pre-requisite for cutting branches

Lock The Line By Team Keep the Test Suites Green

Reminders to teams about high priority test failures

Locks out the teams that are not fixing test failures in a

timely fashion

Keeps the code base clean

Customer Trust - ProdTest Keep the Systems Green

Tests used for sanity testing in Production• Automatically initiated as soon as the deployment is complete

• Used to monitor critical systems using tests

Thank you!

Promoting Good DesignAnna MieritzSr. Manager, User Experience

/anna.mieritz

@smallestgiant

in/annamieritz

Everyone is a designer

Good design solves problems.

You solve problems every day.

You are a designer.

Good design is empathetic

Know your audience

Listen to others’ ideas

Stories sell solutions

Good design has a point of view

Know what problem you’re solving

Clarify & communicate your goals

Keep it simple, make it yours

Good design is persuasive

Get your ideas heard

Show alternatives

Ownership = success?

Don’t forget the pictures

People don’t like to read

If a simple chart, diagram, or wireframe conveys your

idea, use it.

Thank you!/anna.mieritz

@smallestgiant

in/annamieritz

/salesforce

@SFDCtechwomen

salesforce.com/tech