Presentation is loading. Please wait.

Presentation is loading. Please wait.

Operating and Optimizing Multi-Tenant SaaS Applications in Windows Azure: An IT Pro Perspective Rainer Stropek CEO, Co-Founder software architects gmbh.

Similar presentations


Presentation on theme: "Operating and Optimizing Multi-Tenant SaaS Applications in Windows Azure: An IT Pro Perspective Rainer Stropek CEO, Co-Founder software architects gmbh."— Presentation transcript:

1

2 Operating and Optimizing Multi-Tenant SaaS Applications in Windows Azure: An IT Pro Perspective Rainer Stropek CEO, Co-Founder software architects gmbh

3

4 What is the role of an IT Pro in a world of SaaS and cloud computing with Windows Azure? Source: WikipediaWikipedia

5 demo Rainer Stropek CEO, Co-Founder software architects gmbh Windows Azure Configuration See hidden slides for code snippets.

6 Windows Azure Configuration (Sample) Configure size of instances (i.e. scaling unit) Configure public endpoints with SSL (i.e. firewall) Automate server setup using scripts

7 Windows Azure Configuration (Sample) Configure inter-role communication

8 Windows Azure Configuration (Sample) Configure inter-role network traffic restrictions (firewalls)

9 ClientsFirewall, Load Balancer Web FarmStorage Cluster

10 Tenant 1 Tenant 2 Tenant n ……

11

12 Covered By Platform TopicFullyPartlyNo Hardware Network (up to OSI layer 4) Internet Access Scaling Tenant Separation and Isolation Backup/Recovery Availability and SLAs Rating/Billing

13

14 TIME IT CAPACITY Real Load Resources Expected Load Drives Revenue Drives Costs (SW+HW) Drives Initial Investments

15 Rainer Stropek CEO, Co-Founder software architects gmbh Scaling See hidden slides for more information and code snippets.

16 Deployment With PowerShell cls $hostedServiceName ='teched2012paas' $slot="Production" $rolename="WebUI" $rolecount=(Get-AzureRole ` -ServiceName $hostedServiceName ` -Slot $slot ` -RoleName $rolename).InstanceCount $rolecount=$rolecount + 1 Set-AzureRole ` -ServiceName $hostedServiceName ` -Slot $slot ` -RoleName $rolename ` -Count $rolecount

17 Deployment With PowerShell cls $subscriptionId = 'e84ee480-8cd4-4fa7-81b9-…' $Certificate = Get-Item cert:\CurrentUser\My\F2242… $hostedServiceName ='teched2012paas' $slot="Production" $rolename="WebUI" $rolecount=(Get-RoleInstanceCount ` -SubscriptionId $subscriptionId ` -Certificate $Certificate ` -DeploymentSlot $slot ` -RoleName $rolename ` -ServiceName $hostedServiceName).instancecount $rolecount=$rolecount - 1 Set-RoleInstanceCount ` -SubscriptionId $subscriptionId ` -Certificate $Certificate ` -DeploymentSlot $slot ` -RoleName $rolename ` -ServiceName $hostedServiceName ` -Count $rolecount | Get-OperationStatus -WaitToComplete

18 See hidden slides for more information and links to tools.

19

20

21 See hidden slides for links to tools.

22

23

24 Tenant 1 Tenant 2 Shared Infrastructure

25 Tenant 1 Tenant 2 Shared Infrastructure Cache

26 Tenant 1 Tenant 2 T1 T2 … … … … … … List of Customers Query using DBAdmin user List of Customers Query using DBAdmin user SQL Exception U1 U2 U3 … T1 T2 … select … from DATA inner join USERS … where USERS.UID = U1 U1 U3 Connection String in web.config

27 See hidden slides for more information and links to tools.

28 Tenant 1 Tenant 2 T1 T2 List of Customers Tenant Directory (Encrypted Connection Strings) Tenant can be a claim of the user

29 Rainer Stropek CEO, Co-Founder software architects gmbh Tenant Separation See hidden slides for more information and code snippets.

