Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure Umbraco workshop


Published on

Second edition of this popular interactive workshop, this time we focussed on the new “Windows Azure Accelerator for Umbraco” CodePlex project.


Web & Worker Role
Virtual Machine sizes & performance
Storage Types: Blobs, Tables, Azure SQL, queues
No local persistant storage
Network Load Balancing (round robin)
Scale out to multiple instances
Multiples websites in one Azure account
Azure Content Delivery Network
Swap between development & production environments
Typical monthly costs to host Umbraco site

Published in: Technology, Business
  • Be the first to comment

Azure Umbraco workshop

  1. 1. 24 June, 2011<br />Azure + Umbraco workshop<br />
  2. 2. 24 June, 2011<br />Azure + Umbraco workshop<br />Who are we?<br />Kurt Claeys<br />Microsoft EMEA<br />Technology Solution Professional Windows Azure<br /><br /><br />Wim De Coninck<br />Orbit One, Development Team Lead<br /><br /><br />Olivier Mangelschots<br />Orbit One, Managing Director<br /><br /><br />2<br />
  3. 3. 24 June, 2011<br />Azure + Umbraco workshop<br />Free workshop<br />Sponsored by Microsoft Azure<br />In collaboration with <br />Belgian Umbraco User Group (<br />Hosted by Orbit One<br />3<br />
  4. 4. We are:<br />Team of 18<br />Microsoft Gold Partner<br />We build:<br />Websites, Intranet, Portals, custom solutions<br />We love:<br />.NET, SharePoint, Dynamics CRM, Umbraco, Lync, New World of Work<br />Orbit OneInternet Solutions<br />Azure + Umbraco workshop<br />24 June, 2011<br />4<br />
  5. 5. 24 June, 2011<br />Azure + Umbraco workshop<br />Umbracocertification training + exams<br />Here in Ghent at OneOffice<br />Level 1:<br />When: 7 – 8 November 2011<br />Target audience: Designers / Webdevelopers<br />Level 2:<br />When: 9 – 10 November 2011<br />Target audience: .NET Developers<br />5<br />
  6. 6. Azure + Umbraco workshop<br />24 June, 2011<br />We will make everything available:<br />Slides<br />Binaries/source code<br />Documentation<br />Check<br />Downloads<br />6<br />
  7. 7. 24 June, 2011<br />Azure + Umbraco workshop<br />Agenda<br />9:30 – 10:00 Introduction<br />10:00 – 11:00 Technical dive into Azure (part 1)<br />Break<br />11:15 – 12:00 Technical dive into Azure (part 1)<br />12:00 – 12:45 Umbraco CMS and Azure<br />Lunch<br />13:30 Azure Development Program13:45 – 16:30 Hands-on workshop<br />We are a small group, let’s make it interactive!<br />7<br />
  8. 8. 24 June, 2011<br />Azure + Umbraco workshop<br />Is your laptop prepped?<br />This afternoon, you need:<br />Visual Studio 2010<br />Windows Azure SDK + Tools for Visual Studio (March 2011) version 1.4<br />SQL Server 2008 Express R2<br />RegisteredAzure Account<br />Links on<br />8<br />
  9. 9. Technical dive into Azure<br />Azure + Umbraco workshop<br />24 June, 2011<br />9<br />
  10. 10. Who is familiar with?<br />Load balancer (NLB)<br />Round robin<br />Sticky sessions<br />24 June, 2011<br />Azure + Umbraco workshop<br />10<br />
  11. 11. Concept: Network load balancing (NLB)<br />24 June, 2011<br />Azure + Umbraco workshop<br />11<br />
  12. 12. SOFTWARE<br />PLATFORM<br />INFRASTRUCTURE<br />AS A SERVICE<br />AS A SERVICE<br />AS A SERVICE<br />Journey to the Cloud<br />
  13. 13. Windows Azure<br />CLAEYS Kurt<br />Technology Solution Professional<br />Microsoft EMEA<br />
  14. 14. Cloud ?<br />What is cloud computing ?<br />Offering infrastructure, platform and software as a service over the internet to a global market.<br />Move on-premises management of non functional IT assets to a providor.<br />Difference from traditional hostings<br />Sold on demand “pay as you grow”<br />Elastic scalability<br />Service is fully managed by the providor<br />End user centric (IW or developer)<br />Strong focus on integration (cloud-cloud or cloud-on-premises)<br />
  15. 15. Todays challenges<br />percent of IT budgets is spent maintaining datacenter operations<br />percent of datacenter capacity is idle on average <br />Infrastructure Complexity<br />Infrastructure Utilization<br />70<br />85<br />
  16. 16. Positioning AZURE<br />infrastructure as a service (hardware)<br />Servers available in the cloud<br />platform as a service (developer) <br />Delivery of a OS for custom, cloud enabled apps<br />Support for service hosting and interoperability <br />Relational data storage in the cloud <br />software as a service (end users) = BPOS<br />Exchange online<br />Sharepoint online<br />Dynamics CRM online<br />SAAS<br />IAAS<br />PAAS<br />
  17. 17. Positioning AZURE<br />infrastructure as a service (hardware)<br />Servers available in the cloud<br />platform as a service (developer) <br />Delivery of a OS for custom, cloud enabled apps<br />Support for service hosting and interoperability <br />Relational data storage in the cloud <br />software as a service (end users) = BPOS<br />Exchange online<br />Sharepoint online<br />Dynamics CRM online<br />SAAS<br />IAAS<br />PAAS<br />
  18. 18. IT as Service<br />Private<br />(On-Premise)<br />Infrastructure<br />(as a Service)<br />Platform<br />(as a Service)<br />You manage<br />Applications<br />Applications<br />Applications<br />You manage<br />Runtimes<br />Runtimes<br />Runtimes<br />Security & Integration<br />Security & Integration<br />Security & Integration<br />Managed by vendor<br />You manage<br />Databases<br />Databases<br />Databases<br />Servers<br />Servers<br />Servers<br />Managed by vendor<br />Virtualization<br />Virtualization<br />Virtualization<br />Server HW<br />Server HW<br />Server HW<br />Storage<br />Storage<br />Storage<br />Networking<br />Networking<br />Networking<br />
  19. 19. Cloud Computing Taxonomy<br />The Windows Azure platform fits here<br />IaaS<br /> Traditional IT<br />SaaS<br />PaaS<br />You manage<br />Applications<br />Applications<br />Applications<br />Applications<br />Data<br />Data<br />Data<br />Data<br />You manage<br />Runtime<br />Runtime<br />Runtime<br />Runtime<br />Managed by vendor<br />Middleware<br />Middleware<br />Middleware<br />Middleware<br />You manage<br />Managed by vendor<br />O/S<br />O/S<br />O/S<br />O/S<br />Managed by vendor<br />Virtualization<br />Virtualization<br />Virtualization<br />Virtualization<br />Servers<br />Servers<br />Servers<br />Servers<br />Storage<br />Storage<br />Storage<br />Storage<br />Networking<br />Networking<br />Networking<br />Networking<br />
  20. 20. Classic IT Capacity problem.<br />Allocated IT-capacities<br />Load Forecast<br />“Under-supply“ of capacities<br />“Waste“ of capacities<br />Fixed cost of IT-capacities<br />IT CAPACITY<br />Barrier for<br />innovations<br />ActualLoad<br />TIME<br />
  21. 21. Upfront investments<br />
  22. 22. Capacity in a cloud model<br />Load Forecast<br />Allocated IT capacities<br />No “under-supply“<br />IT CAPACITY<br />Reduction of “over-supply“<br />Possible reduction of IT-capacities in case of reduced load<br />Reduction of initial investments<br />ActualLoad<br />TIME<br />
  23. 23. Rates<br />Compute<br />Per service hour of 1 CPU = 0,12 U$<br />Storage<br />Per GB/month =0,15 U$<br />Transactions<br />Per 10K = 0,01 U$ <br />SQL Azure<br />10 GB/month = 99,99 U$<br />Access Control Transactions<br />10K = 0,01 U$<br />Service Bus Connections<br />1 connection/month = 3,99 U$<br />Data Transfer egress<br />Per GB = 0,15 U$<br />Data Transfer ingress<br />Per GB = FREE<br />
  24. 24. Monthly Bill<br />
  25. 25. Azure Pricing<br />
  26. 26. “Growing Fast“ <br />“On and Off “ <br />Inactivity<br />Period <br />Compute <br />Compute <br />Average Usage<br />Usage<br />Average<br />Time <br />Time <br />On & off workloads (e.g. batch job)<br />Over provisioned capacity is wasted <br />Time to market can be cumbersome <br />Successful services needs to grow/scale <br />Keeping up w/ growth is big IT challenge <br />Complex lead time for deployment<br />“Unpredictable Bursting“ <br />“Predictable Bursting“ <br />Compute <br />Compute <br />Average Usage <br />Average Usage <br />Time <br />Time <br />Unexpected/unplanned peak in demand <br />Sudden spike impacts performance <br />Can’t over provision for extreme cases <br />Services with micro seasonality trends <br />Peaks due to periodic increased demand<br />IT complexity and wasted capacity <br />
  27. 27. The Windows Azure platform is a flexible cloud–computing platform that lets you focus on solving business problems and addressing customer needs.<br />
  28. 28.
  29. 29. Virtual Network<br />Storage<br />Compute<br />Access Control<br />Service Bus<br />Caching<br />Reporting<br />Database<br />Data Sync<br />
  30. 30. Datacenters<br />Quincy, WA<br />Chicago, IL<br />San Antonio, TX<br />Dublin, Ireland<br />Generation 4 DCs<br />
  31. 31. Azure Fabric Controller<br />Service Definition<br />The Fabric Controller communicates with every server within the Fabric. <br />Interacts with a “Fabric Agent” on each machine<br />Monitors every VM, application and instance<br />Service Management is performed by the Fabric Controller <br />Performs load balancing, check pointing and recovery<br />Fabric Controller<br />Fabric<br />X<br /><br /><br /><br /><br /><br /><br /><br />X<br /><br /><br />X<br /><br />
  32. 32. Traditional Architecture<br />DB<br />Web UITier<br />Browser<br />Business Logic Tier<br />Request<br />Request<br />
  33. 33. Browser<br />Browser<br />DB<br />Browser<br />Business Logic Tier<br />Web UITier<br />Browser<br />…<br />Browser<br />
  34. 34. Browser<br />Browser<br />DB<br />Browser<br />Web UITier<br />Business Logic Tier<br />Browser<br />“Server Busy”<br />…<br />Browser<br />
  35. 35. Browser<br />Browser<br />N L B<br />Web Role<br />DB<br />Browser<br />Business Logic Tier<br />Web Role<br />Browser<br />Web Role<br />…<br />Browser<br />
  36. 36. Browser<br />Browser<br />N L B<br />Web Role<br />N L B<br />WorkerRole<br />DB<br />Browser<br />Web Role<br />WorkerRole<br />Browser<br />Web Role<br />WorkerRole<br />…<br />Browser<br />
  37. 37. Browser<br />Browser<br />N L B<br />Web Role<br />N L B<br />WorkerRole<br />DB<br />Browser<br />Web Role<br />WorkerRole<br />Browser<br />Web Role<br />WorkerRole<br />…<br />Browser<br />Azure<br />
  38. 38. Azure Architecture<br />Windows Azure Service<br />SQL Data<br />Your Service<br />Worker Service<br />NL B<br />Worker <br />Role<br />SQL<br />Internet<br />SQL<br />Your Storage<br />SQL<br />Queues<br />NL B<br />Web Site<br />(ASPX, ASMX, WCF)<br />Web Site<br />(ASPX, ASMX, WCF)<br />Web Role<br />(ASPX, WCF)<br />Tables<br />Blobs<br />
  39. 39. Azure Network Load Balancer<br />webrole<br />NLB<br />Instance 1<br />Instance 2<br />Instance 3<br />
  40. 40. Azure Network Load Balancer<br />webrole<br />NLB<br />Instance 1<br />Instance 2<br />Instance 3<br />
  41. 41. Azure Network Load Balancer<br />webrole<br />NLB<br />Instance 1<br />Instance 2<br />“round robin”<br />no sticky sessions !<br />Instance 3<br />
  42. 42. Azure Roles<br />Running apps in a virtual machine<br />A virtual machine can have 1,2,4 or 8 cores<br />We can have multiple instances of the VM running<br />Two types<br />Web Role = internet facing, IIS, request/response, ASP.NET or WCF<br />Worker Role = background processing, endless loop, internal endpoints, can host WCF services<br />
  43. 43. Azure Roles<br /><ul><li>WebRole
  44. 44. Hosting ASP.NET pages and/or WCF Services.
  45. 45. Handles incoming HTTP/HTTPS requests.
  46. 46. Public, Internet faced.
  47. 47. Has access to Storage Services.
  48. 48. WorkerRole
  49. 49. Code running in background, processing jobs.
  50. 50. ‘Hidden’ processing power.
  51. 51. Similar to a batch job or Windows service.
  52. 52. Handles messages from a queue.
  53. 53. Has access to Storage Services.</li></li></ul><li>Azure Service<br />Storage<br />Service<br />X number of Webroles<br />external endpoint 1 <br />(port80)<br />blobs<br />webrole 1<br />tables<br />Instance 1<br />Instance 2<br />Instance 3<br />queues<br />external <br />endpoint 2 <br />(port X)<br />webrole 2<br />SQL Azure DB<br />Instance 1<br />internal endpoint<br />internal endpoint<br />internal endpoint<br />Performance Metrics<br />Instance 1<br />Instance 2<br />Instance 3<br />workerrole1<br />Application Log Files<br />X number of Workerroles<br />Event Logs<br />certificate<br />IIS Logs<br />Crashdumps<br />Service configuration, maintainable after deploy<br />Service definition, defined at deployment<br />
  54. 54. Configuring Virtual Machines Size<br />
  55. 55. Configuring the service<br />Service configuration, maintainable after deploy<br />Number of instances<br />ConnectionString to Storage<br />Thumbprints of certificates<br />Custom setting<br />Service definition, defined at deployment<br />Size of VM<br />Local storage capacity<br />Endpoint<br />External<br />Internal<br />
  56. 56. Azure VMRole<br />Ability to upload your own customized WS2008R2 Enterprise images<br />Full control over the OS image, install whatever you want on it.<br />You can remote desktop into the OS<br />Target scenarios<br />Need to use apps/libraries with no unattended setup<br />32 bits apps<br />Change registry settings<br />Scale out !<br />Instances are behind loadbalancer, one public IP per service<br />No durability of OS image on hardware failure<br />With VM Role, the customer creates & maintains the OS<br />Paying model = Paying model of current web/workerrole<br />Uses differencing disks to upload deltas to image<br />
  57. 57. Web/WorkerRole vs VMRole<br />All three are virtual images running in the datacenter under control of the Azure fabric controller behind the loadbalancer.<br />Web/Worker Role<br />The virtual image is already there, ... you upload your app, ... Azure places this app on the image and runs the image.<br />VM Role<br />You upload the complete virtual image with all apps installed, ... Azure runs the image<br />Visual Studio<br />virtual image<br />virtual image<br />virtual image<br />app<br />app<br />app<br />Azure<br />Azure<br />app<br />development environment<br />development environment<br />Hyper-V<br />
  58. 58. VMRole lifecycle<br />Create a .vhd in Hyper-V manager, install W2008 R2 as OS<br />Install whatever roles, features and apps you want on it.<br />Turn of automatics updates<br />Install Windows Azure VM Role Integration Components<br />Run sysprep.exe and bring it down<br />Upload the .vhd to Azure (needs a certificate)<br />Deploy a service configuration (Visual Studio, Managament Portal or Management API PS commandlets)<br />
  59. 59. Azure Virtual Network<br />Aka as “Azure Connect”<br />Secure network connectivity between on-premises and cloud, supports standard IP protocols<br />Automatic setup of secure IP-level network<br />Example use cases:<br />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 />Remote administration and trouble-shooting of Windows Azure Roles<br />Enable local computers for connectivity by installing WA Connect agent<br />DNS name resolution<br />
  60. 60. Azure Virtual Network<br />Network policy managed through portal<br />Web/Worker<br />VM Role<br />Azure Connect Gateway<br />Azure Connect Gateway<br />IPV6 address<br />IPV6 address<br />On Premise<br />Machine<br />SQL Server<br />IPV6 address<br />Azure Connect Gateway<br />
  61. 61. Azure Storage<br />Non SQL data<br />Unlimited storage<br />4 types<br />Tables: no fixed schema, no relations<br />Blobs: large objects, have metadata attributes, MIME type aware<br />Queues: assync communication to workerrole<br />Drives: NTFS volume mounted to roles<br />Accessible through a HTTP/REST API<br />
  62. 62. Windows Azure Storage Account<br />User creates a globally unique storage account name.<br />Account<br />Blob<br />Table<br />Queue<br />Storagekeepsbeingavailable, even whenapplication is not running !<br />
  63. 63. Libraries<br />Microsoft.WindowsAzure.*<br />Found in Windows Azure SDK<br />System.Data.ServicesSystem.Data.Services.Client<br />.NET 3.5<br />using Microsoft.WindowsAzure;<br />using Microsoft.WindowsAzure.StorageClient;<br />using System.Data.Services.Common;<br />
  64. 64. Azure Tables<br />s<br />Tables store entities.<br />Entity schema can vary in the same table. <br />Can Not :<br />Create foreign key relationships between tables.<br />Perform server side joins between tables.<br />Create custom indexes on the tables.<br />No server side Count(), for example.<br />
  65. 65. Azure Storage Tables<br />partition key<br />Tables are partitioned to support load balancing across storage nodes<br />unique<br />row key<br />timestamp<br />table<br />field1<br />field2<br />field3<br />
  66. 66. Table Partioning<br />Data<br />Row key<br />Partition key<br />A<br />123<br />foo<br />bar<br />etc<br />A<br />123<br />foo<br />bar<br />etc<br />A<br />124<br />foo<br />bar<br />etc<br />A<br />124<br />foo<br />bar<br />etc<br />B<br />123<br />foo<br />bar<br />etc<br />B<br />123<br />foo<br />bar<br />etc<br />Partition “B”<br />Partition “A”<br />Storage node 1<br />Storage node 2<br />
  67. 67. Azure Storage Blobs<br />Large data<br />Can be made private or public<br />Can have metadata attributes and MIME types<br />Can be cached by a Azure Content Delivery Network (CDN)<br />Time based access to blobs with shared access signatures<br />Two Types<br />Block Blobs : max 200GB, Usefor data which is streamed back to a worker or client<br />Page Blobs : max 1TB, Use for data accessed frequently by random reads and writes.<br />Azure Drives are also blobs <br />
  68. 68. Blob addressing<br />Blob<br />Container<br />Accounts<br />Pic001.jpg<br />SomeContainer<br />Pic002.jpg<br />MyAccount<br />Mov001.wmv<br />AnotherContainer<br />Mov002.wmv<br />http://<AccountName><ContainerName>/<BlobName><br />
  69. 69. Azure Storage Blobs accessibility<br />blob<br />private<br />(Azure service or on premises)<br />need storage credentials<br />no storage credentials <br />public<br />(browser, REST)<br />time based with shared access signature<br />GET st=2009-02-09&se=2009-02-10 &sr=c&sp=r&si=YWJjZGVmZw%3d%3d&sig= dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d<br />
  70. 70. Shared Access Signatures<br />Limit blobs in public container to be readable only if url contains shared access signature. <br />Share access signature can be made valid for a timerange only. <br />http://<accountname><containername>/<blobname>?se=2010-04-04T11%3A38%3A31Z&sr=b&sp=r&sig=D73BRVuRBV9nXp9rsw35b5rkLadi6YEZ4Ti1S8eeAQQ%3D<br />
  71. 71. Azure Storage Queues<br />Message in – Message out<br />To support the assync processing model<br />Topologies :<br />Cloud-Cloud (web – worker)<br />Cloud-OnPremises<br />OnPremises-Cloud<br />OnPremises-OnPremises through the cloud<br />8K per message<br />HTTP/REST based<br />
  72. 72. Azure Storage Queues<br />Message Creator<br />Message<br />Reader<br />Msg 1<br />Msg 2<br />Msg 3<br />Msg 4<br />
  73. 73. Azure Storage Queues<br />get message<br />Msg 1<br />process message<br />Msg 1<br />Msg 2<br />Msg 3<br />Msg 4<br />delete message<br />
  74. 74. Azure Storage Queues<br />get message<br />Msg 1<br />process message<br />Msg 2<br />Msg 3<br />Msg 4<br />When not deleted within a timeout, the message is added to the queue again !<br />Msg 1<br />delete message<br />
  75. 75. Drives<br />Azure Web orWorkerRole<br />AzureStorage<br />blob<br />using (StreamReadersr = File.OpenText(@”F:file.txt”))<br />F:<br />Mounted , results in driveletter<br />uploaddownload<br />Attach VHD<br />On-Premises<br />blob<br />using (StreamReadersr = File.OpenText(@”F:file.txt”))<br />F:<br />
  76. 76. Azure Content Delivery Network<br />user<br />Azure Datacenter<br />Service <br />(webrole, workerrole)<br />requests blob<br />Blob storage<br />CDN Node<br />Is blob cached here ?<br />blob<br />
  77. 77. Azure Content Delivery Network<br />user<br />Azure Datacenter<br />Service <br />(webrole, workerrole)<br />another request<br />Blob storage<br />CDN Node<br />blob<br />
  78. 78. SQL Azure<br />Relational DB in the Cloud<br />Based on SQL 2008 R2<br />Accessible from every ADO.NET client<br />SQL 2008 R2 Management Studio <br />High-availability and fault tolerance<br />No physical administration is required <br />Use existing knowledge in T-SQL development <br />Scale databases up or down based on business needs (between 1GB and 50GB)<br />
  79. 79. SQL Azure<br />admin<br />SQL Azure Server<br />My DB<br />(1 GB)<br />My DB<br />(50 GB)<br />Master DB<br />users and roles<br />users and roles<br />logins<br />firewall<br />internal<br />restricted IP ranges<br />Azure Services<br />(webrole,workerrole)<br />Anybody<br />code “near”<br />code “far”<br />
  80. 80. SQL Azure<br />admin<br />SQL Azure Server<br />My DB<br />(50 GB)<br />My DB<br />(1 GB)<br />Master DB<br />stored on 3 replicas<br />stored on 3 replicas<br />stored on 3 replicas<br />firewall<br />internal<br />restricted IP ranges<br />Azure Services<br />(webrole,workerrole)<br />Anybody<br />code “near”<br />code “far”<br />
  81. 81. SQL Azure quorum commit<br />Quorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.<br />DB<br />transaction<br />write<br />write<br />replicas<br />
  82. 82. SQL Azure quorum commit<br />Quorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.<br />DB<br />transaction<br />commited<br />OK<br />OK<br />replicas<br />
  83. 83. AppFabric Caching<br />A distributed, in-memory cache, implemented as a cloud service.  <br />The same capabilities available in Windows Server AppFabricCaching.<br />You can programmatically interact with the cache.<br />Out-of-the-box ASP.NET providers for both session state and page output caching.<br />Scenarios :<br />Statefull, multi-instance Azuer roles<br />ASP.NET page caching<br />Speed up access to static data<br />
  84. 84. AppFabric Caching<br />Role Instance 1<br />Role Instance 2<br />On Premise app<br />Read/Write data<br />Read/Write data<br />Read/Write data<br />Caching<br />
  85. 85. AppFabric Access Control<br />identity providers<br />Azure ACS<br />rules<br />Facebook ID<br />Claims<br />authorization<br />Redirect login<br />ADFS2<br />WebApp<br />
  86. 86. Short break<br />Azure + Umbraco workshop<br />24 June, 2011<br />Feel at home – help yourself!Coffee, tea, Coca-Cola, Fanta, Juice, Ice tea, ...<br />Session continues at 11:30<br />77<br />
  87. 87. CMS systems on Azure<br />Azure + Umbraco workshop<br />24 June, 2011<br />78<br />
  88. 88. CMS in Azure, why?<br />Paul Sterling (Technical Lead)<br />Azure solving the future issues of<br />highly-scaled<br />widely distributed<br />very dynamic WCMS solutions<br />NOT a replacement for traditional hosting, but a new option <br />24 June, 2011<br />Azure + Umbraco workshop<br />79<br />
  89. 89. How much does it cost?<br />Simulation (approximate cost)<br />1GB Azure SQL <br />10GB Blob storage (1000000 read/write transactions/day)<br />50GB download traffic, 10GB upload traffic<br />One webinstance: €77,01/month (promo offer €52,71)<br />Two instances: €140,91/month (promo offer €94,78)<br />Two instances + one staging: €204,81/month (promo offer €136,85)<br />Conclusion<br />Hosting websites on Azure = starting at €635/year<br />Use Azure Pricing calculator!<br /><br />Differencesbetweeninstances<br /><br />24 June, 2011<br />Azure + Umbraco workshop<br />80<br />
  90. 90. Website CMS in Azure<br />Azure is great for<br />High traffic websites<br />Sites where you need to quickly scale-up/down<br />Global sites (visits many geo locations)<br />Load balancing, stronger SLA’s<br />Azure is not ideal for<br />Very low cost hosting projects<br />Projects with lots of legacy code/dependencies<br />24 June, 2011<br />Azure + Umbraco workshop<br />81<br />
  91. 91. Umbraco in Azure<br />82<br />Azure + Umbraco workshop<br />24 June, 2011<br />
  92. 92. Umbraco v4.5+ in Azure: Challenges<br />What did we learn this morning?<br />What are the challengesto host a CMS in Azure?<br />Group talk<br />24 June, 2011<br />Azure + Umbraco workshop<br />83<br />
  93. 93. Where does Umbraco store info?<br />SQL database: <br />Page templates (no binaries, only references in DB)<br />Page content (meta-data, texts, navigation nodes)<br />Media/documents (no binaries, only reference in DB)<br />Users & members, permissions<br />Logs (errors, actions in admin)<br />File storage: <br />Page templates: .Master<br />Scripts/styles: XSLT, CSS, JS, ... + design elements used in templates<br />User controls: ASCX/DLLs + Umbraco binaries<br />Media: GIF, JPG, PDF, Videos, ...<br />Config: web.config + /config/ xml files<br />24 June, 2011<br />Azure + Umbraco workshop<br />84<br />
  94. 94. Umbraco XML cache<br />XML file (/app_data/umbraco.config)<br />Stored on local file system<br />Contains all published nodes<br />Purpose<br />Fast app warm-up time (<1 sec)<br />Less SQL queries – SQL is not used public site<br />Automatically updated<br />Every time you publish using Umbracobackend<br />XML dump of in-memory cache<br /><br />24 June, 2011<br />Azure + Umbraco workshop<br />85<br />
  95. 95. Challenges<br />Multiple instances of the web-role<br />Round-robin load-balancing<br />Sessions need to be stored centrally<br />Storage<br />No local storage (unsafe)<br />No “shared drive” over multiple machines<br />CDN – Content Delivery Network<br />Only possible when files are stored on Azure Blobs<br />Custom code<br />Needstoworkwithin the boundries of Azure<br />24 June, 2011<br />Azure + Umbraco workshop<br />86<br />
  96. 96. 24 June, 2011<br />Azure + Umbraco workshop<br />Solutions to host Umbraco v4.5+ on Windows Azure<br />Simple web-role (manual creation)<br />CodePlex accelerator (by Slalom Consulting)<br />Sync Scripts (by Kurt & O1)<br />CodePlex accelerator (by Microsoft)<br />87<br />
  97. 97. 24 June, 2011<br />Azure + Umbraco workshop<br />Compare solutions<br />88<br />
  98. 98. 24 June, 2011<br />Azure + Umbraco workshop<br />CodePlexAccelerator by Slalom Consulting<br />89<br />
  99. 99. 24 June, 2011<br />Azure + Umbraco workshop<br />CodePlexAccelerator by Slalom Consulting<br />CodePlex project<br />By Slalom Consulting (Seattle)<br />Uses old Azure API implementation<br />Only 1 webrole is supported<br />Less control storage transactions (mounted drive)<br />90<br />
  100. 100. 24 June, 2011<br />Azure + Umbraco workshop<br />Synchronization scripts<br />91<br />
  101. 101. Synchronisation scripts<br />Current implementation (free Download)<br />One-way sync, copies from Azure Blob to local storage (full sync)<br />IIS configuration, app Pool, Website, binding of hostheaders<br />Triggered at VM boot (startup.exe)<br />Thanks to Kurt Claeys!<br />24 June, 2011<br />Azure + Umbraco workshop<br />92<br />
  102. 102. CodePlex Accelerator by Microsoft<br />24 June, 2011<br />Azure + Umbraco workshop<br />93<br />
  103. 103. CodePlex Accelerator by Microsoft<br />How does the Accelerator work?<br />Creates 1 or more web-role instances (VMs)<br />deploys a sync IIS process on these machines<br />Deploy tool uploadscomplete Umbraco installation to Blob Storage<br />Includes all the files: images, css, aspx, web.config, …<br />Created SQL Azure database for session stage<br />Auto configuration of web.config<br />Scripts keeps local file system in sync with the blob storage <br />Every second<br />Bi-directional<br />Uuser adds file trough Umbraco cms, is stored on local filesystem of the current web-role<br />One second later, file is pushed to Azure Blob Storage<br />One second later, file is pulled to the other web-roles<br />24 June, 2011<br />Azure + Umbraco workshop<br />94<br />
  104. 104. How to update files of your site?<br />CloudBerry Explorer for Azure Blob Storage (Free!)<br />FTP like access toAzureBlob<br /><br />Alternative free tool:<br />ClumsyLeafCloudXplorer<br /><br />Warning: Does notcreate empty folders<br />24 June, 2011<br />Azure + Umbraco workshop<br />95<br />
  105. 105. CloudBerry Explorer<br />24 June, 2011<br />Azure + Umbraco workshop<br />96<br />
  106. 106. Future: Umbraco v5<br />CTP Released last week (available on CodePlex)<br /><br />Betaexpected Q4 2011<br />RTM somewhere end 2011 - beginning 2012<br />Paul Sterling (Technical Lead)<br />With regard to Umbraco v5; the support for Azure will be native in the sense that the architecture takes into account the de-coupled scenarios possible in cloud-based computing - where your data store may be a database, a flat store, or a blob store - and the runtime may be in a single instance or in 1,000's of volatile instances.  <br />If you are looking to leverage Azure for your solutions in the future, keep an eye on v5 as much of the architecture has been finalized and a usable code base is not too far off.<br />24 June, 2011<br />Azure + Umbraco workshop<br />97<br />
  107. 107. Umbraco v4.7+ in Azure, too early?<br />No! <br />No needtowaitfor v5<br />Umbraco v4.7 + Microsoft accelerator is great!<br />24 June, 2011<br />Azure + Umbraco workshop<br />98<br />
  108. 108. Lunch<br />Azure + Umbraco workshop<br />24 June, 2011<br />There are sandwiches and fresh soup<br />Workshop starts at 13:15<br />99<br />
  109. 109. 24 June, 2011<br />Azure + Umbraco workshop<br />Azure Development Program<br />Pay €1.500 to Microsoft and get<br />1 half day business workshop (Why Azure, pricing, ...)<br />4 half days technical assistance<br />When your project goes live (before 15 May)<br />Can also be Proof of Concept<br />Full refund of €1.500!<br />Visibility on Microsoft sites<br />First 50 live Benelux projects get a price<br />Windows Phone 7, ...<br />Interested? Contact Tom Crombez<br /><br /><br />100<br />
  110. 110. 24 June, 2011<br />Azure + Umbraco workshop<br />Cloud Essentials<br /> Windows Azure <br />750 hours of an extra small compute instance <br />25 hours of a small compute instance <br />3GB of storage <br />250,000 storage transactions <br />SQL Azure <br />1 Web Edition database (1 GB) <br />Windows Azure platform AppFabric <br />100,000 Access Control transactions <br />2 Service Bus connections <br />Data Transfers (worldwide) <br />3 GB in <br />6 GB out<br />101<br />
  111. 111. 24 June, 2011<br />Azure + Umbraco workshop<br />MSDN Premium Subscription Benefit<br />Windows Azure <br />750 hours of a small compute instance <br />10 GB of storage <br />1,000,000 storage transactions<br />SQL Azure <br />3 Web Edition databases (up to 1 GB relational database each)<br />Windows Azure platform AppFabric <br />1,000,000 Access Control transactions <br />1 pack of 5 Service Bus connections***<br />Data Transfers <br />North America and Europe (per region) <br />7 GBs in <br />14 GBs out<br />102<br />
  112. 112. Hands-on<br />Azure + Umbraco workshop<br />24 June, 2011<br />103<br />
  113. 113. 24 June, 2011<br />Azure + Umbraco workshop<br />Nowit’syour turn!<br />Prepare the storage account<br />Run the setup script<br />Prepare the Accelerator fordeployment<br />Prepare the hosted service<br />Prepare the SQL Azure service<br />ConfigureUmbracowith the script<br />Upload the site<br />Follow the step-by-step guide<br />We are hereto help!<br />104<br />