Your SlideShare is downloading. ×
0
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Azure and Umbraco CMS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Azure and Umbraco CMS

6,032

Published on

Workshop on 10 March 2011, giving by Kurt Claeys (Microsoft), Mel Gerats and Olivier Mangelschots (Orbit One). …

Workshop on 10 March 2011, giving by Kurt Claeys (Microsoft), Mel Gerats and Olivier Mangelschots (Orbit One).

Topics:
Technical dive into Azure
Umbraco CMS and Azure
Azure Development Program
Hands-on workshop

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

No Downloads
Views
Total Views
6,032
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
115
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • When a request is made using the Windows Azure Blob service URL, the blob is read directly from the Windows Azure Blob service. When a request is made using the Windows Azure CDN URL, the request is redirected to the CDN endpoint closest to the location from which the request was made to provide access to the blob. If the blob is not found at that endpoint, then it is retrieved from the Blob service and cached at the endpoint, where a time-to-live (TTL) setting is maintained for the cached blob. The TTL specifies that the blob should be cached for that amount of time in the CDN until it is refreshed by the Blob service. The CDN attempts to refresh the blob from Windows Azure Blob service only once the TTL has elapsed. The default TTL is 72 hours. At PDC 2009, we will allow you to specify the standard HTTP Cache-Control header for your Windows Azure blobs. If this value is specified for a blob, then the TTL period will be set to the value specified in Cache-Control header.
  • Transcript

    • 1. 10 March, 2011<br />Azure + Umbraco workshop<br />
    • 2. 10 March, 2011<br />Azure + Umbraco workshop<br />2<br />Who are we?<br />Kurt Claeys<br />Microsoft EMEA<br />Technology Solution Professional Windows Azure<br />kclaeys@microsoft.comhttp://twitter.com/kurtclaeys<br />Mel Gerats<br />Orbit One, Lead developer<br />mel@orbitone.com<br />Olivier Mangelschots<br />Orbit One, Managing Director<br />olivier@orbitone.com<br />
    • 3. 10 March, 2011<br />Azure + Umbraco workshop<br />3<br />Free workshop<br />Sponsored by Microsoft Azure<br />In collaboration with <br />Belgian Umbraco User Group (BUUG.be)<br />Hosted by Orbit One<br />
    • 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 />10 March, 2011<br />4<br />
    • 5. 10 March, 2011<br />Azure + Umbraco workshop<br />5<br />Who are you?<br />Damiaan Peeters (Comm-IT.be)<br />TomCrombez (Microsoft.com)<br />Christophe Heureux (JWTDialogue.com)<br />DavidDesloovere (Natcheurope.com)<br />Anthony Candaele (Webmove.be)<br />Dirk De Grave (netaddICTs.be)<br />DavidVerberckmoes (Promex.be)<br />Voicu Matei (OrbitOne.com)<br />Thomas Stock (OrbitOne.com)<br />Lieven Meys (OrbitOne.com)<br />Kevin De Smet (OrbitOne.com)<br />Welcome!<br />
    • 6. 10 March, 2011<br />Azure + Umbraco workshop<br />6<br />Don’t miss: Umbraco BE Festival<br />Friday 18 March 9:00 – 18:00<br />deSingel Antwerp<br />Free entrance, register on BUUG.be<br />International speakers<br />Sponsored by:<br />
    • 7. 7<br />Azure + Umbraco workshop<br />10 March, 2011<br />We will make everything available:<br />Slides<br />Binaries/source code<br />Documentation<br />Check www.buug.be<br />Downloads<br />
    • 8. 10 March, 2011<br />Azure + Umbraco workshop<br />8<br />Agenda<br />9:30 – 11:00 Technical dive into Azure<br />Break<br />11:30 – 12:30 Umbraco CMS and Azure<br />Lunch<br />13:30 Azure Development Program<br />13:45 – 16:30 Hands-on workshop<br />We are a small group, let’s make it interactive!<br />
    • 9. 10 March, 2011<br />Azure + Umbraco workshop<br />9<br />Is your laptop prepped?<br />This afternoon, you need:<br />Visual Studio 2010<br />Windows Azure SDK 1.3<br />SQL Server 2008 Express R2<br />SQL Azure migration wizard<br />Registered Azure Account<br />Links on http://www.buug.be/en/events<br />
    • 10. Technical dive into Azure<br />10<br />Azure + Umbraco workshop<br />10 March, 2011<br />
    • 11. Who is familiar with?<br />Load balancer (NLB)<br />Round robin<br />Sticky sessions<br />10 March, 2011<br />Azure + Umbraco workshop<br />11<br />
    • 12. Concept: Network load balancing (NLB)<br />10 March, 2011<br />Azure + Umbraco workshop<br />12<br />
    • 13. SOFTWARE<br />PLATFORM<br />INFRASTRUCTURE<br />AS A SERVICE<br />AS A SERVICE<br />AS A SERVICE<br />Journey to the Cloud<br />
    • 14. The Windows Azure platform is a flexible cloud–computing platform that lets you focus on solving business problems and addressing customer needs.<br />
    • 15. 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 />
    • 16. Cloud Scenarios<br />“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 />
    • 17. Azure Examples<br />online tax declaration, <br />deadline is july 15th<br />internet based lottery game grows <br />faster than expected<br />
    • 18. Azure Datacenters<br />Quincy, WA<br />Chicago, IL<br />San Antonio, TX<br />Dublin, Ireland<br />Generation 4 DCs<br />
    • 19. 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 />
    • 20. Virtual Network<br />Storage<br />Compute<br />Access Control<br />Service Bus<br />Caching<br />Reporting<br />Database<br />Data Sync<br />
    • 21. 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 />Web Site<br />(ASPX, ASMX, WCF)<br />Web Site<br />(ASPX, ASMX, WCF)<br />Web Role<br />(ASPX, WCF)<br />Tables<br />Blobs<br />
    • 22. Azure Network Load Balancer<br />webrole<br />NLB<br />Instance 1<br />Instance 2<br />Instance 3<br />
    • 23. Azure Network Load Balancer<br />webrole<br />NLB<br />Instance 1<br />Instance 2<br />Instance 3<br />
    • 24. 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 />
    • 25. 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 />Three 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 />VM Role = custom OS (W2008R2)<br />
    • 26. Azure Roles<br /><ul><li>WebRole
    • 27. Hosting ASP.NET pages and/or WCF Services.
    • 28. Handles incoming HTTP/HTTPS requests.
    • 29. Public, Internet faced.
    • 30. Has access to Storage Services.
    • 31. WorkerRole
    • 32. Code running in background, processing jobs.
    • 33. ‘Hidden’ processing power.
    • 34. Similar to a batch job or Windows service.
    • 35. Handles messages from a queue.
    • 36. 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 />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 />SQL Azure DB<br />Crashdumps<br />Service configuration, maintainable after deploy<br />Service definition, defined at deployment<br />
    • 37. Configuring Virtual Machines Size<br />
    • 38. 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 />
    • 39. Scaling (custom scaling engine)<br />App<br />performance metrics<br />Local DB<br />App<br />App<br />running on 2 instances<br />3<br />interprete metrics<br />defines on metrics and polling intervals<br />Scaling engine<br />changes the configuration<br />Configuration<br />
    • 40. 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 />
    • 41. 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 />
    • 42. 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 />
    • 43. 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 />
    • 44. 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 />
    • 45. 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 />PAAS<br />
    • 46. 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 />PAAS<br />
    • 47. 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 />PAAS<br />
    • 48. 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>.blob.core.windows.net/<ContainerName>/<BlobName><br />
    • 49. 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 http://myaccount.blob.core.windows.net/pictures/profile.jpg? st=2009-02-09&se=2009-02-10 &sr=c&sp=r&si=YWJjZGVmZw%3d%3d&sig= dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d<br />PAAS<br />
    • 50. 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>.blob.core.windows.net/<containername>/<blobname>?se=2010-04-04T11%3A38%3A31Z&sr=b&sp=r&sig=D73BRVuRBV9nXp9rsw35b5rkLadi6YEZ4Ti1S8eeAQQ%3D<br />
    • 51. Azure Storage Drives<br />On premises <br />Azure<br />Blob Storage<br />WIN7/WS2008<br />data<br />data<br />NTFS volume as .vhd, mounted to local OS<br />Web/WorkerRole<br />PAAS<br />
    • 52. Azure Storage Drives<br />On premises <br />Azure<br />Blob Storage<br />WIN7/WS2008<br />data<br />data<br />data<br />Upload as blob<br />unmounted<br />Web/WorkerRole<br />mounts to driveletter<br />legacy IO code works<br />PAAS<br />
    • 53. 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 />PAAS<br />
    • 54. 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 />PAAS<br />
    • 55. Azure Content Delivery Network<br />Azure datacenters <br />Dublin<br />Amsterdam<br />Current CDN nodes<br />Amsterdam<br />Dublin<br />London <br />Paris <br />Stockholm<br />Vienna <br />Zurich <br />Only EU datacenters listed here<br />PAAS<br />
    • 56. 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 />
    • 57. 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 />
    • 58. 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 />
    • 59. 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 />
    • 60. 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 />
    • 61. Azure Upgrades Swap Staging / Production<br />Get-HostedServices -subscriptionId <YOUR_SUBSCRIPTION_ID> -certificate (get-item cert:CurrentUserMY<YOUR_CERTIFICATE_THUMPRINT>) |<br /> where {$_.ServiceName –eq “<YOUR_SERVICE_NAME>”} |<br /> Get-Deployment staging |<br />Move-Deployment | <br /> Get-OperationStatus –WaitToComplete<br />PAAS<br />
    • 62. Azure Upgrades Rolling Upgrades<br />Upgrade domain 1<br />Upgrade domain 2<br />V1 instance 2<br />V1 instance 1<br />V1 instance 3<br />V1 instance 4<br />1. fabric controller <br />brings down 1st upgrade <br />domain<br />Upgrade domain 1<br />Upgrade domain 2<br />V1 instance 2<br />V1 instance 1<br />V1 instance 3<br />V1 instance 4<br />2. upgrade<br />Upgrade domain 1<br />Upgrade domain 2<br />V2 instance 2<br />V2 instance 1<br />V1 instance 3<br />V1 instance 4<br />3. fabric controller brings <br />next upgrade domain<br />Upgrade domain 1<br />Upgrade domain 2<br />V2 instance 2<br />V2 instance 1<br />V1 instance 3<br />V1 instance 4<br />4. upgrade<br />Upgrade domain 1<br />Upgrade domain 2<br />V2 instance 2<br />V2 instance 1<br />V2 instance 3<br />V2 instance 4<br />
    • 63. 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 />PAAS<br />
    • 64. 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 />PAAS<br />
    • 65. 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 />PAAS<br />
    • 66. 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 />PAAS<br />
    • 67. 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 />PAAS<br />
    • 68. all in.<br />We’re<br />Journey to the Cloud<br />
    • 69. Short break<br />60<br />Azure + Umbraco workshop<br />10 March, 2011<br />Feel at home – help yourself!Coffee, tea, Coca-Cola, Fanta, Juice, Ice tea, ...<br />Session continues at 11:30<br />
    • 70. CMS systems on Azure<br />61<br />Azure + Umbraco workshop<br />10 March, 2011<br />
    • 71. CMS in Azure, why?<br />Paul Sterling paul@umbraco.com (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 />10 March, 2011<br />Azure + Umbraco workshop<br />62<br />
    • 72. How much does it cost?<br />Simulation (approximate cost)<br />1GB Azure SQL <br />10GB Blob storage (475000 read/write transactions/day)<br />50GB download traffic, 5GB upload traffic<br />One webinstance: €86/month<br />Two instances: €148/month<br />Two instances + one staging: €210/month<br />Conclusion<br />Hosting websites on Azure = starting at €1.000€/year<br />Use Azure Pricing Excel to calculate!<br />Demo?<br />10 March, 2011<br />Azure + Umbraco workshop<br />63<br />
    • 73. WCMS 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 />Low cost hosting projects<br />Projects with lots of legacy code/dependencies<br />10 March, 2011<br />Azure + Umbraco workshop<br />64<br />
    • 74. Umbraco in Azure<br />65<br />Azure + Umbraco workshop<br />10 March, 2011<br />
    • 75. Umbraco v4.5+ in Azure: Challenges<br />What did we learn this morning?<br />Group talk<br />10 March, 2011<br />Azure + Umbraco workshop<br />66<br />
    • 76. 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 />10 March, 2011<br />Azure + Umbraco workshop<br />67<br />
    • 77. 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 />http://forum.umbraco.org/yaf_postst4161_Umbraco-caching-explained.aspx<br />10 March, 2011<br />Azure + Umbraco workshop<br />68<br />
    • 78. 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<br />Only possible when files are stored on Azure Blobs<br />Custom code<br />10 March, 2011<br />Azure + Umbraco workshop<br />69<br />
    • 79. 10 March, 2011<br />Azure + Umbraco workshop<br />70<br />Solutions for Umbraco v4.5+<br />Simple web-role<br />Accelerator<br />Sync Scripts (by Kurt & O1)<br />Since yesterday <br />
    • 80. 10 March, 2011<br />Azure + Umbraco workshop<br />71<br />Compare solutions<br />
    • 81. 10 March, 2011<br />Azure + Umbraco workshop<br />72<br />Accelerator (CodePlex)<br />
    • 82. 10 March, 2011<br />Azure + Umbraco workshop<br />73<br />Accelerator (CodePlex)<br />CodePlex project http://azureaccelerators.codeplex.com<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 />
    • 83. 10 March, 2011<br />Azure + Umbraco workshop<br />74<br />Synchronization scripts<br />
    • 84. 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 />Future (CodePlex project)<br />ConstantSync from Blob > VM<br />Triggered by a service call (avoid polling/storagetransactions)<br />Bidirectional synchronisation <br />Also from VM to Blob Storage<br />Thanks to Kurt Claeys!<br />10 March, 2011<br />Azure + Umbraco workshop<br />75<br />
    • 85. FTP like access to Azure Blob<br />CloudBerry Explorer for Azure Blob Storage<br />http://cloudberrylab.com<br />Free!<br />10 March, 2011<br />Azure + Umbraco workshop<br />76<br />
    • 86. CloudBerry Explorer<br />10 March, 2011<br />Azure + Umbraco workshop<br />77<br />
    • 87. Future: Umbraco v5<br />Beta expected Q2 2011 (April/May)<br />RTM somewhere end 2011<br />Paul Sterling paul@umbraco.com (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 />10 March, 2011<br />Azure + Umbraco workshop<br />78<br />
    • 88. Umbraco v4.5+ in Azure, too early?<br />Yes, for most scenarios<br />Only one instance, quite complex<br />But it’s great to:<br />Experiment with Azure<br />Be ready for the future<br />10 March, 2011<br />Azure + Umbraco workshop<br />79<br />
    • 89. Lunch<br />80<br />Azure + Umbraco workshop<br />10 March, 2011<br />There are sandwiches and fresh soup<br />Workshop starts at 13:15<br />
    • 90. 10 March, 2011<br />Azure + Umbraco workshop<br />81<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 />v-tocrom@microsoft.com<br />http://yourbusinessyourfame.cloudapp.net<br />
    • 91. 10 March, 2011<br />Azure + Umbraco workshop<br />82<br />Cloud Essentialshttp://www.microsoftcloudpartner.com<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 />
    • 92. 10 March, 2011<br />Azure + Umbraco workshop<br />83<br />MSDN Premium Subscription Benefithttp://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=en&locale=nl-BE&offer=MS-AZR-0005P<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 />
    • 93. Hands-on<br />84<br />Azure + Umbraco workshop<br />10 March, 2011<br />
    • 94. 10 March, 2011<br />Azure + Umbraco workshop<br />85<br />Hands-on: web role + SQL<br />Install clean Umbraco site local laptop (using Web platform installer)<br />Provision Azure SQL storage<br />Migrate locale SQL db to Azure SQL (using migration wizard)<br />Create Visual Studio package of Umbraco site (using CodePlex solution)<br />Provision WebRole on Azure<br />Publish solution to Azure Webrole (using Visual Studio)<br />Test your site on http://mysite.cloudapp.net<br />It works, but we have no backups.<br />
    • 95. 10 March, 2011<br />Azure + Umbraco workshop<br />86<br />Hands-on part 2: add Blob storage<br />Provision Azure Storage account<br />Download 3rd party tool<br />http://cloudberrylab.com<br />Upload of local Umbraco files to Azure Blob (using Cloudberry)<br />Deploy Generic webrole with startup tasks (using VS)<br />Configure IIS site (host header)<br />Configure Storage Account (container, account name, password)<br />
    • 96. 10 March, 2011<br />Azure + Umbraco workshop<br />87<br />Hands-on workshop<br />Follow the installation guide<br />http://umbracoonazure.codeplex.com/<br />We are here to help!<br />

    ×