IntroductiontoWindowsAzureCloudComputingFuturesGroup,MicrosoftResearchRogerBarga,JaredJackson,NelsonAraujo,DennisGannon,WeiLu,andJaliyaEkanayakeRangeinsizefrom“edge”facilitiestomegascale.EconomiesofscaleApproximatecostsforasmallsizecenter(1000servers)andalarger,100Kservercenter.100Kservercenter.EachdatacenterisEachdatacenteris11.5times11.5timesthesizeofafootballfieldthesizeofafootballfieldTechnologyCostinsmall-sizedDataCenterCostinLargeDataCenterRatioNetwork$95perMbps/month$13perMbps/month7.1Storage$2.20perGB/month$0.40perGB/month5.1Administration~140servers/Administrator1000Servers/Administrator7.1AbunchofmachinesindatacentersFabricControllerOwnsalldatacenterhardwareUsesinventorytohostservicesDeploysapplicationstofreeresourcesMaintainsthehealthofthoseapplicationsMaintainshealthofhardwareMaintainshealthofhardwareIfthenodegoesoffline,FCwilltrytorecoveritIfafailednodecan’tberecovered,FCmigratesroleinstancestoanewnode,Asuitablereplacementlocationisfound,ExistingroleinstancesarenotifiedofchangeManagestheservicelifecyclestartingfrombaremetalHighly-availableFabricController(FC)Upto7GuestVMsAtMinimum(Small)CPU:1.5-1.7GHzx64Memory:1.7GBNetwork:100+MbpsAnOptimizedHypervisorAHostVirtualMachineUpto7GuestVMsMbpsLocalStorage:500GBUpto(ExtraLarge)CPU:8CoresMemory:14.2GBLocalStorage:2+TBAtMinimumCPU:1.5-1.7GHzx64Memory:1.7GBNetwork:100+MbpsLocalStorage:500GBUptoUptoCPU:8CoresMemory:14.2GBLocalStorage:2+TBAzurePlatformAzurePlatformComputeWorkerRoleWorkerRoleWebRoleWebRoleBlobsBlobsQueuesQueuesStorageQueuesQueuesTablesTablesDrivesDrivesBlobsQueuesHTTPAcloserlookAcloserlookTablesDrives…FabricComputeStorageApplicationAccessDataisexposedvia.NETandRESTfulinterfacesDatacanbeaccessedby:WindowsAzureappsOtheron-premiseapplicationsorcloudapplicationsBlobContainerAccountjaredjaredimagesimagesPIC01.JPGPIC01.JPGjaredjaredPIC02.JPGPIC02.JPGmoviesmoviesMOV1.AVI(rows)andTBsofdataCanusethousandsofserversastrafficgrowsDataisreplicatedseveraltimesTableAstorageaccountcancreatemanytablesAstorageaccountcancreatemanytablesTablenameisscopedbyaccountSetofentities(i.e.rows)EntitySetofproperties(columns)RequiredpropertiesPartitionKey,RowKeyandTimestampPartition1Partition1Partition2Partition2Source:WindowsAzureTable–ProgrammingTableStorageAWindowsAzureDriveisaPageBlobformattedasaNTFSsinglevolumeVirtualHardDrive(VHD)Drivescanbeupto1TBAVMcandynamicallymountupto8drivesAPageBlobcanonlybemountedbyoneVMatatimeforAPageBlobcanonlybemountedbyoneVMatatimeforread/writeRemoteAccessviaPageBlobCanuploadtheVHDtoitsPageBlobusingtheblobinterface,andthenmountitasaDriveCandownloadtheDrivethroughthePageBlobinterfaceAcloserlookAcloserlookWebRoleWorkerRolemain(){…}LoadBalancerHTTPIISASP.NET,WCF,etc.FabricVMAgentAgentBalancerUsingqueuesforreliablemessagingUsingqueuesforreliablemessagingWebRoleASP.NET,WCF,WorkerRolemain()1)Receivework4)DoToscale,addmoreofeitherQueueASP.NET,WCF,etc.main(){…}2)Putworkinqueue3)Getworkfromqueue4)DoworkQueuesaretheapplicationglue•Decouplepartsofapplication,easiertoscaleindependently;•Resourceallocation,differentpriorityqueuesandbackendservers•Maskfaultsinworkerroles(reliablemessaging).UseInter-rolecommunicationforperformance•TCPcommunicationbetweenroleinstances•Defineyourportsintheservicemodels•DefineyourportsintheservicemodelsPointsofinterestPointsofinterestAccessDataisexposedvia.NETandRESTfulinterfacesDatacanbeaccessedby:WindowsAzureappsOtheron-premiseapplicationsorcloudapplicationsOtheron-premiseapplicationsorcloudapplicationsWorkHomeSourceControlDevelopDevelopVersionDevelopmentFabricDevelopmentStorageYourAppRunLocalApplicationWorksLocallyWhatthe‘ValueAdd’?Whatthe‘ValueAdd’?ProvideaplatformthatisscalableandavailableServicesarealwaysrunning,rollingupgrades/downgradesFailureofanynodeisexpected,statehastobereplicatedFailureofarole(appcode)isexpected,automaticrecoveryFailureofarole(appcode)isexpected,automaticrecoveryServicescangrowtobelarge,providestatemanagementthatscalesautomaticallyHandledynamicconfigurationchangesduetoloadorfailureManagedata