30 Deployment of SQL Azure Server $subscriptionId = 'e84ee480-8cd4-4fa7-81b9-…' $Certificate = Get-Item cert:\CurrentUser\My\F2242… $sqlAdminLogin = "TechEdSqlAdmin" $sqlAdminPassword = "TechEdSq1@dm1n" $location = "North Europe" $server = (New-SqlAzureServer ` -AdministratorLogin $sqlAdminLogin ` -AdministratorLoginPassword $sqlAdminPassword ` -Location $location ` -SubscriptionId $subscriptionId ` -Certificate $Certificate).ServerName $fullServer = $server + ".database.windows.net" $ruleName = "Everyone" New-SqlAzureFirewallRule ` -Server $server ` -RuleName $ruleName ` -StartIpAddress "0.0.0.0" ` -EndIpAddress "255.255.255.255" ` -SubscriptionId $subscriptionId ` -Certificate $Certificate

31 Deployment of SQL Azure Server $cmdLineQuery = "CREATE DATABASE TechEd2012 GO CREATE LOGIN TechEd2012Admin WITH PASSWORD = 'TechEd2012@dm!n'" sqlcmd -S $fullServer -d master -U $sqlAdminLogin -P $sqlAdminPassword -Q "$cmdLineQuery" $cmdLineQuery = "CREATE USER TechEd2012Admin FOR LOGIN TechEd2012Admin WITH DEFAULT_SCHEMA = dbo GO EXEC sp_addrolemember N'db_owner', N'TechEd2012Admin'" sqlcmd -S $fullServer -d TechEd2012 -U $sqlAdminLogin -P $sqlAdminPassword -Q "$cmdLineQuery" Create 3-node cluster in Azure Create user in SQL Azure

32 Tenant 1 Tenant 2 Shared Infrastructure Trusted Admin User E.g. Script Execute Trusted Admin User E.g. Script Execute Tenant Admin User Tenant Admin User E.g. Script Sandbox Execute

33 E.g. Script Tenant 1 Tenant 2 Tenant 3 Tenant 4 Tenant 5

34

35

36

37

38

39 Rainer Stropek CEO, Co-Founder software architects gmbh SQL Azure Backup See hidden slides for more information and links to tools.

40 Submit DAC Export Request REM Backup entire database DacIESvcCli.exe -X -Server qgmc….database.windows.net -Database MyDatabase -ACCESSKEYTYPE shared -BLOBURL "http://rstropekteched.blob.core.windows.net/tenant1/Tenant1Backup.bacpac" -BLOBACCESSKEY "?sr=b&si=Backup&sig=mBJfu8SODQYC5Ns…" -User … -Password … REM Selective backup DacIESvcCli.exe -SX -Server qgmc….database.windows.net -Database MyDatabase -ACCESSKEYTYPE shared -BLOBURL "http://rstropekteched.blob.core.windows.net/tenant1/Tenant1Backup.bacpac" -BLOBACCESSKEY "?sr=b&si=Backup&sig=mBJfu8SODQYC5Ns…" -User … -Password … -SXF c:\backup\selection.xml Tip: Use Shared Access Signatures

41 Submit DAC Export Request tenant1 Table1 tenant1 Table2 … Specify schema/table filter here

42

43

44

45

46 Data Center 1 Data Center 2 Clients

47 Rainer Stropek CEO, Co-Founder software architects gmbh Azure Traffic Manager See hidden slides for more information and code snippets.

48 Create Traffic Manager Policy With PowerShell cls $subscriptionId = 'e84ee480-8cd4-4fa7-81b9-1379fdcf78a6' $Certificate = Get-Item cert:\CurrentUser\My\F2242BC0925A2F5B01B2F57B572E6439B721AD4D $TMProfileName = 'TechEd2012TrafficMgr' $profile = New-TrafficManagerProfile ` -ProfileName $TMProfileName ` -DomainName 'teched2012trafficmgr.trafficmanager.net' ` -SubscriptionId $subscriptionId ` -Certificate $Certificate $endpoints = @() $endpoints += New-TrafficManagerEndpoint -DomainName 'europenorth.cloudapp.net' $endpoints += New-TrafficManagerEndpoint -DomainName 'northcentralus.cloudapp.net' $monitors = @() $monitors += New-TrafficManagerMonitor –Port 80 –Protocol HTTP –RelativePath / Cross data center failover cluster

49 Create Traffic Manager Policy With PowerShell $createdDefinition = New-TrafficManagerDefinition ` -ProfileName $TMProfileName ` -TimeToLiveInSeconds 30 ` -LoadBalancingMethod Failover ` -Monitors $monitors ` -Endpoints $endpoints ` -Status Enabled ` -SubscriptionId $subscriptionId ` -Certificate $Certificate Set-TrafficManagerProfile ` -ProfileName $TMProfileName ` -Enable ` -DefinitionVersion $createdDefinition.Version ` -SubscriptionId $subscriptionId ` -Certificate $Certificate

50

51

52

53

54

55 Rainer Stropek CEO, Co-Founder software architects gmbh CloudNinja Metering Block

56

57

58

59 Connect. Share. Discuss. http://europe.msteched.com Learning Microsoft Certification & Training Resources www.microsoft.com/learning TechNet Resources for IT Professionals http://microsoft.com/technet Resources for Developers http://microsoft.com/msdn

60 Evaluations http://europe.msteched.com/sessions Submit your evals online

61


Download ppt "Operating and Optimizing Multi-Tenant SaaS Applications in Windows Azure: An IT Pro Perspective Rainer Stropek CEO, Co-Founder software architects gmbh."

Similar presentations


Ads by Google