My slides from SharePoint Summit Vancouver 2013 talk.
Learn best practices and patterns to build your next superscalable SharePoint 2013 App. You will see how to pair the power of the browser and the cloud to build a SharePoint app that runs like a cheetah. We will go in depth on how the modern SharePoint 2013 app is build on Windows Azure, demo and learn how to manage the different mechanisms for scaling that are available to us, such as non-relational databases, cache, asynchronous API calls and queuing. You will take away code samples and guidance that will enable you to scale you next SharePoint 2013 app.
10. SharePoint 2013 Application Architecture
www.sharepointsummit.org
SharePoint is now just
another external
system
Mechanisms to
minimize round trips
10
11. SharePoint 2013 Application Architecture
www.sharepointsummit.org
With the cloud, we have
potential for scalability and
high availability
But the architecture must
enable it
(It doesn’t come out of the box)
11
19. Content Delivery Networks (CDN)
www.sharepointsummit.org
Big binary storage close to the user
No need to serve from the cloud
First user pays the “toll”, others get it free
Offload all that you can
Images
Scripts
Media Files
Versioned URLs
25. Waiting in a Queue is Not Bad
www.sharepointsummit.org
Request/Response doesn’t scale well
Web
Back-End
Message Queue
By queuing the requests we have control
To decouple the request and the response
To do retries and accomodate node loss
To throttle the rate of service
To scale up and down depending on the workload
26. Waiting in a Queue is Not Bad
www.sharepointsummit.org
Azure Queues
Low-Level
Pass messages between roles and sites
Fully decoupled R/W operations
Automatic Load Balancing
Azure Service Bus Queues
High-Level
Messaging framework with queues
Publisher-Subscriber
Transactions
26
27. Waiting in a Queue is Not Bad
www.sharepointsummit.org
Azure Queues
Storage
Account
Queue
Submitqueue
my-account
Calc-queue
Message
Joe’s Job
Mary’s Job
Andy’s Job
27
29. Acting Asynchronously
www.sharepointsummit.org
We can optimize the server throughput with
async calls to the next tier
Web Tier
Web Tier
Request 1
Response 1
Request 2
Request 1
Thread
#1
Data
Tier
Response 1
Thread
#1
Request 2
Just got easier in NET 4.5 with async/await
Data
Tier