Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc. http://www.benday.com http://blog.benday.com About the speaker • Owner, Benjamin Day Consulting, Inc. – Email: benday@benday.com – 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: benday@benday.com – 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