Successfully reported this slideshow.

A Lap Around Azure


Published on

My "A Lap Around Azure" presentation from the Microsoft TechDays event in London on 15th April 2010

  • Be the first to comment

A Lap Around Azure

  1. 1. SESSION CODE: Thur 16:15<br />A Lap Around the Azure Platform<br />David Gristwoood<br />Application Architect<br />Microsoft<br /><br />@ScroffTheBad<br />
  2. 2. Many Screens and a Cloud<br />
  3. 3. The Azure Philosophy<br />
  4. 4. Azure is about Scale<br /><ul><li>Azure is designed from the ground up for true Internet scale
  5. 5. Global presence
  6. 6. Ride the “network effect”
  7. 7. LinkedIn: 16 months for first million users, 11 days for most recent million
  8. 8. Facebook: 5 years to hit 250m users, 8 months to double
  9. 9. Scale up and scale down
  10. 10. Supports the “Scale Fast, Fail Fast” model</li></ul><br />
  11. 11. Characteristics of Azure Applications<br />“Scale & Elasticity” <br /><ul><li>Need massive scale
  12. 12. Need high reliability
  13. 13. Have variable load
  14. 14. Have short or unpredictable lifetime
  15. 15. Concert ticket sales</li></ul><br />
  16. 16. Helps Your Systems Scale<br /><ul><li>Most architecture is hidden inside code
  17. 17. Azure encourages you to define your application into constituent parts
  18. 18. Azure can scale the parts of your application as appropriate</li></ul><br />
  19. 19. Flexible Architecture <br /><ul><li>Systems evolve over time
  20. 20. Cloud is not an “all or nothing” proposition
  21. 21. Azure makes it easier to extend to the cloud</li></ul><br />
  22. 22. Natural Platform Evolution<br /><ul><li>Windows Server 2008
  23. 23. Virtualisation
  24. 24. Windows Services, such as IIS, logging, diagnostics, etc
  25. 25. Visual Studio & .NET, ADO.NET, WCF Data Services, MVC, etc</li></li></ul><li>Flexible Business Model<br /><ul><li>No up front hardware purchase
  26. 26. Pay as you go costing model
  27. 27. Ideal in current economical climate </li></ul><br />
  28. 28. The Big Picture<br />
  29. 29. The Azure PlatformThe Big Picture<br />AppFabric<br />SQL Azure<br />Applications<br />Windows Azure<br />Applications<br />Others<br />Mobile<br />Desktop<br />Server<br />
  30. 30. 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 />
  31. 31. Azure Building Blocks<br />
  32. 32. Windows Azure Platform for Application Developers<br />Code<br />Software Development Kit<br />Portal<br />Data<br />Relational<br />Data<br />Api<br />Develop<br />Run<br />Deploy<br />
  33. 33. Software Development Kit (SDK)<br />Local Machine<br />Windows Azure Simulation Environment <br />Development Storage<br />SQL Server Express<br />Development Fabric<br />
  34. 34. Azure Compute Building Blocks<br />Worker Role<br />Web Role<br />System Host<br />IIS Host<br />Your Code<br />Your Code<br />
  35. 35. Windows Azure Roles<br />Your role class typically derives from RoleEntryPoint represents role<br />Do initialization in OnStart() <br />Do work in Run()<br />You call into RoleEnvironmentto enumerate roles, endpoints, etc<br />You get called in response to changes in the number of instances in the service<br />Can force restart<br />
  36. 36. Demo #1 Azure Compute<br />
  37. 37. Azure Storage Building Blocks<br />Storage<br />Queue<br />Blobs &Drives<br />Account<br />Tables<br />
  38. 38. 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 />
  39. 39. Windows Azure Blobfeatures<br />REST based API<br /><br />PutBlob, GetBlob, DeleteBlob, CopyBlob, SnapshotBlob, LeaseBlob, etc<br />Block Blob for streaming + commit-based writes<br />Sequence of blocks, size limit 200GB per blob<br />Page Blob for random read/write<br />Array of pages, size limit 1TB per blob<br />
  40. 40. Windows Azure Drives<br />Page Blob formatted as a NTFS single volume Virtual Hard Drive (VHD)<br />NTFS APIs providing durable file storage<br />Drives can be up to 1TB, up to 16 can be mounted<br />Can upload VHD via Page Blob then mount<br />Offers<br />Ease migration of existing Windows applications to Azure<br />Durability and survival of data on application failover or hardware failure<br />
  41. 41. 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 />
  42. 42. Windows Azure Tables<br />Provides Massively Scalable Structured Storage<br />Billions of entities (rows) and TBs of data<br />Familiar and Easy to use API<br />WCF Data Services, LINQ<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 />
  43. 43. Windows Azure Tables<br />MyTable1<br />Entity: Sports Car<br />Entity: Car<br />Entity: Customer<br />
  44. 44. Table Partitions and Rows<br />
  45. 45. Windows Azure Queues<br />Provide reliable storage and delivery of messages<br />Messages<br />Queues<br />“Body1”<br />“Body2”<br />ThumbnailJobs<br />“Body3”<br />
  46. 46. Common Azure Pattern<br />Worker Role<br />Web Role<br />Queue<br />Storage<br />Blob<br />Storage<br />
  47. 47. Demo #2 Azure Storage<br />
  48. 48. Azure Features<br />
  49. 49. 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 />
  50. 50. Windows Azure Diagnostics<br />Cloud is much harder than single server<br />Dynamic environment, no local access<br />Azure Diagnostics built for monitoring & data collection<br />Focus on what to collect and when<br />Designed for Azure <br />Based on standard APIs<br />Traces, logs, crash dumps, IIS logs, perfcounters, ETW, etc<br />Upload to Azure storage as required<br />Logging & Diagnostics<br />
  51. 51. Service Management CmdLets<br />PowerShell cmdlets wrapping Azure Service Management and Diagnostics API <br />Simple to script out deployments, upgrades, scaling<br /><ul><li>Deploy new services
  52. 52. Upgrade services
  53. 53. Manage storage accounts
  54. 54. Transfer diagnostics information
  55. 55. etc</li></li></ul><li>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 />
  56. 56. Content Delivery Network (CDN) <br />Better performance and user experience by caching Azure blobs at strategically placed locations<br />18 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 />
  57. 57. SQL Azure<br />
  58. 58. SQL Azure & SQL Server<br />“Database as a Service”<br />Similarities<br />“Just change the connection string”<br />Scalable, reliable, robust, technology<br />Same SQL Server core database service & TDS<br />Differences<br />Supports subset of SQL Server 2008<br />Limited to 1Gb or 10Gb* database <br />Different pricing model<br />No Reporting Services, Analysis Services, etc<br />
  59. 59. SQL Azure Application Architectures<br />SQL Azure access from outside the cloud<br />SQL Azure access from <br />within the cloud<br />Application / Tools<br />Application/ Browser<br />SOAP/REST<br />HTTP/S<br />Web Role<br />Windows Azure<br />T-SQL (TDS)<br />T-SQL (TDS)<br />SQL Azure<br />SQL Azure<br />“Code Far”<br />“Code Near”<br />
  60. 60. SQL Azure Roadmap<br />Service Update 2<br />Multiple Active Result Sets (MARS)<br />Service Update 3<br />50 Gb Databases, Spatial support<br />Incubation<br />Project “Houston” – new SQL Azure web administration tool <br />Codename “Dallas” – information as a service<br />ODataservice on top of SQL Azure <br />
  61. 61. OData“ODBC for the Internet”<br /><ul><li>Uniform way of representing data, URL conventions and operations
  62. 62. Auto generation of OData for SQL Azure</li></ul>OData Consumers<br />Session<br />Reports<br />Dashboard<br />Forms<br />Apps<br />Browser<br />Open Data Protocol<br />Batching, Versions<br />Format<br />R/W<br />Query&[Uri]<br />+<br />+<br />+<br />Metadata<br />?<br />OData Producer<br />
  63. 63. Codename “Dallas”<br />Information as a Service<br />GIS/Spatial, traffic, film show times, crime, financial data, navigation, census data, housing, etc…<br />Commercial, official government, trusted public<br />Find, Subscribe, Interact<br />Atom 1.0, RAW<br />Data Consumer<br />Data Provider<br />
  64. 64. Demo #3 SQL Azure<br />
  65. 65. Windows Azure AppFabric<br />
  66. 66. “Infrastructure to help build and manage applications more easily” <br />Windows ServerAppFabric<br />Caching capabilities (was “Velocity”)<br />Workflow + service hosting (was “Dublin”)<br />Windows AzureAppFabric(was “.NET Services”) <br />Service Bus<br />Access Control<br />
  67. 67. AppFabric Service Bus<br />Exposing internal applications on the Internet isn’t easy<br />Network address translation (NAT) and firewalls get in the way<br />The Service Bus provides<br />Intermediary between clients and applications<br />Service registry that clients can use to find the services they need<br />
  68. 68. Wrap Up<br />
  69. 69. 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 />Service currently available as a Community Technology Preview (CTP) at no charge <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 />20 pence per day* - Highly Available 1Gb SQL Server database <br />* Lots of assumptions and caveats<br />
  70. 70. Where next…<br /> – Official Azure site<br /> – UK Azure site<br />– UK Fans of Azure<br /> - My Blog<br /> - User Voice Feedback<br /> Tonight’s Azure User Group Meeting<br />