Eric Nelson
Developer & Platform Group
Microsoft Ltd
eric.nelson@microsoft.com
http://geekswithblogs.net/IUpdateable
http:...
Cloud
  101
  Microsoft and Cloud
  Introduce Azure Services Platform

Windows Azure
  Web Role
  Worker Role

Storage in ...
Cloud Computing
  Run/Store stuff in the cloud -
    Somebody else has the data center/headaches 
Infrastructure as a Ser...
SQL Server Data Services (SSDS) – announced
at MIX 08 (March 2008)
  “SQL Server in the cloud”
Azure Services Platform – a...
In 50
minutes
It is an operating system for the cloud
It is designed for utility computing
   Many is better than one
   Loose coupling
...
{ Simple Walkthough }



It is not that hard
A
        B


            D



    C
Default.aspx
     (Take Order + Process
LB




            Order)
public partial class _Default : System.Web.UI.Page
    {
        protected void Button1_Click(object sender,EventArgs e)
 ...
Default.aspx                             Worker.cs
LB




     (Take Order)                          (Process Order)




 ...
public partial class _Default : System.Web.UI.Page
    {
        protected void Button1_Click(object sender,EventArgs e)
 ...
public class WorkerRole : RoleEntryPoint
    {
        public override void Start()
        {

           QueueStorage qSt...
{Revisit, Instances and
Workers}
Web Site
                             Web Site
                            Web Role
                              (ASPX, A...
Web Site
                     Web Site
                  Web Role
                 (ASPX, ASMX, WCF)
               (ASPX,...
Azure Storage   SQL Data Services
Vision




Access



Relational? (today)


Relational?
(tomorrow)
Analogy
Azure Storage         SQL Data Services
Vision                Massively scalable,
                      highly available
 ...
Azure Storage         SQL Data Services
Vision                Massively scalable,   Highly scalable,
                     ...
Azure Storage         SQL Data Services
Vision                Massively scalable,   Highly scalable,
                     ...
Web Site
                                 Web Site
                                Web Role
                              ...
Cloud
  On Premise

   Application
C#, VB, Ruby, PHP etc




     Relational
       Data
        TSQL
Storage that is
  Durable, Scalable, Highly Available, Secure,
  Performant

Rich Data Abstractions
  Service communicatio...
Container                          Blob
          http://<account>.blob.core.windows.net/<container>



Account        Tab...
Account   Container    Blob      Block
                      IMG001.
                        JPG
           pictures
     ...
Massively Scalable Tables
  Billions of entities (rows) and TBs of data
  Automatically scales to thousands of servers
  a...
What tables don’t do        What tables can do

        Not relational                Cheap

 No Referential Integrity ...
Data stored in Tables
   A Table is a set of Entities (rows)
   An Entity is a set of Properties (columns)
Entity has:
   ...
Partition Key   Row Key   Property 3     …..   Property N
Document        Version   Modification         Description
Name ...
Vessel Position Reporting System – SQL Server

   VesselId      Time            Latitude        Longitude         Speed
  ...
Solving this the Azure way
              PartitionKey
   VesselId      Time        Latitude   Longitude   Speed
   xxx-xx1...
Stored in-order:
                            RowKey needs to
Just need to do a
                              be a string
 ...
Developer CTP for Enable Full trust & Fast CGI
Services SDKs, and    Geo-location support       SDS Public CTP   Windows A...
Many is better than one
  Let Microsoft worry about this
Loose coupling
  Web Role and Worker Role
Storage choice
  Azure ...
• Play with Windows Azure – http://www.azure.com

Learn    • Understand REST – good and bad practices
         • Watch the...
© 2008 Microsoft Ltd. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registe...
Windows Azure  -  Ericnel
Windows Azure  -  Ericnel
Windows Azure  -  Ericnel
Windows Azure  -  Ericnel
Windows Azure  -  Ericnel
Windows Azure  -  Ericnel
Windows Azure  -  Ericnel
Upcoming SlideShare
Loading in...5
×

Windows Azure - Ericnel

1,700

Published on

Introduction to the Azure Services Platform for Future of Web Applications tour, June 3rd 2009

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,700
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • S3S3 stores arbitrary objects up to 5 gigabytes in size, each accompanied by up to 2 kilobytes of metadata. Objects are organized into buckets (each owned by an AWS account), and identified within each bucket by a unique, user-assigned key.Buckets and objects can be created, listed, and retrieved using either a REST-style HTTP interface or a SOAP interface. Additionally, objects can be downloaded using the HTTP GET interface and the BitTorrent protocol.Requests are authorized using an access control list associated with each bucket and object.Bucket names and keys are chosen so that objects are addressable using HTTP URLs:http://s3.amazonaws.com/bucket/key http://bucket.s3.amazonaws.com/key EC2When it launched in August 2006, the EC2 service offered Linux and later Sun Microsystems' OpenSolaris and Solaris Express Community Edition. In October 2008, EC2 added the Windows Server 2003 operating system to the list of available operating systems
  • http://en.wikipedia.org/wiki/Operating_system An operating system (commonly abbreviated to either OS or O/S) is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer. The operating system acts as a host for applications that are run on the machine. As a host, one of the purposes of an operating system is to handle the details of the operation of the hardware. This relieves application programs from having to manage these details and makes it easier to write applications.
  • An application execution environment that abstracts away the hardwareA shared file system with access controlResource allocation from a shared poolSupport for powerful programming modelsInter-operability with other systems
  • The “opportunities to get sacked” slide 
  • http://eric.blob.core.windows.net/music/rock/rush/xanadu.mp3Blobs – Provide a simple interface for storing named files along with metadata for the fileTables – Provide structured storage. A Table is a set of entities, which contain a set of propertiesQueues – Provide reliable storage and delivery of messages for an applicationTab
  • Easy to use REST Put/Get/Delete interfaceCan read from any Offset, Length of BlobConditional Put and Get BlobMax Blob size50 GB using PutBlock and PutBlockList64 MB using PutBlobBlocks provide continuation for blob upload Put Blob/BlockList == Replace Blob for CTPCan replace an existing blob with new blob/blocksEach Blob is a list of blocksA Block can be up to 4MB each Each block can be variable sizeEach block has a 64 byte ID, scoped by blob nameBlock operationPutBlockPuts an uncommitted block defined by the block ID for the blob Block list operationsPutBlockListProvide the list of blocks to comprise the readable version of the blobCan use uncommitted blocks onlyGetBlockListReturns the list of committed blocks (not the block data)Block ID and size of block are returned for each block
  • Windows Azure - Ericnel

    1. 1. Eric Nelson Developer & Platform Group Microsoft Ltd eric.nelson@microsoft.com http://geekswithblogs.net/IUpdateable http://twitter.com/ericnel
    2. 2. Cloud 101 Microsoft and Cloud Introduce Azure Services Platform Windows Azure Web Role Worker Role Storage in the Cloud SQL Data Services Windows Azure Storage Table, Blob
    3. 3. Cloud Computing Run/Store stuff in the cloud - Somebody else has the data center/headaches  Infrastructure as a Service (IaaS) Example: Amazon Elastic Compute Cloud (EC2) Platform as a Service (PaaS) Example: Force.com,Google App Engine Windows Azure is a PaaS
    4. 4. SQL Server Data Services (SSDS) – announced at MIX 08 (March 2008) “SQL Server in the cloud” Azure Services Platform – announced at PDC 08 (October 2008) Windows Azure “O.S. for the Cloud” + additional services RESTful – enabling “any client” access
    5. 5. In 50 minutes
    6. 6. It is an operating system for the cloud It is designed for utility computing Many is better than one Loose coupling Simple stores scale It provides facilities to: Write your apps (developer experience) Host your apps (compute) Manage your apps (service management) Store your data (storage)
    7. 7. { Simple Walkthough } It is not that hard
    8. 8. A B D C
    9. 9. Default.aspx (Take Order + Process LB Order)
    10. 10. public partial class _Default : System.Web.UI.Page { protected void Button1_Click(object sender,EventArgs e) { var order = txtOrder.Text; ProcessOrder(order); } protected void ProcessOrder(string order) { //Make some coffee! ... } }
    11. 11. Default.aspx Worker.cs LB (Take Order) (Process Order) Windows Azure Queues
    12. 12. public partial class _Default : System.Web.UI.Page { protected void Button1_Click(object sender,EventArgs e) { var order = txtOrder.Text; QueueStorage qStore = QueueStorage.Create(_account); MessageQueue orderQ = qStore.GetQueue(quot;OrderQueuequot;); orderQ.PutMessage(new Message(order)); } }
    13. 13. public class WorkerRole : RoleEntryPoint { public override void Start() { QueueStorage qStore = QueueStorage.Create(_account); MessageQueue orderQ = qStore.GetQueue(quot;OrderQueuequot;); while (true) { Message msg = orderQ.GetMessage(); if( msg != null) ProcessOrder(msg.ContentAsString()); } } protected void ProcessOrder(string order) { //Make some coffee! ... }
    14. 14. {Revisit, Instances and Workers}
    15. 15. Web Site Web Site Web Role (ASPX, ASMX, (ASPX, ASMX, WCF) (ASPX, WCF) WCF) 2 SQL Data Services L B Worker Worker Service Role Internet Your Service Queue L B Blobs 1 Tables Storage Windows Azure Datacenter
    16. 16. Web Site Web Site Web Role (ASPX, ASMX, WCF) (ASPX, ASMX, WCF) Queue SQL Data Worker Worker Service Services Role Blobs Database ONE Tables Application ONE ONE Storage Web Site Web Site Web Role (ASPX, ASMX, WCF) (ASPX, ASMX, WCF) Queue Worker Worker Service Role Blobs Internet Application TWO Tables TWO Storage Web Site Web Site Web Role (ASPX, ASMX, WCF) (ASPX, ASMX, WCF) SQL Data Worker Worker Service Services Role Database THREE Application THREE Queue Tables Blobs FOUR Storage Windows Azure Datacenter
    17. 17. Azure Storage SQL Data Services Vision Access Relational? (today) Relational? (tomorrow) Analogy
    18. 18. Azure Storage SQL Data Services Vision Massively scalable, highly available store in the Cloud Access REST (Uses ADO.NET Data Services) Relational? (today) No Relational? No (tomorrow) Analogy
    19. 19. Azure Storage SQL Data Services Vision Massively scalable, Highly scalable, highly available highly available store in the Cloud relational store in the Cloud Access REST SqlClient + TSQL (Use Azure Web Role + ADO.NET (Uses ADO.NET Data Services if REST is required) Data Services) Relational? (today) No Yes – but with some limitations Relational? No Yes – with less and (tomorrow) less limitations Analogy
    20. 20. Azure Storage SQL Data Services Vision Massively scalable, Highly scalable, highly available highly available store in the Cloud relational store in the Cloud Access REST SqlClient + TSQL (Use Azure Web Role + ADO.NET (Uses ADO.NET Data Services if REST is required) Data Services) Relational? (today) No Yes – but with some limitations Relational? No Yes – with less and (tomorrow) less limitations Analogy File System RDBMS – as it is!
    21. 21. Web Site Web Site Web Role (ASPX, ASMX, (ASPX, ASMX, WCF) (ASPX, WCF) WCF) SQL Data Services L B Easy Worker Worker Service Role Internet Your Service Queue L Trickier B Blobs Tables Storage Windows Azure Datacenter
    22. 22. Cloud On Premise Application C#, VB, Ruby, PHP etc Relational Data TSQL
    23. 23. Storage that is Durable, Scalable, Highly Available, Secure, Performant Rich Data Abstractions Service communication: queues, locks, … Large user data items: blobs, blocks, … Service state: tables, caches, … Simple and Familiar Programming Interfaces REST Accessible and ADO.NET
    24. 24. Container Blob http://<account>.blob.core.windows.net/<container> Account Table Entities http://<account>.table.core.windows.net/<table> Queue Messages http://<account>.queue.core.windows.net/<queue>
    25. 25. Account Container Blob Block IMG001. JPG pictures IMG002. JPG Account Block 1 movies MOV1.AVI Block 2 Block 3
    26. 26. Massively Scalable Tables Billions of entities (rows) and TBs of data Automatically scales to thousands of servers as traffic grows Highly Available Can always access your data Durable Data is replicated at least 3 times
    27. 27. What tables don’t do What tables can do  Not relational  Cheap  No Referential Integrity  Very Scalable  If theseNo Joins are  Flexible  importantData Limitedto you, use SQL Queries  Durable  ServicesGroup by No  Store LOTS of stuff   No Aggregations  No Transactions  No Transactions
    28. 28. Data stored in Tables A Table is a set of Entities (rows) An Entity is a set of Properties (columns) Entity has: PartitionKey – enables scalability RowKey – unique id within the partition the only indexed property Timestamp – for optimistic concurrency 255 properties total Max size of 1MB
    29. 29. Partition Key Row Key Property 3 ….. Property N Document Version Modification Description Name Time Examples Doc V1.0 8/2/2007 ….. Committed version Partition Examples Doc V2.0.1 9/28/2007 Alice’s working version 1 FAQ Doc V1.0 5/2/2007 Committed version FAQ Doc V1.0.1 7/6/2007 Alice’s working version Partition 2 FAQ Doc V1.0.2 8/1/2007 Sally’s working version  
    30. 30. Vessel Position Reporting System – SQL Server VesselId Time Latitude Longitude Speed xxx-xx1 10:15 14 Nov 01.23 53.24 0 xxx-xx1 10:05 14 Nov 04.45 54.32 5 xxx-xx1 09:55 14 Nov 02.32 52.34 4 xxx-xx2 10:15 14 Nov 01.23 51.23 10 To find last pos report for vessel in SQL: select TOP(1) * from PosRpts order by [Time] DESC where VesselId = ???
    31. 31. Solving this the Azure way PartitionKey VesselId Time Latitude Longitude Speed xxx-xx1 10:15 14 Nov 01.23 53.24 0 xxx-xx1 10:05 14 Nov 04.45 54.32 5 xxx-xx1 09:55 14 Nov 02.32 52.34 4 xxx-xx2 10:15 14 Nov 01.23 51.23 10 PartitionKey
    32. 32. Stored in-order: RowKey needs to Just need to do a be a string top on the partition PartitionKey xxx-xx1 RowKey Latitude Longitude Speed 10:15 14 Nov 2521756430999999999 01.23 53.24 0 10:05 14 Nov 2521756436999999999 04.45 54.32 5 Makes it 14 Nov 09:55 2521756442999999999 02.32 52.34 4 descending (DateTime.MaxValue – time).Ticks.ToString () time.Ticks.ToString ()
    33. 33. Developer CTP for Enable Full trust & Fast CGI Services SDKs, and Geo-location support SDS Public CTP Windows Azure Tools .NET Services Open CTP .NET Services Live Framework Open CTP SQL Services SDS Invitation-only CTP
    34. 34. Many is better than one Let Microsoft worry about this Loose coupling Web Role and Worker Role Storage choice Azure Storage: Simple stores scale Table, Blob, Queue SQL Data Services: Full RDBMS Stored Procedures, Schema, Transactions, Views etc
    35. 35. • Play with Windows Azure – http://www.azure.com Learn • Understand REST – good and bad practices • Watch the MIX 09 recordings http://live.visitmix.com • Slides at http://geekswithblogs.net/IUpdateable Need • Students can get Visual Studio through Microsoft DreamSpark • Startups get tools and more via BizSpark • Developers can also use the free Visual Studio Express tools? • Or just use none Microsoft tools and languages e.g. PHP http://phpazure.codeplex.com/ • http://www.newcloudapp.com/ Win
    36. 36. © 2008 Microsoft Ltd. 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.
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×