24 June, 2011Azure + Umbraco workshop
24 June, 2011Azure + Umbraco workshopWho are we?Kurt ClaeysMicrosoft EMEATechnology Solution Professional Windows Azurekclaeys@microsoft.comhttp://twitter.com/kurtclaeysWim De ConinckOrbit One, Development Team Leadwimdc@orbitone.comhttp://twitter.com/wimdcOlivier MangelschotsOrbit One, Managing Directorolivier@orbitone.comhttp://twitter.com/omangels2
24 June, 2011Azure + Umbraco workshopFree workshopSponsored by Microsoft AzureIn collaboration with Belgian Umbraco User Group (BUUG.be)Hosted by Orbit One3
We are:Team of 18Microsoft Gold PartnerWe build:Websites, Intranet, Portals, custom solutionsWe love:.NET, SharePoint, Dynamics CRM, Umbraco, Lync, New World of WorkOrbit OneInternet SolutionsAzure + Umbraco workshop24 June, 20114
24 June, 2011Azure + Umbraco workshopUmbracocertification training + examsHere in Ghent at OneOfficeLevel 1:When: 7 – 8 November 2011Target audience: Designers / WebdevelopersLevel 2:When: 9 – 10 November 2011Target audience: .NET Developers5
Azure + Umbraco workshop24 June, 2011We will make everything available:SlidesBinaries/source codeDocumentationCheck www.buug.beDownloads6
24 June, 2011Azure + Umbraco workshopAgenda9:30 – 10:00 Introduction10:00 – 11:00 Technical dive into Azure (part 1)Break11:15 – 12:00 Technical dive into Azure (part 1)12:00 – 12:45 Umbraco CMS and AzureLunch13:30  Azure Development Program13:45 – 16:30 Hands-on workshopWe are a small group, let’s make it interactive!7
24 June, 2011Azure + Umbraco workshopIs your laptop prepped?This afternoon, you need:Visual Studio 2010Windows Azure SDK + Tools for Visual Studio (March 2011) version 1.4SQL Server 2008 Express R2RegisteredAzure AccountLinks on http://www.buug.be/en/events8
Technical dive into AzureAzure + Umbraco workshop24 June, 20119
Who is familiar with?Load balancer (NLB)Round robinSticky sessions24 June, 2011Azure + Umbraco workshop10
Concept: Network load balancing (NLB)24 June, 2011Azure + Umbraco workshop11
SOFTWAREPLATFORMINFRASTRUCTUREAS A SERVICEAS A SERVICEAS A SERVICEJourney to the Cloud
Windows AzureCLAEYS KurtTechnology Solution ProfessionalMicrosoft EMEA
Cloud ?What is cloud computing ?Offering infrastructure, platform and software as a service over the internet to a global market.Move on-premises management of non functional IT assets to a providor.Difference from traditional hostingsSold on demand “pay as you grow”Elastic scalabilityService is fully managed by the providorEnd user centric (IW or developer)Strong focus on integration (cloud-cloud or cloud-on-premises)
Todays challengespercent of IT budgets is spent maintaining datacenter operationspercent of datacenter capacity is idle on average Infrastructure ComplexityInfrastructure Utilization7085
Positioning AZUREinfrastructure as a service (hardware)Servers available in the cloudplatform as a service (developer) Delivery of a OS for custom, cloud enabled appsSupport for service hosting and interoperability Relational data storage in the cloud software as a service (end users) = BPOSExchange onlineSharepoint onlineDynamics CRM onlineSAASIAASPAAS
Positioning AZUREinfrastructure as a service (hardware)Servers available in the cloudplatform as a service (developer) Delivery of a OS for custom, cloud enabled appsSupport for service hosting and interoperability Relational data storage in the cloud software as a service (end users) = BPOSExchange onlineSharepoint onlineDynamics CRM onlineSAASIAASPAAS
IT as ServicePrivate(On-Premise)Infrastructure(as a Service)Platform(as a Service)You manageApplicationsApplicationsApplicationsYou manageRuntimesRuntimesRuntimesSecurity & IntegrationSecurity & IntegrationSecurity & IntegrationManaged by vendorYou manageDatabasesDatabasesDatabasesServersServersServersManaged by vendorVirtualizationVirtualizationVirtualizationServer HWServer HWServer HWStorageStorageStorageNetworkingNetworkingNetworking
Cloud Computing TaxonomyThe Windows Azure platform fits hereIaaS    Traditional ITSaaSPaaSYou manageApplicationsApplicationsApplicationsApplicationsDataDataDataDataYou manageRuntimeRuntimeRuntimeRuntimeManaged by vendorMiddlewareMiddlewareMiddlewareMiddlewareYou manageManaged by vendorO/SO/SO/SO/SManaged by vendorVirtualizationVirtualizationVirtualizationVirtualizationServersServersServersServersStorageStorageStorageStorageNetworkingNetworkingNetworkingNetworking
Classic IT Capacity problem.Allocated IT-capacitiesLoad Forecast“Under-supply“ of capacities“Waste“ of capacitiesFixed cost of IT-capacitiesIT CAPACITYBarrier forinnovationsActualLoadTIME
Upfront investments
Capacity in a cloud modelLoad ForecastAllocated IT capacitiesNo “under-supply“IT CAPACITYReduction of “over-supply“Possible reduction of IT-capacities in case of reduced loadReduction of initial investmentsActualLoadTIME
RatesComputePer service hour of 1 CPU = 0,12 U$StoragePer GB/month =0,15 U$TransactionsPer 10K = 0,01 U$ SQL Azure10 GB/month = 99,99 U$Access Control Transactions10K = 0,01 U$Service Bus Connections1 connection/month = 3,99 U$Data Transfer egressPer GB = 0,15 U$Data Transfer ingressPer GB = FREE
Monthly Bill
Azure Pricing
“Growing Fast“  “On and Off “  InactivityPeriod Compute Compute Average UsageUsageAverageTime Time On & off workloads (e.g. batch job)Over provisioned capacity is wasted Time to market can be cumbersome Successful services needs to grow/scale   Keeping up w/ growth is big IT challenge Complex lead time for deployment“Unpredictable Bursting“  “Predictable Bursting“  Compute Compute Average Usage Average Usage Time Time Unexpected/unplanned peak in demand  Sudden spike impacts performance Can’t over provision for extreme cases Services with micro seasonality trends   Peaks due to periodic increased demandIT complexity and wasted capacity
The Windows Azure platform is a flexible cloud–computing platform that lets you focus on solving business problems and addressing customer needs.
Virtual NetworkStorageComputeAccess ControlService BusCachingReportingDatabaseData Sync
DatacentersQuincy, WAChicago, ILSan Antonio, TXDublin, IrelandGeneration 4 DCs
Azure Fabric ControllerService DefinitionThe Fabric Controller communicates with every server within the Fabric. Interacts with a “Fabric Agent” on each machineMonitors every VM, application and instanceService Management is performed by the Fabric Controller Performs load balancing, check pointing and recoveryFabric ControllerFabricXXX
Traditional ArchitectureDBWeb UITierBrowserBusiness Logic TierRequestRequest
BrowserBrowserDBBrowserBusiness Logic TierWeb UITierBrowser…Browser
BrowserBrowserDBBrowserWeb UITierBusiness Logic TierBrowser“Server Busy”…Browser
BrowserBrowserN L BWeb RoleDBBrowserBusiness Logic TierWeb RoleBrowserWeb Role…Browser
BrowserBrowserN L BWeb RoleN L BWorkerRoleDBBrowserWeb RoleWorkerRoleBrowserWeb RoleWorkerRole…Browser
BrowserBrowserN L BWeb RoleN L BWorkerRoleDBBrowserWeb RoleWorkerRoleBrowserWeb RoleWorkerRole…BrowserAzure
Azure ArchitectureWindows Azure ServiceSQL DataYour ServiceWorker ServiceNL BWorker RoleSQLInternetSQLYour StorageSQLQueuesNL BWeb Site(ASPX, ASMX, WCF)Web Site(ASPX, ASMX, WCF)Web Role(ASPX, WCF)TablesBlobs
Azure Network Load BalancerwebroleNLBInstance 1Instance 2Instance 3
Azure Network Load BalancerwebroleNLBInstance 1Instance 2Instance 3
Azure Network Load BalancerwebroleNLBInstance 1Instance 2“round robin”no sticky sessions !Instance 3
Azure RolesRunning apps in a virtual machineA virtual machine can have 1,2,4 or 8 coresWe can have multiple instances of the VM runningTwo typesWeb Role = internet facing, IIS, request/response, ASP.NET or WCFWorker Role = background processing, endless loop, internal endpoints, can host WCF services
Azure RolesWebRole
Hosting ASP.NET pages and/or WCF Services.
Handles incoming HTTP/HTTPS requests.
Public, Internet faced.
Has access to Storage Services.
WorkerRole
Code running in background, processing jobs.
‘Hidden’ processing power.
Similar to a batch job or Windows service.
Handles messages from a queue.
Has access to Storage Services.Azure ServiceStorageServiceX number of Webrolesexternal endpoint 1 (port80)blobswebrole 1tablesInstance 1Instance 2Instance 3queuesexternal endpoint 2 (port X)webrole 2SQL Azure DBInstance 1internal endpointinternal endpointinternal endpointPerformance MetricsInstance 1Instance 2Instance 3workerrole1Application Log FilesX number of WorkerrolesEvent LogscertificateIIS LogsCrashdumpsService configuration, maintainable after deployService definition, defined at deployment
Configuring Virtual Machines Size
Configuring the serviceService configuration, maintainable after deployNumber of instancesConnectionString to StorageThumbprints of certificatesCustom settingService definition, defined at deploymentSize of VMLocal storage capacityEndpointExternalInternal
Azure VMRoleAbility to upload your own customized WS2008R2 Enterprise imagesFull control over the OS image, install whatever you want on it.You can remote desktop into the OSTarget scenariosNeed to use apps/libraries with no unattended setup32 bits appsChange registry settingsScale out !Instances are behind loadbalancer, one public IP per serviceNo durability of OS image on hardware failureWith VM Role, the customer creates & maintains the OSPaying model = Paying model of current web/workerroleUses differencing disks to upload deltas to image
Web/WorkerRole vs VMRoleAll three are virtual images running in the datacenter under control of the Azure fabric controller behind the loadbalancer.Web/Worker RoleThe virtual image is already there, ... you upload your app, ... Azure places this app on the image and runs the image.VM RoleYou upload the complete virtual image with all apps installed, ... Azure runs the imageVisual Studiovirtual imagevirtual imagevirtual imageappappappAzureAzureappdevelopment environmentdevelopment environmentHyper-V
VMRole lifecycleCreate a .vhd in Hyper-V manager, install W2008 R2 as OSInstall whatever roles, features and apps you want on it.Turn of automatics updatesInstall Windows Azure VM Role Integration ComponentsRun sysprep.exe and bring it downUpload the .vhd to Azure (needs a certificate)Deploy a service configuration (Visual Studio, Managament Portal or Management API PS commandlets)
Azure Virtual NetworkAka as “Azure Connect”Secure network connectivity between on-premises and cloud, supports standard IP protocolsAutomatic setup of secure IP-level networkExample use cases:Enterprise app migrated to Windows Azure that requires access to on-premise SQL ServerWindows Azure app domain-joined to corporate Active Directory Remote administration and trouble-shooting of Windows Azure RolesEnable local computers for connectivity by installing WA Connect agentDNS name resolution
Azure Virtual NetworkNetwork policy managed through portalWeb/WorkerVM RoleAzure Connect GatewayAzure Connect GatewayIPV6 addressIPV6 addressOn PremiseMachineSQL ServerIPV6 addressAzure Connect Gateway
Azure StorageNon SQL dataUnlimited storage4 typesTables: no fixed schema, no relationsBlobs: large objects, have metadata attributes, MIME type awareQueues: assync communication to workerroleDrives: NTFS volume mounted to rolesAccessible through a HTTP/REST API
Windows Azure Storage AccountUser creates a globally unique storage account name.AccountBlobTableQueueStoragekeepsbeingavailable, even whenapplication is not running !
LibrariesMicrosoft.WindowsAzure.*Found in Windows Azure SDKSystem.Data.ServicesSystem.Data.Services.Client.NET 3.5using Microsoft.WindowsAzure;using Microsoft.WindowsAzure.StorageClient;using System.Data.Services.Common;
Azure TablessTables store entities.Entity schema can vary in the same table. Can Not :Create foreign key relationships between tables.Perform server side joins between tables.Create custom indexes on the tables.No server side Count(), for example.
Azure Storage Tablespartition keyTables are partitioned to support load balancing across storage nodesuniquerow keytimestamptablefield1field2field3
Table PartioningDataRow keyPartition keyA123foobaretcA123foobaretcA124foobaretcA124foobaretcB123foobaretcB123foobaretcPartition “B”Partition “A”Storage node 1Storage node 2
Azure Storage BlobsLarge dataCan be made private or publicCan have metadata attributes and MIME typesCan be cached by a Azure Content Delivery Network (CDN)Time based access to blobs with shared access signaturesTwo TypesBlock Blobs : max 200GB, Usefor data which is streamed back to a worker or clientPage Blobs : max 1TB, Use for data accessed frequently by random reads and writes.Azure Drives are also blobs
Blob addressingBlobContainerAccountsPic001.jpgSomeContainerPic002.jpgMyAccountMov001.wmvAnotherContainerMov002.wmvhttp://<AccountName>.blob.core.windows.net/<ContainerName>/<BlobName>
Azure Storage Blobs accessibilityblobprivate(Azure service or on premises)need storage credentialsno storage credentials public(browser, REST)time based with shared access signatureGET 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
Shared Access SignaturesLimit blobs in public container to be readable only if url contains shared access signature. Share access signature can be made valid for a timerange only. http://<accountname>.blob.core.windows.net/<containername>/<blobname>?se=2010-04-04T11%3A38%3A31Z&sr=b&sp=r&sig=D73BRVuRBV9nXp9rsw35b5rkLadi6YEZ4Ti1S8eeAQQ%3D
Azure Storage QueuesMessage in – Message outTo support the assync processing modelTopologies :Cloud-Cloud (web – worker)Cloud-OnPremisesOnPremises-CloudOnPremises-OnPremises through the cloud8K per messageHTTP/REST based
Azure Storage QueuesMessage CreatorMessageReaderMsg 1Msg 2Msg 3Msg 4
Azure Storage Queuesget messageMsg 1process messageMsg 1Msg 2Msg 3Msg 4delete message
Azure Storage Queuesget messageMsg 1process messageMsg 2Msg 3Msg 4When not deleted within a timeout, the message is added to the queue again !Msg 1delete message
DrivesAzure Web orWorkerRoleAzureStorageblobusing (StreamReadersr = File.OpenText(@”F:\file.txt”))F:Mounted , results in driveletteruploaddownloadAttach VHDOn-Premisesblobusing (StreamReadersr = File.OpenText(@”F:\file.txt”))F:
Azure Content Delivery NetworkuserAzure DatacenterService (webrole, workerrole)requests blobBlob storageCDN NodeIs blob cached here ?blob
Azure Content Delivery NetworkuserAzure DatacenterService (webrole, workerrole)another requestBlob storageCDN Nodeblob
SQL AzureRelational DB in the CloudBased on SQL 2008 R2Accessible from every ADO.NET clientSQL 2008 R2 Management Studio High-availability and fault toleranceNo physical administration is required Use existing knowledge in T-SQL development Scale databases up or down based on business needs (between 1GB and 50GB)
SQL AzureadminSQL Azure ServerMy DB(1 GB)My DB(50 GB)Master DBusers and rolesusers and rolesloginsfirewallinternalrestricted IP rangesAzure Services(webrole,workerrole)Anybodycode “near”code “far”
SQL AzureadminSQL Azure ServerMy DB(50 GB)My DB(1 GB)Master DBstored on 3 replicasstored on 3 replicasstored on 3 replicasfirewallinternalrestricted IP rangesAzure Services(webrole,workerrole)Anybodycode “near”code “far”
SQL Azure quorum commitQuorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.DBtransactionwritewritereplicas
SQL Azure quorum commitQuorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.DBtransactioncommitedOKOKreplicas
AppFabric CachingA distributed, in-memory cache, implemented as a cloud service.  The same capabilities available in Windows Server AppFabricCaching.You can programmatically interact with the cache.Out-of-the-box ASP.NET providers for both session state and page output caching.Scenarios :Statefull, multi-instance Azuer rolesASP.NET page cachingSpeed up access to static data
AppFabric CachingRole Instance 1Role Instance 2On Premise appRead/Write dataRead/Write dataRead/Write dataCaching
AppFabric Access Controlidentity providersAzure ACSrulesFacebook IDClaimsauthorizationRedirect loginADFS2WebApp
Short breakAzure + Umbraco workshop24 June, 2011Feel at home – help yourself!Coffee, tea, Coca-Cola, Fanta, Juice, Ice tea, ...Session continues at 11:3077
CMS systems on AzureAzure + Umbraco workshop24 June, 201178
CMS in Azure, why?Paul Sterling paul@umbraco.com (Technical Lead)Azure solving the future issues ofhighly-scaledwidely distributedvery dynamic WCMS solutionsNOT a replacement for traditional hosting, but a new option 24 June, 2011Azure + Umbraco workshop79
How much does it cost?Simulation (approximate cost)1GB Azure SQL 10GB Blob storage (1000000 read/write transactions/day)50GB download traffic, 10GB upload trafficOne webinstance: €77,01/month (promo offer €52,71)Two instances: €140,91/month (promo offer €94,78)Two instances + one staging: €204,81/month (promo offer €136,85)ConclusionHosting websites on Azure = starting at €635/yearUse Azure Pricing  calculator!http://www.microsoft.com/windowsazure/pricing-calculator/Differencesbetweeninstanceshttp://www.microsoft.com/windowsazure/compute/24 June, 2011Azure + Umbraco workshop80
Website CMS in AzureAzure is great forHigh traffic websitesSites where you need to quickly scale-up/downGlobal sites (visits many geo locations)Load balancing, stronger SLA’sAzure is not ideal forVery low cost hosting projectsProjects with lots of legacy code/dependencies24 June, 2011Azure + Umbraco workshop81
Umbraco in Azure82Azure + Umbraco workshop24 June, 2011
Umbraco v4.5+ in Azure: ChallengesWhat did we learn this morning?What are the challengesto host a CMS in Azure?Group talk24 June, 2011Azure + Umbraco workshop83
Where does Umbraco store info?SQL database: Page templates (no binaries, only references in DB)Page content (meta-data, texts, navigation nodes)Media/documents (no binaries, only reference in DB)Users & members, permissionsLogs (errors, actions in admin)File storage: Page templates: .MasterScripts/styles: XSLT, CSS, JS, ... + design elements used in templatesUser controls: ASCX/DLLs + Umbraco binariesMedia: GIF, JPG, PDF, Videos, ...Config: web.config + /config/ xml files24 June, 2011Azure + Umbraco workshop84
Umbraco XML cacheXML file (/app_data/umbraco.config)Stored on local file systemContains all published nodesPurposeFast app warm-up time (<1 sec)Less SQL queries – SQL is not used public siteAutomatically updatedEvery time you publish using UmbracobackendXML dump of in-memory cachehttp://forum.umbraco.org/yaf_postst4161_Umbraco-caching-explained.aspx24 June, 2011Azure + Umbraco workshop85
ChallengesMultiple instances of the web-roleRound-robin load-balancingSessions need to be stored centrallyStorageNo local storage (unsafe)No “shared drive” over multiple machinesCDN – Content Delivery NetworkOnly possible when files are stored on Azure BlobsCustom codeNeedstoworkwithin the boundries of Azure24 June, 2011Azure + Umbraco workshop86
24 June, 2011Azure + Umbraco workshopSolutions to host Umbraco v4.5+ on Windows AzureSimple web-role (manual creation)CodePlex accelerator (by Slalom Consulting)Sync Scripts (by Kurt & O1)CodePlex accelerator (by Microsoft)87
24 June, 2011Azure + Umbraco workshopCompare solutions88
24 June, 2011Azure + Umbraco workshopCodePlexAccelerator by Slalom Consulting89
24 June, 2011Azure + Umbraco workshopCodePlexAccelerator by Slalom ConsultingCodePlex project http://azureaccelerators.codeplex.comBy Slalom Consulting (Seattle)Uses old Azure API implementationOnly 1 webrole is supportedLess control storage transactions (mounted drive)90
24 June, 2011Azure + Umbraco workshopSynchronization scripts91
Synchronisation scriptsCurrent implementation (free Download)One-way sync, copies from Azure Blob to local storage (full sync)IIS configuration, app Pool, Website, binding of hostheadersTriggered at VM boot (startup.exe)Thanks to Kurt Claeys!24 June, 2011Azure + Umbraco workshop92
CodePlex Accelerator by Microsofthttp://waacceleratorumbraco.codeplex.com24 June, 2011Azure + Umbraco workshop93

