Building (Mobile) Applications with Salesforce1 PlatformPeter Chittum@pchittumSafe HarborSafe 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.Peter ChittumSalesforceDeveloper Evangelist@pchittumWhats OnSalesforce Platform The Big Picture
Build Apps Fast. Build Business Faster.
Multi-Tenancy Greatly Expands Enterprise Cloud Capabilities
Force.com APIsSalesforce1 Mobile AppForce.com PlatformSales CloudService CloudCustomAppApp Exchange
Multi-tenant InfrastructureKey Takeaway: The multi-tenant of Salesforce.com enables a growing range of key customer applications. This started with core CRM and has continued to expand to Service, Marketing and general Platform clouds
Talk Track:Salesforce.com started with CRM and expanded to Service automation, Marketing automation and now is a critical platform for App Exchange partners as well the best platform for customers custom appsThe focus of what we are going to talk about today is the underlying Multi-tenant infrastructure of Salesforce.comThis multi-tenant infrastructure ensures the high performance, availability and security of all of these applications
Multi-Tenant InfrastructureCore Tenets of InfrastructureApplication InnovationPerformance at ScaleAlways OnAvailabilityTrusted Security
Key Takeaway: There are 5 key focus areas for the Salesforce.com Infrastructure leadership, Security, Availability, Performance, Application and Hardware (infrastructure)
Talk Track: There are 5 key areas that I would like to cover with you today, starting with Trusted Security, our Always on Availability, how well we perform at enterprise scale, our industry leading application innovation and finally how we scale the multi-tenant hardware infrastructureSalesforce Security Provides Multi-layer Zones of TrustAdaptive Flexible Security ModelInfrastructure-level SecurityApplication-level SecurityFirewallSSL AcceleratorsWeb/App ServersLoadBalancers
Trusted NetworksAuthentication OptionsField Level SecurityObject Level Security (CRUD)Audit Trail Object History Tracking
Key Takeaway:Salesforce.com provides application level and infrastructure level security in different zones so that customers data is always protected
Talk Track:Salesforce has multiple layered zones of trust both within the application but also within the infrastructure. At the application level there are multiple different levels of access that can be granted starting with the ability to only login from trusted networks, all the way down to very specific field-level security access. And all of this is tracked. You can even set object level history tracking so you can see when individual changes are happening. Within the infrastructure the same is true for the various zones of trust. We have firewalls and access controls at every level of system and at the database layer to get direct access to the systems you have to go through a separate bastion host so direct login to the database servers is prevented. We also encrypt traffic that is flowing between our data centers so that we dont have data open as it travels between primary and backup locations. Another layer of security that we do within the data centers is that bad disks are erased 3 times and then shredded so data can not be recovered from these drives.
Overall site peak day>2 Billion transactions 200 milliseconds average 60% of transactions via API requestsTypically production instance>8,000 Customer Orgs30 App Servers and 8 DB ServersSalesforce.coms Daily PerformanceYesterday - ~2.5 Billion TransactionsKey Takeaway:
Talk Track:July 22nd was the first day that we delivered over 2 Billion transactions per day. Now we are delivering over 2.1B and during the work week averaging over 2B per day.
The infrastructure build out is continuing to enable strong customer transaction and data growth.
3 Releases Per YearAPI backward compatibility ensures ease of deployment45 Major Releases100s of Small Releases YearlyAll Integrations and Customizations Auto-Upgraded6BLines ofApex Code1BAPI CallsPer Day,32 versions12MVisualforce Pages15MCustomDatabaseTables1VersionKey Takeaway:
Salesforce has adaptive models and tools to manage software releases and ensure consistent high quality releasesWhats OnMulti Tenant Architecture
One Cloud with Many Customers
Environment = Tenant = Organization or OrgOne Primary Data Store per Production InstanceAll data segregated by customerAll operations include Org IDMulti Author12Metadata, data, and pivot table structures store data corresponding to virtual data structures
13A simplified look at some key metadata and data tablesNo DDL at runtime!Our flex schema uses clever de-normalization many patents pendingWe add data across tables for reporting (the big grid-like CFDATA tables)But we also have pivoted specialized tablesThe Objects table stores metadata about custom objects (tables)
14Naturally we have our own multi-tenant catalog tables like Oracles ownsystem catalog, but for our own bookkeeping
The definition of our custom objects is one of the most importantmetadata tablesThe Fields table stores metadata about custom fields (columns)
15And we have our own field catalog table our field types are richer thanstandard RDBMS types.
For instance multi-select picklists are stored in a special compact representationCustom Entity Data tableUnstructured at rest, cast to strong types when retrieved
16Massive, massive table wide and deep, billions of rows,partitioned, shared
All flex data stored in varchar columns canonicalforms for data types
ObjId distinguishes different tables for the same tenantThe same physical column is used for different purposesacross tenants and across objects within a tenant
Our query engine emits the proper SQL for all readersand writers of data (e.g. the Api and reporting)A single slot can store various types of data that originate from different objectsData IdOrg IdObject IdNameField0Field1a01dI000000qKJi00D01a01A0001Red20141024a01dI000000qKJj00D01a01A0002Blue20131023a02dl000000prNy00D01a02Fiat12000.00truea02dl000000prNz00D01a02Ford15000.00falsea01dl000000cKSr00D02a01Eiffel Tower DayParisa01dl000000cKSr00D02a01Historic Slough1 HourSlough17Example of a single column
Note that the underlying RDBMS cannot know about this usage.
Small conversion penalty for native data type processing
So how do indexing and statistics work?Whats OnBuilding Apps
Two Approaches to Developing ApplicationsVisualforce PagesVisualforce ComponentsLightning FrameworkApex ControllersApex TriggersMetadata APIREST APIBulk APIFormula FieldsValidation RulesWorkflows and ApprovalsCustom ObjectsCustom FieldsRelationshipsPage LayoutsRecord TypesUser InterfaceBusiness LogicData ModelDeclarative ApproachProgrammatic Approach Copyright 2013 salesforce.com, inc.19Course Title Goes HereSalesforce Entities: SObjects
Entity-Level SecurityField/Column SecurityRecord-Level Security
Mobile App UIDesktop Web UICustomizable UI
REST APISOAP APIBulk APIPush APIApex APINew Entity (Object)Instantly Mobile ReadyInstantly API Enabled for CRUDShow a Custom API
DemoTwo ways to build Mobile Apps