Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc
About the speaker Owner, Benjamin Day Consulting, Inc. – –Web: –Blog: 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 Microsoft –Manuvir Microsoft –David Microsoft What is Windows Azure? Develop Your Application Deploy To Staging and Production Some Stuff To Think About
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? RowKeyPartitionKeyFirstNameLastName 1MABenDay 2MAJohnMalkovich 3WABillGates 4CASteveJobs
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 – –Sample code –More Azure content to come… Steve Marx’s blog – –Evangelist for the Azure team Azure.com
Final questions?
About the speaker Owner, Benjamin Day Consulting, Inc. – –Web: –Blog: 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