ARCHITECTING APPLICATIONS FOR HIGH SCALABILITY Leveraging the Windows Azure Platform Scott Densmore Sr. Software Development Engineer Microsoft patterns.

Slides:



Advertisements
Similar presentations
Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
Advertisements

Thread blocks Waiting… Thread Context Hosted Compute Blob Storage Blob Storage Hosted Compute.
Mark Simms Principal Program Manager Windows Azure Customer Advisory Team.
“It’s going to take a month to get a proof of concept going.” “I know VMM, but don’t know how it works with SPF and the Portal” “I know Azure, but.
Air and Water Quality Information Scientist Contributed Measurements Government Sponsored Community Input and Ratings Educational Localized in 26.
SharePoint and SQL Server integration Demo: SQL Server Optimizing Configurations SQL Server 2014 for SharePoint 2013 Avoiding ginormous transaction.
CLAIMS BASED IDENTITY Scott Densmore Sr. Software Development Engineer Microsoft patterns & practices.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Overview Of Microsoft New Technology ENTER. Processing....
Wade Wegner Windows Azure Technical Evangelist Microsoft Corporation Windows Azure AppFabric Caching.
ASP.NET Programming with C# and SQL Server First Edition
Creating a SharePoint App with Microsoft Access Services
Virtual techdays INDIA │ august 2010 Building ASP.NET applications using SQL Server Compact Chaitanya Solapurkar │ Partner Technical Consultant,
Hands-On Microsoft Windows Server 2008 Chapter 8 Managing Windows Server 2008 Network Services.
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
WHO WILL BENEFIT FROM THIS TALK TOPICS WHAT YOU’LL LEAVE WITH Web app developers who are already familiar with Windows Azure with scaling needs. Asynchronous.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
Esri UC 2014 | Demo Theater | Using ArcGIS for Server in the Microsoft Azure Cloud Nikhil Shampur.
WINDOWS AZURE STORAGE 11 de Mayo, 2011 Gisela Torres – Windows Azure MVP Aventia-Renacimiento Twitter:
Windows Azure SQL Database and Storage Name Title Organization.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
Components of Windows Azure - more detail. Windows Azure Components Windows Azure PaaS ApplicationsWindows Azure Service Model Runtimes.NET 3.5/4, ASP.NET,
Introduction To Windows Azure Cloud
Gaming across Multiple Devices Patric Boscolo Developer Evangelist Microsoft Deutschland GmbH
Training Workshop Windows Azure Platform. Presentation Outline (hidden slide): Technical Level: 200 Intended Audience: Developers Objectives (what do.
Austin code camp 2010 asp.net apps with azure table storage PRESENTED BY CHANDER SHEKHAR DHALL
Victor Mushkatin, MCSE, MCSD CORPORATION Alexander Zakonov, MCSE, MCSD Stephen Pelletier, MCSE.
WINDOWS AZURE PLATFORM ROADMAP Eric Nelson Slide 1.
SURENDER SARA 10GAS Building Corporate KPI’s
Chapter 6 Server-side Programming: Java Servlets
ArcGIS Server for Administrators
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
Virtual techdays INDIA │ November 2010 AppFabric Cache Jatin Kakkar │ Sr. Program Manager, AppFabric.
Windows Azure Conference 2014 Caching Data in the Cloud with Windows Azure.
Windows Azure. Azure Application platform for the public cloud. Windows Azure is an operating system You can: – build a web application that runs.
Cloud Computing Computer Science Innovations, LLC.
Scalability == Capacity * Density.
Microsoft Cloud Solution.  What is the cloud?  Windows Azure  What services does it offer?  How does it all work?  How to go about using it  Further.
Technology Drill Down: Windows Azure Platform Eric Nelson | ISV Application Architect | Microsoft UK |
Windows Azure and Silverlight: A Match Made For the Web Matthew Kerner Program Manager Windows Azure Fabric Controller 1.
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
WINDOWS PHONE 7 DEVELOPER GUIDE A guide to 3 screens and the cloud Scott Densmore Sr. Software Development Engineer Microsoft patterns & practices.
Introduction to Core Database Concepts Getting started with Databases and Structure Query Language (SQL)
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
NCBI Grid Presentation. NCBI Grid Structure NetCache NetSchedule Load Balancer (LBSM) Load Balancer (LBSM) Worker Nodes CGI Gateway.
Inspirirani ljudima. Ugasite mobitele. Hvala.. Paolo Pialorsi Senior Consultant PiaSys ( Publishing apps for SharePoint 2013 on Microsoft.
Windows Azure and iOS Chris Risner Windows Azure Technical Evangelist Microsoft
WINDOWS AZURE AND THE HYBRID CLOUD. Hybrid Concepts and Cloud Services.
COS312. CLOUD COMPUTING IT as a Service On-PremisesStorageStorage ServersServers NetworkingNetworking O/SO/S MiddlewareMiddleware VirtualizationVirtualization.
MICROSOFT AJAX CDN (CONTENT DELIVERY NETWORK) Make Your ASP.NET site faster to retrieve.
Varnish Cache and its usage in the real world Ivan Chepurnyi Owner EcomDev BV.
Fault – Tolerant Distributed Multimedia Streaming Web Application By Nirvan Sagar – Srishti Ganjoo – Syed Shahbaaz Safir
Building Low Latency Web Applications
Amazon Web Services (aws)
Building Scalable Resilient Websites in Azure
Scalable Web Apps Target this solution to brand leaders responsible for customer engagement and roll-out of global marketing campaigns. Implement scenarios.
Matthew Kerner Principal Program Manager Lead Microsoft Corporation
Advanced Topics in Concurrency and Reactive Programming: Case Study – Google Cluster Majeed Kassis.
Platform as a Service.
Scalable Web Apps Target this solution to brand leaders responsible for customer engagement and roll-out of global marketing campaigns. Implement scenarios.
Utilization of Azure CDN for the large file distribution
What I Learned Making a Global Web App
Windows Azure 講師: 李智樺, Ruddy Lee
Module 1–Windows AppFabric Cache
AWS Cloud Computing Masaki.
Saranya Sriram Developer Evangelist | Microsoft
Developing for Windows Azure
Developing Microsoft Azure Solutions Jump Start
5 Azure Services Every .NET Developer Needs to Know
Building global and highly-available services using Windows Azure
Presentation transcript:

ARCHITECTING APPLICATIONS FOR HIGH SCALABILITY Leveraging the Windows Azure Platform Scott Densmore Sr. Software Development Engineer Microsoft patterns & practices

ABOUT YOU (AN ASSUMPTION) You… are a developer know C# have a basic understanding of Windows Azure

GOALS FOR THIS SESSION Learn what is available in Windows Azure to help you build scalable systems (Re)-Discover helpful design patterns Learn about practical techniques Identify (and avoid) potential problems

TAILSPIN

DEMO TailSpin Surveys

TAKE THE SURVEY

LOCATION Where should my application live?

GEO-LOCATION

WINDOWS AZURE TRAFFIC MANAGER

50ms

50ms 100ms

50ms 100ms 200ms

Load balancing across multiple Hosted Services Integrated in the Windows Azure Platform portal Performance Directs the user to the best / closest deployment Fault Tolerance Redirect traffic to another deployment based on availability Round Robin Traffic routed to deployments based on fixed ratio

WINDOWS AZURE TRAFFIC MANAGER Multiple factors determine DNS resolution Configured by Microsoft Geo-IP mapping Periodic performance measurement Configured by service owner Policy: Performance, Failover, Geo, Ratio Monitoring Currently in CTP

WINDOWS AZURE CDN Integrated with Storage Delivery from Windows Azure Compute instances Https support CTP of Smooth Streaming

LEVERAGING THE CDN

MANAGING CDN CONTENT EXPIRATION Default behavior is to fetch once and cache for up to 72 hrs Modify cache control blob header to control the TTL x-ms-blob-cache-control: public, max- age= Think hours, days or weeks Higher numbers reduce cost and latency via CDN & downstream caches

MANAGING CDN CONTENT EXPIRATION Enables easy rollback and A/B testing Use versioned URLs to expire content on- demand logo png logo png logo png logo png

IDENTITY Who is using my application?

IDENTITY

SHARED ACCESS SIGNATURES Provide direct access to content Can be time-bound or revoked on demand Also works for write access (e.g. user-generated content)

SHARED ACCESS SIGNATURES Hosted Compute X X Non-public blob (e.g. paid or ad- funded content) Non-public blob (e.g. paid or ad- funded content) 1. “I am Bob & I want X” 2. Service prepares a Shared Access Signature (SAS) to X using the securely stored storage account key 3. Service returns SAS (signed HTTPS URL) 4. Bob uses SAS to access X directly from Blob Storage for reduced latency & compute load

BALANCING LOAD Where is the bottleneck?

USER SESSION Session is not affinitized – Load Balancer Session in Windows Azure Session Providers SQL Azure Table Storage Windows Azure AppFabric Caching JavaScript on the client ViewState (hidden fields)

WINDOWS APPFABRIC CACHING Out of box ASP.NET providers for session state & page output caching Extreme low latency with the local cache Local cache enables you to use spare available memory in your Web tier while the Caching tier gives you a predictable distributed cache

WINDOWS APPFABRIC CACHING Caches any managed object (CLR objects, rows, XML, Binary Data…) Only requirement is that the object should be serializable Easily integrates into existing applications Same managed interfaces as Windows Server AppFabric Caching Secured by the Access Control Service

KEY CACHING PATTERNS Reference Data A version of the authoritative data, refreshed periodically Large number of accesses, mostly read Example – Product catalogs Activity-oriented Data Data generated as part of the app activity, typically logged back to a backend datastore Needs read, write access Example – Shopping cart, Session State Resource-oriented Data Authoritative data, modified by transactions, temporal in nature Needs frequent read, limited write access Example – Flight Inventory, Stock Quotes

PARTITION THE APPLICATION Multiple web sites Choose the right number of instances and instance size Monitor and scale your application without redeploying Use async processing (Worker Roles)

FUNDAMENTAL DESIGN PATTERN

DELAYED PROCESSING

CALCULATING SURVEY RESULTS Two approaches Retrieve all the surveys to date at a fixed time interval, recalculate and then save the summary data over the existing data Retrieve the survey data since the last time the task ran and update the summary results

CALCULATING SURVEY RESULTS

MAP REDUCE ALGORITHM Original concepts come from map and reduce functions used in functional languages (Haskell, F#, Erlang) Parallelize operations on a large dataset and speeds up processing by using multiple compute nodes Dryad is Microsoft’s implementation

DATA STORAGE

TAILSPIN SURVEYS DATA MODEL

SQL AZURE Partition (or shard) your data across databases Spreads load across multiple database instances Avoid hitting database size limits Parallelized queries across more nodes Improved query performance on commodity hardware Partitioning scheme varies per data set

SQL AZURE Hosted Compute Tenant 1 Tenant 3 Tenant 2

TABLE STORAGE Don’t be afraid to de-normalize data Only two indexes in a table Partition Key Row Key They are not really tables, think of them as Entity bags (key / value storage)

PAGING WITH TABLE STORAGE Use the ContinuationToken along with the Take operation in your query The ContinuationToken only accesses the next page of data To implement forward and back you will need a stack of ContinuationTokens

PAGING WITH TABLE STORAGE

TABLE STORAGE BEST PRACTICES Limit large scans and expect continuation tokens for queries that scan Entity Group Transaction - Batch to reduce costs and get transaction semantics Do not reuse DataServiceContext across multiple logical operations Discard DataServiceContext on failures

TABLE STORAGE BEST PRACTICES AddObject/AttachTo can throw exception if entity is already being tracked Query throws an exception if resource does not exist. Use IgnoreResourceNotFoundException

BLOB STORAGE Blobs can be anything Pictures, docs, etc. Html XML JSon objects

BLOB STORAGE

PAGING WITH BLOB STORAGE Each item (survey answer) is stored as a blob (json) in a container A blob is used to maintain a list of the items (survey answers) as they were entered by id Use an inverted tick count to generate the id of the answer to make it unique and ordered

BLOB STORAGE BEST PRACTICES Use parallel block upload count to reduce latency when uploading blob Client Library uses a default of 90s timeout – use size based timeout Snapshots – For block or page reuse, issue block and page uploads in place of UploadXXX methods in Storage Client

BLOB STORAGE BEST PRACTICES Shared Access Signature Use container level policy as it allows revoking permissions Share SAS URLs using https Create new containers for blobs like log files that have retention period Delete logs after 1 month - create new containers every month. Container recreation Garbage collection can take time until which time container with same name cannot be created. Use unique names for containers

RESOURCES Books Products

QUESTIONS? After the session please fulfil the questionnaire. Questionnaires will be sent to you by and will be available in the profile section of the NT Conference website Thank you!