Azure Umbraco workshop

  • 1.
    24 June, 2011Azure+ Umbraco workshop
  • 2.
    24 June, 2011Azure+ Umbraco workshopWho are we?Kurt ClaeysMicrosoft EMEATechnology Solution Professional Windows Azurekclaeys@microsoft.comhttp://twitter.com/kurtclaeysWim De ConinckOrbit One, Development Team Leadwimdc@orbitone.comhttp://twitter.com/wimdcOlivier MangelschotsOrbit One, Managing Directorolivier@orbitone.comhttp://twitter.com/omangels2
  • 3.
    24 June, 2011Azure+ Umbraco workshopFree workshopSponsored by Microsoft AzureIn collaboration with Belgian Umbraco User Group (BUUG.be)Hosted by Orbit One3
  • 4.
    We are:Team of18Microsoft Gold PartnerWe build:Websites, Intranet, Portals, custom solutionsWe love:.NET, SharePoint, Dynamics CRM, Umbraco, Lync, New World of WorkOrbit OneInternet SolutionsAzure + Umbraco workshop24 June, 20114
  • 5.
    24 June, 2011Azure+ Umbraco workshopUmbracocertification training + examsHere in Ghent at OneOfficeLevel 1:When: 7 – 8 November 2011Target audience: Designers / WebdevelopersLevel 2:When: 9 – 10 November 2011Target audience: .NET Developers5
  • 6.
    Azure + Umbracoworkshop24 June, 2011We will make everything available:SlidesBinaries/source codeDocumentationCheck www.buug.beDownloads6
  • 7.
    24 June, 2011Azure+ Umbraco workshopAgenda9:30 – 10:00 Introduction10:00 – 11:00 Technical dive into Azure (part 1)Break11:15 – 12:00 Technical dive into Azure (part 1)12:00 – 12:45 Umbraco CMS and AzureLunch13:30 Azure Development Program13:45 – 16:30 Hands-on workshopWe are a small group, let’s make it interactive!7
  • 8.
    24 June, 2011Azure+ Umbraco workshopIs your laptop prepped?This afternoon, you need:Visual Studio 2010Windows Azure SDK + Tools for Visual Studio (March 2011) version 1.4SQL Server 2008 Express R2RegisteredAzure AccountLinks on http://www.buug.be/en/events8
  • 9.
    Technical dive intoAzureAzure + Umbraco workshop24 June, 20119
  • 10.
    Who is familiarwith?Load balancer (NLB)Round robinSticky sessions24 June, 2011Azure + Umbraco workshop10
  • 11.
    Concept: Network loadbalancing (NLB)24 June, 2011Azure + Umbraco workshop11
  • 12.
    SOFTWAREPLATFORMINFRASTRUCTUREAS A SERVICEASA SERVICEAS A SERVICEJourney to the Cloud
  • 13.
    Windows AzureCLAEYS KurtTechnologySolution ProfessionalMicrosoft EMEA
  • 14.
    Cloud ?What iscloud computing ?Offering infrastructure, platform and software as a service over the internet to a global market.Move on-premises management of non functional IT assets to a providor.Difference from traditional hostingsSold on demand “pay as you grow”Elastic scalabilityService is fully managed by the providorEnd user centric (IW or developer)Strong focus on integration (cloud-cloud or cloud-on-premises)
  • 15.
    Todays challengespercent ofIT budgets is spent maintaining datacenter operationspercent of datacenter capacity is idle on average Infrastructure ComplexityInfrastructure Utilization7085
  • 16.
    Positioning AZUREinfrastructure asa service (hardware)Servers available in the cloudplatform as a service (developer) Delivery of a OS for custom, cloud enabled appsSupport for service hosting and interoperability Relational data storage in the cloud software as a service (end users) = BPOSExchange onlineSharepoint onlineDynamics CRM onlineSAASIAASPAAS
  • 17.
    Positioning AZUREinfrastructure asa service (hardware)Servers available in the cloudplatform as a service (developer) Delivery of a OS for custom, cloud enabled appsSupport for service hosting and interoperability Relational data storage in the cloud software as a service (end users) = BPOSExchange onlineSharepoint onlineDynamics CRM onlineSAASIAASPAAS
  • 18.
    IT as ServicePrivate(On-Premise)Infrastructure(asa Service)Platform(as a Service)You manageApplicationsApplicationsApplicationsYou manageRuntimesRuntimesRuntimesSecurity & IntegrationSecurity & IntegrationSecurity & IntegrationManaged by vendorYou manageDatabasesDatabasesDatabasesServersServersServersManaged by vendorVirtualizationVirtualizationVirtualizationServer HWServer HWServer HWStorageStorageStorageNetworkingNetworkingNetworking
  • 19.
    Cloud Computing TaxonomyTheWindows Azure platform fits hereIaaS Traditional ITSaaSPaaSYou manageApplicationsApplicationsApplicationsApplicationsDataDataDataDataYou manageRuntimeRuntimeRuntimeRuntimeManaged by vendorMiddlewareMiddlewareMiddlewareMiddlewareYou manageManaged by vendorO/SO/SO/SO/SManaged by vendorVirtualizationVirtualizationVirtualizationVirtualizationServersServersServersServersStorageStorageStorageStorageNetworkingNetworkingNetworkingNetworking
  • 20.
    Classic IT Capacityproblem.Allocated IT-capacitiesLoad Forecast“Under-supply“ of capacities“Waste“ of capacitiesFixed cost of IT-capacitiesIT CAPACITYBarrier forinnovationsActualLoadTIME
  • 21.
  • 22.
    Capacity in acloud modelLoad ForecastAllocated IT capacitiesNo “under-supply“IT CAPACITYReduction of “over-supply“Possible reduction of IT-capacities in case of reduced loadReduction of initial investmentsActualLoadTIME
  • 23.
    RatesComputePer service hourof 1 CPU = 0,12 U$StoragePer GB/month =0,15 U$TransactionsPer 10K = 0,01 U$ SQL Azure10 GB/month = 99,99 U$Access Control Transactions10K = 0,01 U$Service Bus Connections1 connection/month = 3,99 U$Data Transfer egressPer GB = 0,15 U$Data Transfer ingressPer GB = FREE
  • 24.
  • 25.
  • 26.
    “Growing Fast“ “On and Off “ InactivityPeriod Compute Compute Average UsageUsageAverageTime Time On & off workloads (e.g. batch job)Over provisioned capacity is wasted Time to market can be cumbersome Successful services needs to grow/scale Keeping up w/ growth is big IT challenge Complex lead time for deployment“Unpredictable Bursting“ “Predictable Bursting“ Compute Compute Average Usage Average Usage Time Time Unexpected/unplanned peak in demand Sudden spike impacts performance Can’t over provision for extreme cases Services with micro seasonality trends Peaks due to periodic increased demandIT complexity and wasted capacity
  • 27.
    The Windows Azureplatform is a flexible cloud–computing platform that lets you focus on solving business problems and addressing customer needs.
  • 29.
    Virtual NetworkStorageComputeAccess ControlServiceBusCachingReportingDatabaseData Sync
  • 30.
    DatacentersQuincy, WAChicago, ILSanAntonio, TXDublin, IrelandGeneration 4 DCs
  • 31.
    Azure Fabric ControllerServiceDefinitionThe Fabric Controller communicates with every server within the Fabric. Interacts with a “Fabric Agent” on each machineMonitors every VM, application and instanceService Management is performed by the Fabric Controller Performs load balancing, check pointing and recoveryFabric ControllerFabricXXX
  • 32.
  • 33.
  • 34.
    BrowserBrowserDBBrowserWeb UITierBusiness LogicTierBrowser“Server Busy”…Browser
  • 35.
    BrowserBrowserN L BWebRoleDBBrowserBusiness Logic TierWeb RoleBrowserWeb Role…Browser
  • 36.
    BrowserBrowserN L BWebRoleN L BWorkerRoleDBBrowserWeb RoleWorkerRoleBrowserWeb RoleWorkerRole…Browser
  • 37.
    BrowserBrowserN L BWebRoleN L BWorkerRoleDBBrowserWeb RoleWorkerRoleBrowserWeb RoleWorkerRole…BrowserAzure
  • 38.
    Azure ArchitectureWindows AzureServiceSQL DataYour ServiceWorker ServiceNL BWorker RoleSQLInternetSQLYour StorageSQLQueuesNL BWeb Site(ASPX, ASMX, WCF)Web Site(ASPX, ASMX, WCF)Web Role(ASPX, WCF)TablesBlobs
  • 39.
    Azure Network LoadBalancerwebroleNLBInstance 1Instance 2Instance 3
  • 40.
    Azure Network LoadBalancerwebroleNLBInstance 1Instance 2Instance 3
  • 41.
    Azure Network LoadBalancerwebroleNLBInstance 1Instance 2“round robin”no sticky sessions !Instance 3
  • 42.
    Azure RolesRunning appsin a virtual machineA virtual machine can have 1,2,4 or 8 coresWe can have multiple instances of the VM runningTwo typesWeb Role = internet facing, IIS, request/response, ASP.NET or WCFWorker Role = background processing, endless loop, internal endpoints, can host WCF services
  • 43.
  • 44.
    Hosting ASP.NET pagesand/or WCF Services.
  • 45.
  • 46.
  • 47.
    Has access toStorage Services.
  • 48.
  • 49.
    Code running inbackground, processing jobs.
  • 50.
  • 51.
    Similar to abatch job or Windows service.
  • 52.
  • 53.
    Has access toStorage Services.Azure ServiceStorageServiceX number of Webrolesexternal endpoint 1 (port80)blobswebrole 1tablesInstance 1Instance 2Instance 3queuesexternal endpoint 2 (port X)webrole 2SQL Azure DBInstance 1internal endpointinternal endpointinternal endpointPerformance MetricsInstance 1Instance 2Instance 3workerrole1Application Log FilesX number of WorkerrolesEvent LogscertificateIIS LogsCrashdumpsService configuration, maintainable after deployService definition, defined at deployment
  • 54.
  • 55.
    Configuring the serviceServiceconfiguration, maintainable after deployNumber of instancesConnectionString to StorageThumbprints of certificatesCustom settingService definition, defined at deploymentSize of VMLocal storage capacityEndpointExternalInternal
  • 56.
    Azure VMRoleAbility toupload your own customized WS2008R2 Enterprise imagesFull control over the OS image, install whatever you want on it.You can remote desktop into the OSTarget scenariosNeed to use apps/libraries with no unattended setup32 bits appsChange registry settingsScale out !Instances are behind loadbalancer, one public IP per serviceNo durability of OS image on hardware failureWith VM Role, the customer creates & maintains the OSPaying model = Paying model of current web/workerroleUses differencing disks to upload deltas to image
  • 57.
    Web/WorkerRole vs VMRoleAllthree are virtual images running in the datacenter under control of the Azure fabric controller behind the loadbalancer.Web/Worker RoleThe virtual image is already there, ... you upload your app, ... Azure places this app on the image and runs the image.VM RoleYou upload the complete virtual image with all apps installed, ... Azure runs the imageVisual Studiovirtual imagevirtual imagevirtual imageappappappAzureAzureappdevelopment environmentdevelopment environmentHyper-V
  • 58.
    VMRole lifecycleCreate a.vhd in Hyper-V manager, install W2008 R2 as OSInstall whatever roles, features and apps you want on it.Turn of automatics updatesInstall Windows Azure VM Role Integration ComponentsRun sysprep.exe and bring it downUpload the .vhd to Azure (needs a certificate)Deploy a service configuration (Visual Studio, Managament Portal or Management API PS commandlets)
  • 59.
    Azure Virtual NetworkAkaas “Azure Connect”Secure network connectivity between on-premises and cloud, supports standard IP protocolsAutomatic setup of secure IP-level networkExample use cases:Enterprise app migrated to Windows Azure that requires access to on-premise SQL ServerWindows Azure app domain-joined to corporate Active Directory Remote administration and trouble-shooting of Windows Azure RolesEnable local computers for connectivity by installing WA Connect agentDNS name resolution
  • 60.
    Azure Virtual NetworkNetworkpolicy managed through portalWeb/WorkerVM RoleAzure Connect GatewayAzure Connect GatewayIPV6 addressIPV6 addressOn PremiseMachineSQL ServerIPV6 addressAzure Connect Gateway
  • 61.
    Azure StorageNon SQLdataUnlimited storage4 typesTables: no fixed schema, no relationsBlobs: large objects, have metadata attributes, MIME type awareQueues: assync communication to workerroleDrives: NTFS volume mounted to rolesAccessible through a HTTP/REST API
  • 62.
    Windows Azure StorageAccountUser creates a globally unique storage account name.AccountBlobTableQueueStoragekeepsbeingavailable, even whenapplication is not running !
  • 63.
    LibrariesMicrosoft.WindowsAzure.*Found in WindowsAzure SDKSystem.Data.ServicesSystem.Data.Services.Client.NET 3.5using Microsoft.WindowsAzure;using Microsoft.WindowsAzure.StorageClient;using System.Data.Services.Common;
  • 64.
    Azure TablessTables storeentities.Entity schema can vary in the same table. Can Not :Create foreign key relationships between tables.Perform server side joins between tables.Create custom indexes on the tables.No server side Count(), for example.
  • 65.
    Azure Storage TablespartitionkeyTables are partitioned to support load balancing across storage nodesuniquerow keytimestamptablefield1field2field3
  • 66.
    Table PartioningDataRow keyPartitionkeyA123foobaretcA123foobaretcA124foobaretcA124foobaretcB123foobaretcB123foobaretcPartition “B”Partition “A”Storage node 1Storage node 2
  • 67.
    Azure Storage BlobsLargedataCan be made private or publicCan have metadata attributes and MIME typesCan be cached by a Azure Content Delivery Network (CDN)Time based access to blobs with shared access signaturesTwo TypesBlock Blobs : max 200GB, Usefor data which is streamed back to a worker or clientPage Blobs : max 1TB, Use for data accessed frequently by random reads and writes.Azure Drives are also blobs
  • 68.
  • 69.
    Azure Storage Blobsaccessibilityblobprivate(Azure service or on premises)need storage credentialsno storage credentials public(browser, REST)time based with shared access signatureGET 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
  • 70.
    Shared Access SignaturesLimitblobs in public container to be readable only if url contains shared access signature. Share access signature can be made valid for a timerange only. http://<accountname>.blob.core.windows.net/<containername>/<blobname>?se=2010-04-04T11%3A38%3A31Z&sr=b&sp=r&sig=D73BRVuRBV9nXp9rsw35b5rkLadi6YEZ4Ti1S8eeAQQ%3D
  • 71.
    Azure Storage QueuesMessagein – Message outTo support the assync processing modelTopologies :Cloud-Cloud (web – worker)Cloud-OnPremisesOnPremises-CloudOnPremises-OnPremises through the cloud8K per messageHTTP/REST based
  • 72.
    Azure Storage QueuesMessageCreatorMessageReaderMsg 1Msg 2Msg 3Msg 4
  • 73.
    Azure Storage QueuesgetmessageMsg 1process messageMsg 1Msg 2Msg 3Msg 4delete message
  • 74.
    Azure Storage QueuesgetmessageMsg 1process messageMsg 2Msg 3Msg 4When not deleted within a timeout, the message is added to the queue again !Msg 1delete message
  • 75.
    DrivesAzure Web orWorkerRoleAzureStorageblobusing(StreamReadersr = File.OpenText(@”F:\file.txt”))F:Mounted , results in driveletteruploaddownloadAttach VHDOn-Premisesblobusing (StreamReadersr = File.OpenText(@”F:\file.txt”))F:
  • 76.
    Azure Content DeliveryNetworkuserAzure DatacenterService (webrole, workerrole)requests blobBlob storageCDN NodeIs blob cached here ?blob
  • 77.
    Azure Content DeliveryNetworkuserAzure DatacenterService (webrole, workerrole)another requestBlob storageCDN Nodeblob
  • 78.
    SQL AzureRelational DBin the CloudBased on SQL 2008 R2Accessible from every ADO.NET clientSQL 2008 R2 Management Studio High-availability and fault toleranceNo physical administration is required Use existing knowledge in T-SQL development Scale databases up or down based on business needs (between 1GB and 50GB)
  • 79.
    SQL AzureadminSQL AzureServerMy DB(1 GB)My DB(50 GB)Master DBusers and rolesusers and rolesloginsfirewallinternalrestricted IP rangesAzure Services(webrole,workerrole)Anybodycode “near”code “far”
  • 80.
    SQL AzureadminSQL AzureServerMy DB(50 GB)My DB(1 GB)Master DBstored on 3 replicasstored on 3 replicasstored on 3 replicasfirewallinternalrestricted IP rangesAzure Services(webrole,workerrole)Anybodycode “near”code “far”
  • 81.
    SQL Azure quorumcommitQuorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.DBtransactionwritewritereplicas
  • 82.
    SQL Azure quorumcommitQuorum based commit scheme where data is written to the primary and one secondary replica before we consider the transaction committed.DBtransactioncommitedOKOKreplicas
  • 83.
    AppFabric CachingA distributed,in-memory cache, implemented as a cloud service.  The same capabilities available in Windows Server AppFabricCaching.You can programmatically interact with the cache.Out-of-the-box ASP.NET providers for both session state and page output caching.Scenarios :Statefull, multi-instance Azuer rolesASP.NET page cachingSpeed up access to static data
  • 84.
    AppFabric CachingRole Instance1Role Instance 2On Premise appRead/Write dataRead/Write dataRead/Write dataCaching
  • 85.
    AppFabric Access ControlidentityprovidersAzure ACSrulesFacebook IDClaimsauthorizationRedirect loginADFS2WebApp
  • 86.
    Short breakAzure +Umbraco workshop24 June, 2011Feel at home – help yourself!Coffee, tea, Coca-Cola, Fanta, Juice, Ice tea, ...Session continues at 11:3077
  • 87.
    CMS systems onAzureAzure + Umbraco workshop24 June, 201178
  • 88.
    CMS in Azure,why?Paul Sterling paul@umbraco.com (Technical Lead)Azure solving the future issues ofhighly-scaledwidely distributedvery dynamic WCMS solutionsNOT a replacement for traditional hosting, but a new option 24 June, 2011Azure + Umbraco workshop79
  • 89.
    How much doesit cost?Simulation (approximate cost)1GB Azure SQL 10GB Blob storage (1000000 read/write transactions/day)50GB download traffic, 10GB upload trafficOne webinstance: €77,01/month (promo offer €52,71)Two instances: €140,91/month (promo offer €94,78)Two instances + one staging: €204,81/month (promo offer €136,85)ConclusionHosting websites on Azure = starting at €635/yearUse Azure Pricing calculator!http://www.microsoft.com/windowsazure/pricing-calculator/Differencesbetweeninstanceshttp://www.microsoft.com/windowsazure/compute/24 June, 2011Azure + Umbraco workshop80
  • 90.
    Website CMS inAzureAzure is great forHigh traffic websitesSites where you need to quickly scale-up/downGlobal sites (visits many geo locations)Load balancing, stronger SLA’sAzure is not ideal forVery low cost hosting projectsProjects with lots of legacy code/dependencies24 June, 2011Azure + Umbraco workshop81
  • 91.
    Umbraco in Azure82Azure+ Umbraco workshop24 June, 2011
  • 92.
    Umbraco v4.5+ inAzure: ChallengesWhat did we learn this morning?What are the challengesto host a CMS in Azure?Group talk24 June, 2011Azure + Umbraco workshop83
  • 93.
    Where does Umbracostore info?SQL database: Page templates (no binaries, only references in DB)Page content (meta-data, texts, navigation nodes)Media/documents (no binaries, only reference in DB)Users & members, permissionsLogs (errors, actions in admin)File storage: Page templates: .MasterScripts/styles: XSLT, CSS, JS, ... + design elements used in templatesUser controls: ASCX/DLLs + Umbraco binariesMedia: GIF, JPG, PDF, Videos, ...Config: web.config + /config/ xml files24 June, 2011Azure + Umbraco workshop84
  • 94.
    Umbraco XML cacheXMLfile (/app_data/umbraco.config)Stored on local file systemContains all published nodesPurposeFast app warm-up time (<1 sec)Less SQL queries – SQL is not used public siteAutomatically updatedEvery time you publish using UmbracobackendXML dump of in-memory cachehttp://forum.umbraco.org/yaf_postst4161_Umbraco-caching-explained.aspx24 June, 2011Azure + Umbraco workshop85
  • 95.
    ChallengesMultiple instances ofthe web-roleRound-robin load-balancingSessions need to be stored centrallyStorageNo local storage (unsafe)No “shared drive” over multiple machinesCDN – Content Delivery NetworkOnly possible when files are stored on Azure BlobsCustom codeNeedstoworkwithin the boundries of Azure24 June, 2011Azure + Umbraco workshop86
  • 96.
    24 June, 2011Azure+ Umbraco workshopSolutions to host Umbraco v4.5+ on Windows AzureSimple web-role (manual creation)CodePlex accelerator (by Slalom Consulting)Sync Scripts (by Kurt & O1)CodePlex accelerator (by Microsoft)87
  • 97.
    24 June, 2011Azure+ Umbraco workshopCompare solutions88
  • 98.
    24 June, 2011Azure+ Umbraco workshopCodePlexAccelerator by Slalom Consulting89
  • 99.
    24 June, 2011Azure+ Umbraco workshopCodePlexAccelerator by Slalom ConsultingCodePlex project http://azureaccelerators.codeplex.comBy Slalom Consulting (Seattle)Uses old Azure API implementationOnly 1 webrole is supportedLess control storage transactions (mounted drive)90
  • 100.
    24 June, 2011Azure+ Umbraco workshopSynchronization scripts91
  • 101.
    Synchronisation scriptsCurrent implementation(free Download)One-way sync, copies from Azure Blob to local storage (full sync)IIS configuration, app Pool, Website, binding of hostheadersTriggered at VM boot (startup.exe)Thanks to Kurt Claeys!24 June, 2011Azure + Umbraco workshop92
  • 102.
    CodePlex Accelerator byMicrosofthttp://waacceleratorumbraco.codeplex.com24 June, 2011Azure + Umbraco workshop93

Editor's Notes

  • #69 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.
  • #70 How does itwork?1: It createsone or more webroleinstancesanddeploys a synchronizationwindows service on these machines2: The deploy tool uploads the complete Umbracoinstallationwithall the files (images, css, aspx, web.config, …) to the blob. 3: The synchronization scripts keep the local file system in syncwith the blob storage (every second). If a user is addingsomethingto the umbracocms, thiswillbewrittento the local filesystem of the currentwebrole. One second later itwillbepushedto the blob store andone second later itwillbesyncedto the otherwebroles.
  • #71 in web.config word een session state db geconfiged door de accelerator en de database word automatisch aangemaakt in de sql azure