building and maintaining internet scale applications with windows azure web sites
DESCRIPTION
Building and maintaining internet scale applications with Windows Azure Web Sites. Yochay Kiriaty Senior Program Manager [email protected] @yochayk 3-552. Agenda. One ‘marketing’ slide What does it take to run production sites? Development Cycle Monitor & Diagnose Scale. - PowerPoint PPT PresentationTRANSCRIPT
Building and maintaining internet scale applications with Windows Azure Web SitesYochay KiriatySenior Program [email protected]@yochayk3-552
One ‘marketing’ slideWhat does it take to run production sites?Development CycleMonitor & DiagnoseScale
Agenda
Demoing Scale takes time
Scale demos for today
Run the first two demos
I need a volunteer
Scale Type Scale demo Expectations Run @Scale Up Start with a Small Reserved Medium
LargeLinear or close to linear scale
HK
Scale Out 3 Medium Reserved Linear or close to linear scale
East US
Scale Out Start with a Small Reserved 3 Small Linear or close to linear scale
West US
Scale out Manage state in DB Linear or close to linear scale
HK
Windows Azure Web SitesPaaS for the Modern Web
ScalableScale out or up in seconds on a Load Balanced, Always up to date, Global Infrastructure
Ready for BusinessEnterprise Grade Availability with support for SSL and AD
Web hosting your way with choice of language, framework, database, and platform
Flexible
A powerful self service platform for developers
Build itYour favorite language, framework and tools 3rd party componentsTest itFunctional, perf and stressMultiple environment and as close to production as possible Deploy itProduction configuration and secrets Source control integrationMaintain itMonitor, diagnose, and debug
"Anything that can go wrong, will go wrong“
Murphy's law
What does it takes to run a production site?
Many SC optionsPush from cloudCustom deployment scripts
Continues Integration
Demo
Stage / PROD + custom deployment
Go see Cory’s session Continues Integration with Windows Azure Web Sites
tomorrow @ 9:00 (North Hall:131)
Monitoring and DiagnosticsPerformance statisticsCPU Time, # of requests, HTTP status 2xx, 4xx, 5xx, Network, Storage sizeDiagnostics HTTP logs, Filed Request Tracing, Detailed Errors Availabilty with endpoint monitoring ‘Dev Ops’ (bunch of diagnostics tools)Application tracing & log streaming Memory DumpsDiagnostics console New Relic
Demo
Diagnostics Console Application tracing
scalability is the ability of a system (a web site), network, or process to handle a growing amount of work (http traffic) in a capable manner (doesn’t go belly up) or its ability to be enlarged to accommodate that growth
Source: http://en.wikipedia.org/wiki/Scalability
Web Sites Scale = HTTP Throughput
Scaling Options: One or BothScale Up
In Standard tier - increase the size of a reserved instance
Scale Out
In Shared tier - add more instances of your app
In Standard tier – add more reserved instances (VMs)
Scale demos for todayScale Type Scale demo Expectations Run @Scale Up Start with a Small Reserved Medium
LargeLinear or close to linear scale
HK
Scale Out 3 Medium Reserved Linear or close to linear scale
East US
Scale Out Start with a Small Reserved 3 Small Linear or close to linear scale
West US
Scale out Manage state in DB Linear or close to linear scale
HK
Show result of the first two demos
32 bit Vs. 64 bitFor .NET application a gain of ~20% to ~30%Make sure all dependencies support 64 bitNo 64 bit supportphp, Python, node.js
Scale demos for todayScale Type Scale demo Expectations Run @Scale Up Start with a Small Reserved Medium
LargeLinear or close to linear scale
HK
Scale Out 3 Medium Reserved Linear or close to linear scale
East US
Scale Out Start with a Small Reserved 3 Small Linear or close to linear scale
West US
Scale out Manage state in DB Linear or close to linear scale
HK
Start next two demos
Again – a volunteer is required
Cloud First by Design
SQL based configurationDynamic provisioning of sites on demandNetwork Storage (Azure xDrive, SMB, NAS, SAN)Stateless web servers (no synchronization required)Intelligent load balancing
How Does It Work?
MICROSOFT CONF IDENTIAL – INTERNAL ONLY
HTTPSite DB
Site DB
Site DBWebWorke
rWebWorke
rWebWorke
r
Azure LB
Frontend(IIS ARR)
Runtime DB
SQL Azure VHD blobs
Site DB
SQL Azure / MySQL / Mongo
API endpoint
Publish endpoint File Server
WebWorkerSite DB
Site DB
Serving HTTP(s) Traffic – Inactive Site (‘cold’ site)http://site1..../
MICROSOFT CONF IDENTIAL – INTERNAL ONLY
HTTP
Azure LB
Frontend(IIS ARR)
Runtime DB
SQL Azure VHD blobs
SQL Azure
API endpoint
Publish endpoint File Server
Site DB
Serving HTTP(s) Traffic – Inactive Site (‘cold’ site)http://site1..../ WebWorke
rsite1site1
MICROSOFT CONF IDENTIAL – INTERNAL ONLY
HTTPSite DB
Site DB
Site DBWebWorke
rWebWorke
rWebWorke
r
Azure LB Runtime
DBMetering
DBSQL Azure VHD blobs
Site DB
SQL Azure
API endpoint
Publish endpoint File Server
Site DB
Site DB
Serving HTTP(s) Traffic – Active Site (‘hot’ site)http://site1..../
site1
WebWorkerFrontend(IIS ARR)
Scale Out – Things To RememberIs your app stateful? Meet ARR Affinity cookieStateless app running on WAWSSay goodbye to ARR Affinity cookieManage session state (DB, Cache, Azure Storage, Client Cookies, etc…)Manage load across all components Database (SQL-Az, MySQL, Mongo, etc…)Any other Azure or 3rd party component
Deleting Cookiesfunction Delete_Cookie( name, path, domain ) { if ( Get_Cookie( name ) ) document.cookie=name+"="+((path) ? ";path="+path:"")+((domain)?";domain="+domain:"") +
";expires=Thu, 01 Jan 1970 00:00:01 GMT";}
Scale demos for todayScale Type Scale demo Expectations Run @Scale Up Start with a Small Reserved Medium
LargeLinear or close to linear scale
HK
Scale Out 3 Medium Reserved Linear or close to linear scale
East US
Scale Out Start with a Small Reserved 3 Small Linear or close to linear scale
West US
Scale out Manage state in DB Linear or close to linear scale
HK
Show result of last two demos
Optimizing cost
Scale-outScale-up (coming soon)
Auto - Scale
Additional ‘Scale’ Considerations / Topics Cache‘in memory’ (like Memcached) / Distributed (‘velocity’) / As a service Geo – Distributed Traffic ManagerCDNSharding Database (‘manually’ or using DB such as mongo)Traffic (traffic manager) / Advance Load Balancing Any other application related sharding logic
Customer adoption for numbersOver 90K Subscriptions Since June’12
Don’t Try This @ Homehttps://github.com/yochay/waws-sudokutesthttps://github.com/yochay/waws-Leaderboard
http://www.iis.net/downloads/community/2007/05/wcat-63-(x86)
http://blogs.msdn.com/b/windowsazure/ https://twitter.com/yochayk
If you don’t believe me. Try it for yourself
Why Using Windows Azure Web Sites
Best Visual Studio Experience
Web scale world wide
Ready for business
Faster to market
Scalable, secure and flexible platform for building and hosting powerful web applications.
Open and flexible
Additional Azure Web Sites SessionsSession Presenter Description Continuous integration and scripting with Windows Azure Web SitesNorth Hall: 131 June 28, 2013 from 9:00AM to 10:00AM
Cory FowlerLearn about development and deployment automation in WAWS.300 Level
Building and maintaining Internet scale applications with Windows Azure Web SitesNorth Hall: 123June 27, 2013 from 3:30PM to 4:30PM
Yochay Kiriaty Learn about performance and scaling with WAWS
Create connected business applications with Windows Azure WebsitesNorth Hall: 134June 27, 2013 from 5:00PM to 6:00PM
Brady Gaster Learn how to build connected business applications with WAWS
Introduction to Node.js on Windows AzureSouth Hall: East Mezzanine 222 June 27, 2013 from 5:00PM to 6:00PM
Tomasz Janczuk Learn about developing applications using node.js
Advanced Patterns using Windows Azure Web Sites for apps for Office and SharePointNorth Hall: 131June 28, 2013 from 10:30AM to 11:30AM
Brady GasterDonovan Follette
Learn how to integrate WAWS and Office 365
Q&A
[email protected]@yochayk
Evaluate this session
Scan this QR code to evaluate this session and be automatically entered in a drawing to win a prize!
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.