Understanding the Windows Azure Platform - Dec 2010


Published on

Understanding the Windows Azure Platform - A high level techncial overview

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • The components of the Azure Services Platform can be used by local applications running on a variety of systems, including various flavors of Windows, mobile devices, and others. Those components include:  Windows Azure: Provides a Windows-based environment for running applications and storing data on servers in Microsoft data centers.  Microsoft .NET Services: Offers distributed infrastructure services to cloud-based and local applications.  Microsoft SQL Services: Provides data services in the cloud based on SQL Server.  Live Services: Through the Live Framework, provides access to data from Microsoft’s Live applications and others. The Live Framework also allows synchronizing this data across desktops and devices, finding and downloading applications, and more.
  • Slide ObjectiveIntroduce users to the tooling available to work with Windows AzureSpeaker NotesDeveloper SDK is a Cloud in a box, allowing you to develop and debug locally without requiring a connection to the cloud. You can do this without Visual Studio as there are command line tools for executing the “cloud in a box” and publishing to the cloud.There is also a separate download for the Visual Studio 2008 tools, which provide the VS debugging and templates. This in turn includes the SDKDownload the VS tools if you use VS. Download the raw SDK if you use alternative platforms (PHP etc…)Requirements for Win 7 or Win 2008 are a dependency on IIS7 for the development fabricCan install the bits with the Microsoft Web Platform InstallerNotesWindows Azure Tools for Microsoft Visual Studio includes:C# and VB Project creation support for creating a Windows Azure Cloud Service solution with multiple roles.Tools to add and remove roles from the Cloud Service.Tools to configure each Role.Integrated local development via the Development Fabric and Development Storage services.Running and Debugging a Cloud Service in the Development Fabric.Browsing cloud storage through the Server ExplorerBuilding and packaging of Cloud Service Packages.Deploying to the Windows Azure.Monitoring the state of your services through the Server Explorer.Debugging in the cloud by retrieving IntelliTrace logs through the Server Explorer.
  • Windows Azure runs on a large number of machines, all located in Microsoft data centers and accessible via the Internet. A common Windows Azure fabric knits this plethora of processing power into a unified whole. Windows Azure compute and storage services are built on top of this fabric. The Windows Azure compute service is based, of course, on Windows. For the initial availability of this service, a Community Technology Preview (CTP) made public in the fall of 2008, Microsoft allowed Windows Azure to run only applications built on the .NET Framework. The company has announced plans to support unmanaged code as well, i.e., applications that aren’t built on the .NET Framework, on Windows Azure in 2009. In the CTP version of Windows Azure, developers can create .NET-based software such as ASP.NET applications and Windows Communication Foundation (WCF) services. To do this, they can use C# and other .NET languages, along with traditional development tools such as Visual Studio 2008. And while many developers are likely to use this initial version of Windows Azure to create Web applications, the platform also supports background processes that run independently—it’s not solely a Web platform. Both Windows Azure applications and on-premises applications can access the Windows Azure storage service, and both do it in the same way: using a RESTful approach. The underlying data store is not Microsoft SQL Server, however. In fact, Windows Azure storage isn’t a relational system, and its query language isn’t SQL. Because it’s primarily designed to support applications built on Windows Azure, it provides simpler, more scalable kinds of storage. Accordingly, it allows storing binary large objects (blobs), provides queues for communication between components of Windows Azure applications, and even offers a form of tables with a straightforward query language. Running applications and storing their data in the cloud can have clear benefits. Rather than buying, installing, and operating its own systems, for example, an organization can rely on a cloud provider to do this for them. Also, customers pay just for the computing and storage they use, rather than maintaining a large set of servers only for peak loads. And if they’re written correctly, applications can scale easily, taking advantage of the enormous data centers that cloud providers offer. Yet achieving these benefits requires effective management. In Windows Azure, each application has a configuration file. By changing the information in this file manually or programmatically, an application’s owner can control various aspects of its behavior, such as setting the number of instances that Windows Azure should run. The Windows Azure fabric monitors the application to maintain this desired state. To let its customers create, configure, and monitor applications, Windows Azure provides a browser-accessible portal. A customer provides a Windows Live ID, then chooses whether to create a hosting account for running applications, a storage account for storing data, or both. An application is free to charge its customers in any way it likes: subscriptions, per-use fees, or anything else. Windows Azure is a general platform that can be used in various scenarios.
  • Slide Objectives:Understand Roles in generalUnderstand Web and Worker Roles at a high levelSpeaking Points:Windows Azure currently supports the following two types of roles:Web role: A web role is a role that is customized for web application programming as supported by IIS 7 and ASP.NET.Worker role: A worker role is a role that is useful for generalized development, and may perform background processing for a web role. A service must include at least one role of either type, but may consist of any number of web roles or worker roles. A worker role is started by a call to a well know managed code interface RoleEntryPoint. A worker role must extend this class and override the Start() methodA web role is a worker role with the addition of IIS being installed. i.e. it has all the features of and can do everything a worker role can do as wellNotes:http://msdn.microsoft.com/en-us/library/dd179341.aspx#Subheading1
  • Slide ObjectiveTo understand how and why to change the VM Size for a Windows Azure roleSlide NotesWhen you create your service model, you can specify the size of the virtual machine (VM) to which to deploy instances of your role, depending on its resource requirements.The size of the VM determines the number of CPU coresthe memory capacitythe local file system size allocated to a running instanceEach physical machine in Windows Azure contains 8 processor cores. You need to specify an XL instance to reserve an entire machineNetwork is shared but burstableCan burst beyond your 1/8th allocation when using a small VMMay be limited to just your allocationFor guaranteed high network throughput use an XL VMNothttp://msdn.microsoft.com/en-us/library/ee814754.aspxes
  • Slide ObjectiveUnderstand the role programming model in overviewSpeaker NotesA role is similar to a windows service. It gets started once deployed, and will get stopped when required.It could get stopped because we are re-deploying you to a different serverYou actioned the stop from the web-portalIt’s up to you to keep running and NEVER return from Start() unless you have been told to stop. Note: you do not need to handle the stop – you can simply “fail”Noteshttp://msdn.microsoft.com/en-us/library/ee848065.aspxhttp://blogs.msdn.com/b/jnak/archive/2010/02/11/windows-azure-roleentrypoint-method-call-order.aspxes
  • Slide ObjectiveIntroduce the Windows Azure Diagnostics API Speaking notesNow your service is deployed, how do YOU monitor it?Diagnostics in the Cloud is the same as on premise. Well almost. It is built using the same familiar APIs.With the diagnostics and monitoring API, you can deploy your roles and remotely configure what sources your instance should monitor. This configuration can be by role or by instance. You can configure standard tracing in your application, monitor the event logs or performance counters, collect log files like IIS logs or any log file as well as crash dumps of your application. Since this information can be pushed into your storage account on demand or on a scheduled basis, it is both highly scalable as well as easily manageable from outside of Windows Azure.
  • Slide Objectives:Introduction to SQL AzureExplain SQL Azure DatabaseIndicate that other services are coming in the futureSpeaking Points:SQL Azure provides Microsoft SQL Server in the cloudBroadly compatible with online SQL ServerIn the future other services are plannedDataSync- to sync data between On premise and the cloudNotesCloud-based relational database service built on SQL Server® technologies. It provides a highly available, scalable, multi-tenant database service hosted by Microsoft in the cloud. SQL Azure Database helps to ease provisioning and deployment of multiple databases. Developers do not have to install, setup, patch or manage any software. High availability and fault tolerance is built-in and no physical administration is required.http://www.microsoft.com/windowsazure/sqlazure/ http://go.microsoft.com/?linkid=9686976
  • Slide Objectives:Understand the key differentiators of SQL AzureUnderstand where a user has control and where the cloud runs thingsSpeaking Points:SQL Azure provides highly available SQL Server.Appears to be a SQL Server to the client.In reality is 3 transitionally consistent copies of the database that are fronted by a Gateway that appears to be a SQL serverSimple to provision- create a logical server in the Portal, execute a create DB Command to create a new databaseCan add and remove DBs easily from application to scale up and downCustomers look after logical optimizations like indexesSQL Azure manages the physical databaseNo need to install or patch software or other physical administrationAutomatic high availability and fault toleranceSimple provisioning and deployment of multiple databasesScale databases up or down based on business needsMulti-tenantIntegration with SQL Server and tooling including Visual StudioSupport for T-SQL based familiar relational database modelNoteshttp://www.microsoft.com/windowsazure/sqlazure/http://msdn.microsoft.com/en-us/windowsazure/sqlazure/default.aspx
  • Slide Objectives:Affirm that SQL Azure is just a TDS server. Existing SQL Server consumers can connect to itSpeaking Points:Connecting to SQL Azure is simply a case of changing the connection string.The SQL Azure fabric ensures 3 transitionally consistent replicas of your data You will connect to a SQL Azure TDS gateway, this appears to be a SQL Server but will actually route your requests through to one of the three replicas stored in the DCAvoid injection attacks by using the SqlConnectionStringBuilder class. It is available from the .NET Framework to simplify creating the connection string. For more information, see Connection String Builders (ADO.NET).Carefully protect your connection string. A connection string presents a potential vulnerability if it is not secured. For more information, see Protecting Connection Information (ADO.NET).In order to completely secure your connection, especially when connecting to SQL Azure over the Internet, insure that the ADO.NET Encrypt and TrustServerCertificate connection parameters are set.For general considerations about connecting to databases in SQL Azure, see Guidelines for Connecting to SQL Azure Database.More on security of SQL Azure in Day 3Noteshttp://msdn.microsoft.com/en-us/library/ee336243.aspx
  • Slide ObjectiveExplain the architecture of SQL Azure in a diagrammatic formSpeaker NotesAccess is via a load balancer- load balancer is a sticky (stateful) load balancerGateway nodes appear to TDS client as a SQL Server, but, merely forward requests through to the underlying SQL servers that actually store the dataRequests are routed to a primary replica- more on replicas shortlyShared infrastructure at SQL database and belowEach user database is replicated to one or more servers (configurable based on SLA)Client requests are routed to current “primary server” for read and write operations (based on SQL session)Security, lockdown and isolation enforced in SQL tierHighly scalable and state-of-the-art HA technologyAutomatic failure detection; client request re-routed to new primary on failure High SLA guarantee using logical replication (hot standby replicas)Automatic management, self-healing and load balancing across shared resource poolSDS provides provisioning, metering and billing infrastructureNotesSQL Azure architecture http://msdn.microsoft.com/en-us/library/ee336271.aspx
  • Slide ObjectiveDiscusses various SQL Azure data access topologiesSpeaking notesAccess from within Microsoft Datacenter (Code near scenario)Connect a Windows Azure Compute application to SQL AzureExecuting Asp.NET code, PHP, other managed code, native codeSimple familiar programming modelAccess from on premise applications (Code far)Solve the DB under the desk issue.NET, native or other platform supportMicrosoft access as a front end offers interesting scenarioNeed to be conscious of query frequency and/or payloadAccess from both Cloud and On PremiseE.g. application with browser front and AND a need to sync to mobile devicesCloud provides an always up rendezvous point for data consumersWindows Azure runs the browser based applicationOther applications connect remotely- TDS, Odata, SncNotesMSDN on topology optionshttp://msdn.microsoft.com/en-us/library/ee336239.aspxSQL Azure + MS Accesshttp://blogs.msdn.com/b/access/archive/2010/06/07/access-2010-and-sql-azure.aspx
  • Slide ObjectiveProvides an overview of connectivity to SQL AzureSpeaker NotesSQL Azure uses the TDS (tabular data stream) protocolVery broad support for existing SQL Server toolsSome things like backup tools and low level file manipulation tools will not workSQL Server client libraries available in Windows Azure ComputeVery easy to connect to SQL Azure from Windows AzureSQL Azure is an ideal backing store for a Windows Azure applicationAll of the ASP.NET controls are supportedRAD in Visual Studio is simple with SQL AzureEach SQL Azure server is logical onlyPrevents DB context hoppingNo ability to USA DB_FooNotesUseful article from SQL Azure teamhttp://msdn.microsoft.com/en-us/magazine/ee321567.aspxTooling support for SQL Azure Databasehttp://msdn.microsoft.com/en-us/library/ee621784.aspx
  • Slide ObjectiveProvides detailed information on connecting to SQL AzureSpeaker NotesSQL Azure uses the standard SQL connection string syntaxSeveral important pointsNeed to specify the database to connect- i.e. No USE DB optionSet the initial catalog to do thisMust enable encryptionTraffic transits over the internet.Should not trust server certificate (i.e. override trust chain check0More on security and encryption on Day 3 security sessionSQL Azure has a configurable firewallMust explicitly allow connectivity from address rangesOpen the smallest ranges possibleWill be times when you need to ‘allow all’E.g. Datasync with mobile clients etc…NotesConnecting to SQL Azure step by step http://msdn.microsoft.com/en-us/library/ee336243.aspxSQL Azure Firewall http://msdn.microsoft.com/en-us/library/ee621782.aspx
  • Slide ObjectiveProvides a guide to SQL Azure vs SQL Server compatabilitySpeaker NotesFor more details see this documentSQL Azure vs SQL Server differenceshttp://www.microsoft.com/downloads/details.aspx?FamilyID=86f12b41-1eba-4567-9ac8-02eaa7d12034&displaylang=en
  • Slide Objectives: Define and enumerate the Windows Azure Platform AppfabricSpeaking Points: Much in the same way that SQL Services is about extending SQL Server to the cloud, we are also extending key .NET capabilities to the cloud as services.We call this the Windows Azure AppFabric. These services are really key components you would need for building distributed, connected applications. When we talk about connecting to your existing on-premises applications and enabling the composition of hybrid (Cloud + on-premises) applications – that is where the AppFabric really comes in.There are currently two AppFabric Services: the Service Bus & the Access Control ServiceService Bus:The Service Bus is designed to provide a general purpose application bus, available on the internet at internet scale. You can really thin of the Service Bus as being similar to an Enterprise Service Bus that many enterprise organizations have today. However, we believe that when providing a Service Bus as a programmable service on the internet, there are a wider range of scenarios for many more types of organizations.Fundamentally, the .NET Service Bus is about connecting applications across network and application boundaries and making key message exchange patterns such as publish and subscribe messaging very simple.Access Control:The Access Control service is designed to provide rules-driven, claims-based access control for applications. Essentially, this allows you to define authorization rules for your applications using the claims-based approach that we are adopting within many Microsoft products and technologies and that is becoming adopted in the industry.Notes: Windows Azure has the .NET Framework built into it so thatyou can use those services within your application.But just like your application must be designed to scale out, the services that we have built into Windows over time in .NET also need to be designed and built in a way that can scale out naturally. We want to create services for you, and that's the purpose of the AppFabric, creating a pool of resources available to you to take advantage of and do things within your application very simply. So we're including a built-in, scale-out implementation of a service bus. The service bus lets you connect your on-premises systems securely into the cloud, into the Azure environment, while allowing your data and your information to traverse firewalls, solving a problem that is a bane of many application developments.
  • Slide Objectives: Explain what the AppFabric Service Bus is and how it works using a simple diagramSpeaking Points: Call out the following key pointsConnectivity through service bus relay in the cloudOutbound connectivity makes traversal of NAT/Firewall devices much easierDirect connection mechanism uses NAT probing- similar technology to that found in IM and VOIP clientsVariety of scenarios supportedSimple content and messages all the way through to full TCP/IP port forwarding
  • Slide Objectives:Understand the AppFabric Access Control service and the basics of claims based authSpeaking Points:For this release, AppFabric Access Control focuses on authorization for REST Web services and the AppFabric Service Bus. The following is a summary of AppFabric Access Control features:Cross-platform support. AppFabric Access Control can be accessed from applications that run on almost any operating system or platform that can perform HTTPS operations.Lightweight authentication and authorization using symmetric keys and HMACSHA256 signatures.Configurable rules that enable mapping input claims to output claims.Web Resource Authorization Protocol (WRAP) and Simple Web Token (SWT) support.NotesThe Windows Azure platform AppFabric Access Control (AC) service is a hosted service that provides federated authentication and rules-driven, claims-based authorization for REST Web services. REST Web services can rely on AC for simple username/password scenarios, in addition to enterprise integration scenarios that use Active Directory Federation Services (ADFS) v2.
  • WA - £56 per month for 1 node, which is £637 per yearSA – 20pence per day*Approximate – lots of assumptions, blah blah
  • Understanding the Windows Azure Platform - Dec 2010

    1. 1. Understanding the Windows Azure Platform<br />David Gristwood<br />Application Architect, Microsoft <br />blogs.msdn.com/david_gristwood<br />
    2. 2. Platform as a Service<br />
    3. 3. CLOUD COMPUTING<br />INFRASTRUCTURE<br />PLATFORM<br />SOFTWARE<br />AS A SERVICE<br />AS A SERVICE<br />AS A SERVICE<br />IT as a Service<br />
    4. 4. CLOUD COMPUTING<br />INFRASTRUCTURE<br />PLATFORM<br />SOFTWARE<br />AS A SERVICE<br />AS A SERVICE<br />AS A SERVICE<br />IT as a Service<br />
    5. 5. Platform as a Service<br />Platform Today<br />Server, VM, Network, Storage, App<br />App<br />Patch, Service Release, New Version<br />Maintained for You<br />Assembly Required<br />Ready-Made Services<br />Custom, Inconsistent<br />Standardized<br />Plan for Peak Load<br />On-Demand Scale<br />Built to Avoid & Recover from Failure<br />Built to Expect & Withstand Failure<br />
    6. 6. The OS for PaaS is: <br />
    7. 7. Compute ▪ Storage ▪ Networking ▪ Identity & Security<br />FOUNDATION<br />Web ▪ HPC ▪ Caching ▪ Messaging ▪ Workflow ▪ Content Delivery<br />SERVICES<br />Relational Database ▪ Reporting & Analytics ▪ Data Sync<br />INFORMATION<br />Online Portal ▪ Marketplace ▪ Development Tools ▪ Management Tools<br />TOOLS<br />
    8. 8. YOU DECIDE:<br />Language, Dev Framework, Dev Tool, Management Tool, Datacenter<br />
    9. 9. Windows Azure 0pportunities<br />Move Applications to the Cloud<br />Store Data in<br />the Cloud<br />Extend Applications to the Cloud<br />Create New Solutions by Combining <br />Cloud Services<br />Create New <br />Cloud Services<br />
    10. 10. The Windows Azure Philosophy<br />
    11. 11. Windows Azure is about Scale<br /><ul><li>Designed from the ground up for true Internet scale
    12. 12. Offers global presence
    13. 13. Platform for next generation cloud aware systems
    14. 14. Ride the “network effect”
    15. 15. LinkedIn: 16 months for first million users, 11 days for most recent million
    16. 16. Facebook: 5 years to hit 250m users, 8 months to double
    17. 17. Scale up and scale down</li></ul>www.flickr.com/photos/ScroffTheBad<br />
    18. 18. Operational Excellence & Elasticity<br />“Growing Fast” <br />“Predictable Bursting”<br /><ul><li>Need high reliability
    19. 19. LOB, software as a service
    20. 20. Need massive scale
    21. 21. Social networking, web 2.0
    22. 22. Have variable load / unpredictable lifetime
    23. 23. Ticketing, marketing
    24. 24. Parallel processing
    25. 25. Financial applications
    26. 26. Don’t fit in well with a company’s data center
    27. 27. Avoid IT dept, support joint ventures
    28. 28. Benefit from external storage
    29. 29. Archive </li></ul>“On and Off” <br />“Unpredictable Bursting”<br />Average Usage<br />Compute<br />Compute<br />Compute<br />Compute<br />Average Usage <br />Average<br />Usage<br />Average Usage <br />Time <br />Time <br />Time <br />Time <br />
    30. 30. Helps your Systems Scale<br /><ul><li>Most architecture is hidden deep inside code
    31. 31. WindowsAzure encourages you to define your application into constituent parts
    32. 32. Windows Azure supports cloud enabled applications
    33. 33. Windows Azure can scale the parts of your application as appropriate</li></ul>www.flickr.com/photos/39818355@N00/2128626176<br />
    34. 34. Flexible Architecture <br /><ul><li>Systems evolve over time
    35. 35. Cloud is not an “all or nothing” proposition
    36. 36. Hybrid model well supported
    37. 37. Windows Azure makes it easier to extend to the cloud</li></ul>www.flickr.com/photos/tomkpunkt/3695066577<br />
    38. 38. Opening up the Cloud<br /><ul><li>Allow developers to apply their existing skills to the cloud
    39. 39. Support for .NET, Ruby, PHP, Java
    40. 40. Interoperability with any platform, tools or technology </li></ul>www.flickr.com/photos/h19/2306213399/in/set-72157594224557858<br />
    41. 41. Flexible Business Model<br /><ul><li>No up front hardware purchase
    42. 42. “Pay as you go” model
    43. 43. Ideal in current economical climate </li></ul>www.flickr.com/photos/cleebster/2508660124<br />
    44. 44. Microsoft Data Centers<br />
    45. 45. Windows Azure Platform Availability <br />Northern Europe<br />North Central USA<br />Eastern Asia<br />Western Europe <br />South Central USA<br />Southeast Asia<br />
    46. 46. Delivering an Efficient & Sustainable Cloud<br />
    47. 47. Chicago Datacentre – Scalable, Sustainable <br />One of world’s largest datacentres using containers, on-line on July 2009<br />Cost $500 million<br />700k sqft facility (approx 16 football fields)<br />30 MegaWatts today, 60 MW for future use<br />Security<br />ISO 27001:2005 Accreditation - Security Management<br />SAS 70 Type I and II Attestations - Audit standard for our internal controls system<br />Containers<br />40 ft containers with 1800-2500 servers <br />10 x density traditional datacentres <br />Optimizes efficiency, reduces wastes & carbon footprint <br />Delivers an average PUE of 1.22<br />
    48. 48. Dublin Datacentre<br />First Mega Datacentre built outside the US, on-line on July 2009<br /><ul><li>Cost $500 million, 303+sq ft facility and growing
    49. 49. EU Datacenter Best Practice Award Winner
    50. 50. Stand-alone Server Pods
    51. 51. Environmentally Sustainable
    52. 52. Free Air-Cooling via Air-Side Economization
    53. 53. 50% less energy use vs. traditional facilities
    54. 54. 1 % water use vs. traditional facilities
    55. 55. 5.4MegaWatts today, 22.2 MW for future use
    56. 56. ISO 27001:2005 Accreditation
    57. 57. SAS 70 Type I and II Attestations</li></li></ul><li>Windows Azure Platform Appliance<br />Azure Service in Your Datacenter<br />Identical to the hardware in Azure datacenters<br />Delivered by a choice of hardware partners<br />Benefits<br />Physical Control<br />Geographic Proximity<br />Regulatory Compliance<br />Data Sovereignty <br />Currently in development with several partners<br />Fujitsu, Dell, HP, and eBay<br />Microsoft<br />Service Provider<br />Customer<br />
    58. 58. The Windows Azure Platform<br />
    59. 59. The Windows Azure Platform<br />
    60. 60. Window Azure Platform – The Big Picture<br />Windows Azure AppFabric<br />SQL Azure<br />Applications<br />Windows Azure<br />Applications<br />Others<br />Mobile<br />Desktop<br />Server<br />
    61. 61. Windows Azure Development<br />
    62. 62. Windows Azure Tools for Visual Studio<br />Windows Azure Tooling<br /><ul><li>Visual Studio 2008
    63. 63. Visual Studio 2010
    64. 64. Project Templates
    65. 65. Model & Config Tooling
    66. 66. Package & 1 Click Deploy
    67. 67. Debugging Support
    68. 68. Storage Explorer
    69. 69. Server Explorer
    70. 70. IntelliTrace Support</li></ul>Windows Azure SDK<br /><ul><li>Windows Server 2008 or Windows 7
    71. 71. SQL Express 2005+
    72. 72. .NET 3.5 SP1+
    73. 73. Development Fabric
    74. 74. Development Storage
    75. 75. .NET APIs</li></li></ul><li>Visual Studio 2010<br />
    76. 76. Visual Studio 2010<br />
    77. 77. Visual Studio 2010<br />
    78. 78. Development Fabric and Storage<br />Local Machine<br />Windows Azure Simulation Environment <br />Development Storage<br />Development Fabric<br />
    79. 79. Windows Azure Platform Management Portal<br />Faster and more user friendly portal for Windows Azure Platform services<br />Enables more visibility and control <br />Supports multiple users and roles<br />Enable Remote Desktop and easily connect to Windows Azure instances<br />Built on the Windows Azure Service Management APIs <br />
    80. 80. Remote Desktop<br />Portal-integrated Remote Desktop access to instances within your deployment<br />Use standard Remote Desktop client<br />Dynamic configuration of Remote Desktop settings<br />Credentials<br />Enable/Disable<br />Expiration of credentials<br />Ability to take instances on/off the load balancer for debugging<br />
    81. 81. Windows Azure Building Blocks<br />
    82. 82. Application<br /> Compute<br />Storage<br />Fabric<br />Config<br />AppFabric<br />Applications<br />SQL Azure<br />Windows Azure<br />Applications<br />Mobile<br />Desktop<br />Server<br />Others<br />
    83. 83. Azure Compute Building Blocks<br />Windows Server 2008 x64 Virtual Machine<br />.NET Framework – 3.5 SP1 and 4.0<br />Supports Full Trust but no Admin rights<br />Native Code in User Mode<br />Fabric manages role lifecycle<br />Web Role<br />Worker Role<br />Hosted IIS 7<br />HTTP/HTTPS<br />ASP.NET<br />Fast CGI + PHP<br />Managed Code Start<br />Inbound on <br />Any TCP Port<br />HTTP/HTTPS<br />
    84. 84. VM Size in Windows Azure<br />Windows Azure<br />Supports Various VM Sizes<br />Size set on Role in Service Definition<br />Service can have multiple roles<br />Balance of Performance per node vs. High Availability from multiple nodes<br />Set in Service Model definitionAll instances of role will be of equal size <br />
    85. 85. Role Programming Model<br />Inherits RoleEntryPoint<br />OnStart() Method<br />Called by Fabric on startup, allows you to perform initialization tasks.<br />Reports Busy status to load balancer until you return true.<br />Run() Method<br />Main logic is here – can do anything, typically infinite loop. Should never exit.<br />OnStop() Method<br />Called when role is to be shutdown, graceful exit.<br />30 Seconds to tidy up<br />You call into RoleEnvironment to enumerate roles, endpoints, etc<br />
    86. 86. Windows Azure Storage Building Blocks<br />Storage<br />Queue<br />Blobs &Drives<br />Account<br />Tables<br />Each storage account can hold up to 100 TB<br />
    87. 87. Windows Azure Blobs<br />Provide simple interface for storing named files along with metadata for the file<br />Blobs<br />Containers<br />Photo1.png<br />Photo2.png<br />Pictures<br />Photo3.png<br />
    88. 88. Windows Azure Blobfeatures<br />REST based API<br />myaccount.blob.core.windows.net/mycontainer/myblob.jpg<br />Blob Service API<br />PutBlob, GetBlob, DeleteBlob, CopyBlob, SnapshotBlob, LeaseBlob, etc<br />Block Blob for streaming<br />Maximum size 200Gb<br />Page Blobfor random read/write operations <br />Maximum size 1Tb<br />
    89. 89. Windows Azure Drives<br />Page Blob formatted as a NTFS single volume Virtual Hard Drive (VHD)<br />NTFS APIs providing durable file storage on Page Blobs<br />Drives can be up to 1TB, up to 16 can be mounted<br />Can upload VHD via Page Blob then mount<br />Ease migration of existing Windows applications to Azure<br />Durability and survival of data on application failover or hardware failure<br />
    90. 90. Windows Azure Tables<br />Structured storage via entities, containing sets of properties<br />Entities<br />Tables<br />Genre = …<br />Title = …<br />Movies<br />Genre = …<br />Title = …<br />Actors<br />Name = …<br />DOB = …<br />
    91. 91. Windows Azure Tables<br />Provides Massively Scalable Structured Storage<br />Billions of entities (rows) and TBs of data<br />Can utilise thousands of servers as it scales up<br />Triple replicated for durability <br />Familiar and easy to use REST based API<br />Each entity can have up to 255 properties<br />PartitionKey & RowKey as key and index<br />Timestamp for optimistic concurrency<br />No fixed schema for all other properties<br />Property is stored as a <name, typed value> pair<br />MyTable1<br />Entity: Sports Car<br />Entity: Car<br />Entity: Customer<br />
    92. 92. Table Partitions and Rows<br />
    93. 93. Windows Azure Queues<br />Provide reliable storage and delivery of messages<br />Messages<br />Queues<br />“Body1”<br />“Body2”<br />ThumbnailJobs<br />“Body3”<br />
    94. 94. Windows Azure Queues<br />Provide reliable storage and delivery of messages<br />Max size of message 8 Kb<br />Store URI to blog / table for larger data<br />Messages must explicitly be deleted<br />Set message expiration timeout<br />Message de-queue count for poison messages <br />Input Queue (Work Items)<br />Queue<br />Worker Role<br />Web Role<br />Worker Role<br />Web Role<br />Worker Role<br />Web Role<br />Worker Role<br />
    95. 95. Notes on Queues<br />Sleep when queue is empty<br />Ensure message processing is idempotent<br />If Worker role crashes, message becomes visible for another Worker to process<br />f(x) = f(f(x))<br />Ensure message processing is commutative<br />Messages will get handled out of order<br />Judicious use of Try/Catch<br />Check for poison messages<br />For extreme throughput (>500 tps) <br />Use multiple queues <br />Read messages in batches or multiple work items per message<br />
    96. 96. A Common Windows Azure Pattern<br />Worker Role<br />Web Role<br />Queue<br />Storage<br />Blob<br />Storage<br />
    97. 97. Windows Azure Features<br />
    98. 98. Service Management API<br />Provide Lights-Out Service Management <br />Manage services programmatically via REST-based API<br />X509 client certificates for authentication <br />Viewing, creating, deleting, swapping, modifying configuration settings, etc on deployments <br />
    99. 99. Windows Azure Diagnostics<br />SDK component providing distributed monitoring & data collection for cloud apps<br />Support Standard Diagnostics APIs<br />Trace, Debug normally<br />Manage multiple role instances centrally<br />Choose what to collect & when to collect it<br />Event Logs, Trace/Debug, Performance Counters, IIS Logs, Crash Dumps, Arbitrary log files<br />Everything is remotely configurable<br />Role Instance<br />Role<br />Local directory storage<br />Diagnostic Monitor<br />
    100. 100. Service Management CmdLets<br />PowerShell cmdlets wrapping Azure Service Management and Diagnostics API <br />Simple to script out deployments, upgrades, scaling<br />Deploy new services<br />Upgrade services<br />Manage storage accounts<br />Transfer diagnostics information<br />
    101. 101. Service Upgrade Models<br />Rolling upgrade (aka “In-place”)<br />Roles are updated across update domains one at a time<br />Service remains available during upgrade<br />Real-time hot swap (aka “VIP Swap”)<br />Virtual IP swap between staging & production<br />Swap service endpoints of old/new version<br />Enables complex architectural changes<br />Planned downtime<br />Stop and replace service with new version<br />
    102. 102. Content Delivery Network<br />Better performance and user experience by caching Azure blobs at strategically placed locations<br />25 locations globally (United States, Europe, Asia, Australia and South America) and growing <br />Content Delivery Network<br />Edge Location<br />Edge Location<br />pic1.jpg<br />Edge Location<br /> Windows Azure Blob Service<br />pic1.jpg<br />
    103. 103. Multiple IIS Sites and Virtual Applications<br />SDK 1.3 uses full IIS and not Hosted Web Core<br />Add multiple IIS sites and Virtual applications per Web Role in the service definition file<br />
    104. 104. Coming Soon!<br />Windows Azure Connect<br /><ul><li>Secure network connectivity between on-premises and cloud</li></ul>Supports standard IP protocols<br /><ul><li>Example use cases:</li></ul>Enterprise app migrated to Windows Azure that requires access to on-premise SQL Server<br />Windows Azure app domain-joined to corporate Active Directory <br /><ul><li>Roadmap</li></ul>CTP requires on-premises agent for non-Windows Azure resources<br />Connectivity using existing on-premises VPN devices<br />Windows Azure<br />Enterprise<br />
    105. 105. Virtual Machine Role<br />Coming Soon!<br />VM Role provides additional control and flexibility on the Windows Azure environment, and makes it easy to run existing Windows applications on Windows Azure.<br />Developers have full control over the OS image<br />Ability to upload your own customized WS08R2 Enterprise images<br />Operators can reboot, reimage and Remote Desktop<br />Continue to benefit from automated service management, including service model enhancements described on subsequent slides<br />
    106. 106. SQL Azure<br />
    107. 107. SQL Azure<br />Extending SQL Server to the Cloud<br />…<br />Sync Service<br />Database<br />SQL Azure Database<br />Familiar SQL Server relational database model<br />Support for existing APIs & tools<br />Built for the cloud with high availability & fault tolerance<br />Easily provision and manage databases across multiple datacenters<br />Data Sync Service<br />Provides two-way sync of SQL Azure Databases across datacenters<br />Example service available in the SQL Azure Labs environment<br />
    108. 108. SQL Azure Database Service<br />SQL Azure provides logical SQL Server<br />Gateway server that understands TDS protocol<br />Looks like SQL Server to TDS Client<br />Actual data stored on multiple backend data nodes<br />Logical optimisations supported<br />Indexes, Query plans etc..<br />Physical optimisations not supported<br />File Groups, Partitions etc…<br />Transparently manages physical storage<br />
    109. 109. Working with SQL Azure Databases<br />Your App<br />SQL Azure<br />TDS<br />Change Connection String<br />
    110. 110. Behind the Scenes of SQL Azure<br />Apps use standard SQL client libraries: ODBC, ADO.Net, PHP, …<br />Application<br />Internet<br />Load balancer forwards ‘sticky’ sessions to TDS protocol tier<br />TDS (tcp)<br />LB<br />Security Boundary<br />TDS (tcp)<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway<br />Gateway: TDS protocol gateway, enforces AUTHN/AUTHZ policy; proxy to backend SQL<br />TDS (tcp)<br />SQL<br />SQL<br />SQL<br />SQL<br />SQL<br />SQL<br />Scalability and Availability: Fabric, Failover, Replication, and Load balancing<br />
    111. 111. Application Topologies<br />From Windows Azure<br />From Outside Microsoft Datacenter <br />From Windows Azure & Outside Microsoft Datacenter <br />SQL Server<br />App Code / Tools<br />App Code / Tools<br />Application / Browser<br />SQL Azure <br />Data Sync<br />Microsoft Datacenter<br />MicrosoftDatacenter<br />Microsoft Datacenter<br />Windows Azure<br />Windows Azure<br />SQL Azure <br />SQL Azure <br />SQL Azure <br />Code Near<br />Code Far<br />Hybrid<br />
    112. 112. Connection Model<br />SQL Azure exposes native SQL Server TDS protocol<br />Use existing client libraries<br />ADO.NET, ODBC, PHP<br />Client libraries pre-installed in Windows Azure roles<br />Support for ASP.NET controls<br />Clients connect directly to a database<br />Cannot hop across DBs (no USE)<br />
    113. 113. Connecting to SQL Azure<br />SQL Azure connection strings follow normal SQL syntax<br />Applications connect directly to a database<br />“Initial Catalog = <db>” in connection string<br />No support for context switching (no USE <db>)<br />Encryption security<br />Set Encrypt = True, only SSL connections are supported<br />TrustServerCertificate = False, avoid Man-In-The-Middle-Attack!<br />Format of username for authentication:<br />ADO.Net:Data Source=server.database.windows.net;User ID=user@server;Password=password;...<br />Setup your firewall rules first!<br />
    114. 114. SQL Azure Compatibility<br />Currently Supported<br />Not Currently Supported<br />Tables, indexes and views<br />Stored Procedures<br />Triggers<br />Constraints<br />Table variables, session temp tables (#t)<br />Spatial types<br />Data Types<br />XML, HierarchyId, Sparse Columns, Filestream<br />Partitions<br />Full-text indexes<br />SQL-CLR<br />Tables require clustered indexes<br />
    115. 115. Database Editions<br />You specify Web or Business Edition<br />Web: EDITION = web<br />Business: EDITION = business<br />You specify MAXSIZE<br />Web: MAXSIZE = 1GB | 5GB<br />Business: MAXSIZE = 10GB | 20GB | 30GB | 40GB | 50GB<br />This is the maximum size we will not let you grow beyond<br />You will only be charged for the actual peak size in any one day rounded up<br />For example, a 3.4 GB Web Edition will be charged 5GB rate.<br />CREATE DATABASE foo1 (EDITION='business', MAXSIZE=50GB);<br />CREATE DATABASE foo2 (EDITION='business', MAXSIZE=30GB);<br />ALTER DATABASE foo2 MODIFY (EDITION='web', MAXSIZE=5GB);<br />Business Edition<br />Up to 50 GB<br />10 GB increments<br />Web Edition<br />1 GB or 5 GB<br />
    116. 116. Database Editions<br />Two SQL Azure Database SKUs: Web & Business<br />Web Edition: <br />1 GB @ £6.055/month <br />5 GB @ £30.275/month<br />Business Edition: <br />10 GB @ £60.604 <br />20 GB @ £121.208 <br />30 GB @ £131.812 <br />40 GB @ £242.416<br />50 GB @ £303.20<br />Business Edition<br />Up to 50 GB<br />10 GB increments<br />Web Edition<br />1 GB or 5 GB<br />
    117. 117. SQL Azure Data Sync<br />Powers movement of data<br />Cloud  cloud<br />On-premises cloud<br />Getting data where you need it<br />Sync SQL Azure instances<br />Sync SQL Server to SQL Azure<br />Sync offline apps to SQL Azure<br />Enable geo-replication of data<br />SQL Azure<br />Sync<br />
    118. 118. SQL Azure Data Sync – Roadmap<br />SQL Azure Database<br />Now<br />Sync<br />Sync<br />Data Sync Service For SQL Azure<br />Remote Offices<br />Retail Stores<br />Sync<br />Sync<br />Sync<br />Sync<br />Sync<br />Coming Soon<br />On-Premises (Headquarters)<br />
    119. 119. SQL Azure Reporting<br />CTP – you can register <br />Based on SQL Server Reporting Services 2008 R2<br />Exactly same report formats (no custom extensions yet)<br />Use BI Development Studio<br />Reports run on Windows Azure Platform<br />Report Viewer control using remote processing mode<br />Only reports against SQL Azure Database<br />
    120. 120. SQL Azure Summary<br />SQL Azure Database<br />Hassle free fault tolerance with little to learn<br />SQL Azure Data Sync<br />Helping build geographically disperse or hybrid applications<br />SQL Azure Reporting<br />Reporting Services in the Cloud<br />
    121. 121. Windows Azure Marketplace DataMarket(formerly Codename “Dallas”)<br />
    122. 122. Easily Discover And Explore Datasets<br />
    123. 123. DataMarket Data Partners<br />Public Domain<br />Premium<br />Leading Commercial and Public Domain Data; Free and Paid Content<br />Data residing in our cloud, 3rd party clouds, or private data centers<br />All data – web services, media, relational databases, higher level services<br />
    124. 124. Discovery, Exploration and Acquisition of Information<br />Find<br />Try<br />Use<br /><ul><li>Browse / Search the Marketplace directly and from partner apps
    125. 125. Discovery from Excel and PowerPivotviews; Word, SharePoint
    126. 126. ALL data: Web services, media, relational data
    127. 127. Both Public and Premium
    128. 128. Any platform and any application
    129. 129. Explore sample data visually through apps and previews; content visualizations
    130. 130. Proxy classes for developers; native Visual Studio integration; REST APIs
    131. 131. Trial subscriptions
    132. 132. Use in Office, VS, and in ecosystem enabled solutions!
    133. 133. Unified API, billing, and security model
    134. 134. Free public domain data from around the world
    135. 135. Trusted commercial data and services
    136. 136. Subscriptions and Transactions to support broad usage scenarios</li></li></ul><li>DataMarket Architecture at a glance…<br />
    137. 137. DataMarket ISV Momentum<br />
    138. 138. Crime from two perspectives<br />http://apps.facebook.com/crimestats<br />http://silverlight.onterrasys.com/CrimeDemo/<br />
    139. 139. Windows Azure AppFabric<br />
    140. 140. Windows Azure AppFabric<br />Extending .NET to the cloud with Internet Scale Utility Services<br />Access Control<br />…<br />Service Bus<br />Collection of building block services <br />Composed to provide foundational pieces for your apps<br />Exposed through open protocols <br />Accessible from anywhere<br />Service Bus <br />General purpose application bus & connectivity service<br />Access Control <br />Rules-driven, claims-based access control service<br />
    141. 141. Enterprise Service Bus Pattern<br />
    142. 142. AppFabric Service Bus<br />Text<br />XML<br />Graphics<br />Binary Data<br />Streaming<br />Receive<br />Receive<br />Firewall<br />Send<br />Send<br />Exchange messages between loosely coupled, composite applications.<br />Direct Connection facilitated by Service Bus if that is best connection mechanism.<br />Application #1<br />Application #2<br />
    143. 143. AppFabric Access Control Service<br />Simplify and automate complex authorization schema requests.<br />Provide abstraction for federated claims-based authentication.<br />Easily establish secure trust relationship.<br />Applications or Users<br />Data and Applications<br />
    144. 144. Windows Azure AppFabric Caching<br />A distributed, in-memory cache for applications running in Windows Azure<br />In-memory cache located near your Windows Azure applications<br />Simple administration<br />Based off the proven Windows Server AppFabric Caching capabilities<br />Benefits<br />Highly scalable caching solution with low latency and high throughput<br />Can dynamically increase and decrease as needed<br />End-user doesn’t have to bother with configuration, deployment, or management of their cache<br />Commercial launch in the first half of 2011<br />
    145. 145. Commercials<br />
    146. 146. Windows Azure Platform Consumption Prices <br />Pay as you go and grow for only what you use when you use it <br />Elastic, scalable, secure, & highly available automated service platform<br />Highly available, scalable, and self managed distributed database service<br />$9.99/month(scale up to 5 GB) <br />Compute<br />Web Edition<br />Per service hour<br />Per database/month <br />$0.12/hour<br />+ Variable Instance Sizes <br />Windows Azure platform AppFabric Service Bus & Access Control<br />Scalable, automated, highly available services for secure connectivity<br />Business Edition <br />Storage <br />Access Control<br />Service Bus<br />$99.99/month(scale up to 50 GB)<br />$3.99/connection<br />Per GB stored & transactions<br />Per database/month <br />$1.99/100k Message Operations<br />Per Message Operation<br />Per Connection<br />$0.15 GB/month<br />$0.01/10K transactions <br />Prices shown in USD only<br />International prices are available<br />
    147. 147. Windows Azure Virtual Machine Instances<br />X-Large (XL)<br />Large (L) <br />Medium (M)<br />Small (S)<br />X-Small (XS)<br />$0.96 <br />$0.48 <br />$0.24 <br />$0.12 <br />$0.05 <br />Per service hour<br />Per service hour<br />Per service hour<br />Per service hour<br />Per service hour<br />Unit of Compute Defined <br />[ Equivalent compute capacity of a 1.6GHz 64-bit processor ]<br />X-Large<br />Large <br />Medium<br />Small<br />Extra Small<br />8 x 1.6GHz<br />4 x 1.6GHz <br />2 x 1.6GHz <br />1 x 1.6GHz <br />1 x 1.0GHz <br />(high I/O)<br />(high I/O) <br />(high I/O)<br />(moderate I/O) <br />(low I/O) <br />14.0 GB memory<br />7.0 GB memory<br />3.5 GB memory <br />1.75 GB memory <br />768 MB memory <br />2000 GB <br />(transient storage) <br />1000 GB storage<br />(transient storage)<br />500 GB storage<br />(transient storage) <br />225 GB storage<br />(transient storage) <br />20 GB storage<br />(transient storage) <br />
    148. 148. Extra-Small VM Instance<br />Born from many requests for a low-cost VM instance<br />XS lowers the barrier of entry to Windows Azure <br />XS VM offers a hosting environment that is appropriate for:<br />Web roles that have very low traffic or short bursts of processing capability<br />Worker roles that require little CPU processing power with low memory consumption<br />Prototyping of a Windows Azure service<br />Demoing how Windows Azure works<br />Roles that wake up and check status periodically<br />XS VM shares resources with other XS VM on the same node<br />
    149. 149. Windows Azure Platform Data Transfer <br />Priced per GB transferred/month (prices shown in USD) <br />North America Region <br />Asia Pacific Region<br />Europe Region<br />$0.10 GB Ingress<br />$0.15 GB Egress <br />$0.10 GB Ingress<br />$0.15 GB Egress <br />$0.30 GB Ingress<br />$0.45 GB Egress <br />N. Europe <br />Sub-region <br />N. Central – US <br />Sub-region <br />E. Asia<br />Sub-region <br />W. Europe <br />Sub-region <br />S. Central - US <br />Sub-region<br />S.E. Asia<br />Sub-region <br />No Charge For Off Peak Ingress Promotion (ends 31/10/10)<br />On-board to Windows Azure platform at no charge <br />Off peak times defined as: 10pm-6am Mon-Fri & from 10pm-Fri to 6am-Mon for weekends in each designated regional time zones below <br />Europe <br />WET = UTC<br />North America<br /> PST = UTC-8 <br />Asia Pacific<br />SST = UTC+8<br />
    150. 150. Monthly Service Level Agreement <br />Compute<br />connectivity <br />Service bus & access control availability<br />Instance monitoring & restart<br />Database <br />availability <br />Storage <br />availability <br />Service bus and access control endpoints will have external connectivity<br />Message operation requests processed successfully<br />Storage service will be available/reachable (connectivity)<br />Your storage requests will be processed successfully<br />Database is connected to the internet gateway <br />All databases will be continuously monitored<br />All running roles will be continuously monitored<br />If role is not running, we will detect and initiate corrective state<br />Your service is connected and reachable via web. Internet facing roles will have external connectivity<br />>99.9%<br />>99.9%<br />>99.9%<br />>99.9%<br />>99.95%<br />
    151. 151.
    152. 152. UK Azure Pricing – Standard Rates<br />AppFabric<br />Access Control <br />£1.2062 per 100,000 transactions* <br />Service Bus <br />£2.4184 per connection on a “pay-as-you-go” basis* <br />Pack of 5 connections £6.0307* <br />Pack of 25 connections £30.1535* <br />Pack of 100 connections £120.6139* <br />Pack of 500 connections £603.0695* <br />Data Transfers<br />North America and Europe regions <br />£0.0607 per GB in <br />£0.091 per GB out <br />Asia Pacific Region <br />£0.1819 per GB in <br />£0.2728 per GB out<br />Inbound data transfers during off-peak times through June 30, 2010 are at no charge.  Prices revert to our normal inbound data transfer rates after June 30, 2010 <br />Windows Azure<br />Compute <br />Small instance (default): £0.0728 per hour <br />Medium instance: £0.1455 per hour <br />Large instance: £0.291 per hour <br />Extra large instance: £0.5819 per hour <br />Storage <br />£0.091 per GB stored per month <br />£0.0061 per 10,000 storage transactions <br />Content Delivery Network (CDN) <br />£0.09 GB CDN Egress<br />£0.06/100K CDN Storage X-actions <br />SQL Azure<br />Web Edition – Up to 1 GB relational database <br />£6.055 per database per month <br />Business Edition – Up to 10 GB relational database <br />£60.604 per database per month <br />£100 per month* - Highly Available 2 x Instance Web Application + 0.5TB data<br />£6 per month* - Highly Available 1Gb SQL Server database <br />* Lots of assumptions and caveats<br />
    153. 153. © 2010 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.<br />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.<br />