windows azure tour benjamin day benjamin day consulting, inc
TRANSCRIPT
Windows Azure TourBenjamin DayBenjamin Day Consulting, Inc.
http://www.benday.comhttp://blog.benday.com
About the speaker
• Owner, Benjamin Day Consulting, Inc.– Email: [email protected]– Web: http://www.benday.com– Blog: http://blog.benday.com
• Trainer– Visual Studio Team System, Team Foundation Server
• Microsoft MVP for VSTS• Microsoft VSTS/TFS Customer Advisory Council• Microsoft Cloud Services Advisory Group• Leader of Beantown.NET INETA User Group
Agenda
• Big thanks to – Steve Marx @ Microsoft– Manuvir Das @ Microsoft– David Aiken @ Microsoft
• What is Windows Azure?• Develop Your Application• Deploy To Staging and Production • Some Stuff To Think About
The Azure Platform
The Azure Platform
The “cloud” in Cloud Services?
• Think data-center somewhere on the internet• Allows you to run your app• Allows you to read and write data
Ok. So what’s Windows Azure?
• Microsoft’s “cloud”– Every cloud has an Azure lining?
• Custom version of Windows– Optimized for utility computing applications– Always runs virtualized on the Azure Fabric
• Azure Fabric– Runs instances of your apps– Handles “everything”
• Azure Storage• Azure SDK for Visual Studio
Why Azure?
• “I’ve got my awesome data-center so…”• No more worrying about…
– Buying, configuring, maintaining hardware– Buying, configuring, maintaining the operating system – Network infrastructure
• Routers, Switches, Load Balancers– Your data-center’s power and internet connections– Failovers
• Worry less about…– App deployment– Capacity planning
• Focus on writing your app
Simple Scale Out
• Changes in traffic• Need more servers?• Need fewer servers?
I want everything…
• …and it should be easy.• Azure let’s you worry about writing your app• Don’t have to learn a whole bunch of new stuff• Leverage your existing dev skills
Azure: The Developer View
• Write it in Visual Studio– New project types– Debug your code
• .NET, ASP.NET, WCF, IIS7, LINQ• Azure Storage
– Database in the cloud– (with a few caveats)
• Desktop development versions of– Azure Fabric– Azure Storage
Demo 1: Hello, World
Hello, World: Discuss.
• Doesn’t look like much but…– that’s “internet scale”-able– Highly available
• Mostly stuff you already know
Debugging In The Cloud
• We can debug a service in Visual Studio• How do you debug a service that has been deployed?
– Answer: you don’t
• Logging is the answer• RoleManager.WriteToLog(eventLogName, message)
– Event log name values: Error, Information, Warning, Debug, Critical
Demo 1.1: Hello World + Logging
AZURE STORAGE
Azure Storage
• Simple database in the cloud– Tables
• “structured storage”– Blobs– Queues
• You don’t worry about replication• Scales like nobody’s business• Development version
– DevelopmentStorage.exe– Uses SQL Server Express
Table Storage
• Every row has RowKey & Partition Key• RowKey = primary key• PartitionKey
– Helps you tell Azure how to scale your data– You have to think about how you’ll be querying– By State? By Hour? Other?
RowKey PartitionKey FirstName LastName
1 MA Ben Day
2 MA John Malkovich
3 WA Bill Gates
4 CA Steve Jobs
PartitionKey
• Your partitions could be on different servers• Best practice: If you know your PartitionKey, add it to
the WHERE clause• No PartitionKey in the WHERE insane table scans• Recommendation: More partitions is (probably) better
• Think hard about your partition key in the beginning– Else, roll your own re-partitioning
Column Data Types
• Partition key and Row key– String (up to 64KB)
• Other properties– String (up to 64KB)– Binary (up to 64KB)– Bool– DateTime – GUID– Int– Int64– Double
Demo 2: Azure Table Storage
MORE THAN JUST ASPX
Utility Compute without a UI
• Azure uses the concept of “Roles”• Hello, World used a “Web Role”• The other role is a “Worker Role”
– Think windows service in the cloud
Web & Worker
Demo 3: Worker Role and a Queue
• In a web role, create an ASP.NET page– Creates a queue– Writes to a queue– Gets queue depth
• Worker Role– Reads the queue– “Processes” the message
DEPLOYMENT
Demo 4: Deploy To The Cloud
• Change the storage config to use production servers
MISCELLANEOUS
Things to think about
• No foreign keys• No triggers• No stored procedures• In Table storage, strings can only be 64k
– You’ll need to use a mix of Blob and Tables
• Think hard about what config values you put in web.config/app.config vs ServiceConfiguration.cscfg
The Big Questions
• When?– Sometime in 2009
• An actual Service Level Agreement (SLA)• More data-centers
– Now in US only– Global at go-live
• What will it cost?– It will depend on what you use
More resources
• My Blog– http://blog.benday.com– Sample code– More Azure content to come…
• Steve Marx’s blog– http://blog.smarx.com/ – Evangelist for the Azure team
• Azure.com
Final questions?
About the speaker
• Owner, Benjamin Day Consulting, Inc.– Email: [email protected]– Web: http://www.benday.com– Blog: http://blog.benday.com
• Trainer– Visual Studio Team System, Team Foundation Server
• Microsoft MVP for VSTS• Microsoft VSTS/TFS Customer Advisory Council• Microsoft Cloud Services Advisory Group• Leader of Beantown.NET INETA User Group