SlideShare una empresa de Scribd logo
1 de 55
http://feschenkoalex.blogspot.com
feschenko.alex@gmail.com
Основной


% сгенерированного электричества
                                   Основной
                                   Основной
                                   Основной
                                   Основной
                                   Основной
                                   Основной
                                   Основной
                                   Основной
                                   Основной
                                   Основной

                                              Частное
                                              обеспечение
                                              Централизированное
                                              обеспечение
Центры обработки данных
Центры обработки данных
Разворачивание контейнеров
Центры обработки данных
Транспортировка контейнеров
Центры обработки данных
Монтаж контейнеров
Центры обработки данных
Монтаж контейнеров
1.    12.   23.   34.
2.    13.   24.   35.
3.    14.   25.   36.
4.    15.   26.   37.
5.    16.   27.   38.
6.    17.   28.   39.
7.    18.   29.   40.
8.    19.   30.   41.
9.    20.   31.   42.
10.   21.   32.   43.
11.   22.   33.
http://tinyurl.com/azuresamples
http://wappowershell.codeplex.com
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle
Windows Azure Overview and Application Lifecycle

Más contenido relacionado

Más de Alexander Feschenko

Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.Alexander Feschenko
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Alexander Feschenko
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureAlexander Feschenko
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureAlexander Feschenko
 
Продвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerПродвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerAlexander Feschenko
 

Más de Alexander Feschenko (10)

Azure Container Service
Azure Container ServiceAzure Container Service
Azure Container Service
 
Microsoft Azure Automation
Microsoft Azure AutomationMicrosoft Azure Automation
Microsoft Azure Automation
 
Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.Microsoft Azure. Troubleshooting and monitoring.
Microsoft Azure. Troubleshooting and monitoring.
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
Высокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows AzureВысокопроизводительные приложения на базе Windows Azure
Высокопроизводительные приложения на базе Windows Azure
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
 
Developer Days 2011, Kharkov
Developer Days 2011, KharkovDeveloper Days 2011, Kharkov
Developer Days 2011, Kharkov
 
Построение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows AzureПостроение высоконагруженных приложений на базе Windows Azure
Построение высоконагруженных приложений на базе Windows Azure
 
Продвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerПродвинутая web-отладка с Fiddler
Продвинутая web-отладка с Fiddler
 

Windows Azure Overview and Application Lifecycle

Notas del editor

  1. Slide ObjectiveIntroduce the simple ASP.NET templates for Windows AzureSpeaking NotesVisual Studio Tools for Windows Azure include templatesWeb Forms and MVC preconfigured web rolesBoth VB.Net and C# supportedBasic Asp.NET web role is equivalent to a new Web project- i.e. very simple and bare bonesASP.NET MVC template includes significant amount of existing code including Account modelAccount and Home ViewsError pages and error handlingAccount and Home controllersEquivalent to creating a new MVC 2 Web Application (rather than an empty MVC site)Notes
  2. Slide ObjectiveIntroduce the important of ASP.NET in Windows Azure applicationsIntroduce the topics to be covered in this sessionSpeaking NotesWindows Azure can run a very broad variety of application typesASP.NET Applications will be a very common type of applicationWindows Azure supports ASP.NET very wellCore ASP.NET (HttpModules/HttpHandlers)Web FormsMVCBecause of the stateless nature of Windows Azure web roles important things to consider around Session StateAJAX callsWill discuss configuring DNS for Windows AzureWill discuss some advanced features for Windows AzureBoth very much suited to SaaS types of applicationsFinally touch on some Windows Azure common challengesNotesSome notes on Migration http://msdn.microsoft.com/en-us/windowsazure/ff356857.aspxAzure Architecture guidance http://msdn.microsoft.com/en-us/library/ff728592.aspx
  3. Slide ObjectiveIntroduce the important of ASP.NET in Windows Azure applicationsIntroduce the topics to be covered in this sessionSpeaking NotesWindows Azure can run a very broad variety of application typesASP.NET Applications will be a very common type of applicationWindows Azure supports ASP.NET very wellCore ASP.NET (HttpModules/HttpHandlers)Web FormsMVCBecause of the stateless nature of Windows Azure web roles important things to consider around Session StateAJAX callsWill discuss configuring DNS for Windows AzureWill discuss some advanced features for Windows AzureBoth very much suited to SaaS types of applicationsFinally touch on some Windows Azure common challengesNotesSome notes on Migration http://msdn.microsoft.com/en-us/windowsazure/ff356857.aspxAzure Architecture guidance http://msdn.microsoft.com/en-us/library/ff728592.aspx
  4. Slide ObjectiveIntroduce the simple ASP.NET templates for Windows AzureSpeaking NotesVisual Studio Tools for Windows Azure include templatesWeb Forms and MVC preconfigured web rolesBoth VB.Net and C# supportedBasic Asp.NET web role is equivalent to a new Web project- i.e. very simple and bare bonesASP.NET MVC template includes significant amount of existing code including Account modelAccount and Home ViewsError pages and error handlingAccount and Home controllersEquivalent to creating a new MVC 2 Web Application (rather than an empty MVC site)Notes
  5. Slide ObjectiveIntroduce the simple ASP.NET templates for Windows AzureSpeaking NotesVisual Studio Tools for Windows Azure include templatesWeb Forms and MVC preconfigured web rolesBoth VB.Net and C# supportedBasic Asp.NET web role is equivalent to a new Web project- i.e. very simple and bare bonesASP.NET MVC template includes significant amount of existing code including Account modelAccount and Home ViewsError pages and error handlingAccount and Home controllersEquivalent to creating a new MVC 2 Web Application (rather than an empty MVC site)Notes
  6. Slide ObjectiveRecap on statelessnessReinforces nature of stateless servers in the context of web requestsSpeaking NotesWindows Azure uses load balancers that round robin requests to each instanceWhen running in Windows Azure with multiple instances there is no guarantee that subsequent requests will hit the same instanceSome things to remember hereSubsequent requests may not always be obviouse.g. Think of an ASP.NET page that includes an image url that is served by an HTTP HandlerCan’t assume that the image will be loaded form the same instances that served the original ASP.NET pageWhich leads on to talking about AJAX…Notes
  7. Slide ObjectiveRecap on statelessnessReinforces nature of stateless servers in the context of web requestsSpeaking NotesWindows Azure uses load balancers that round robin requests to each instanceWhen running in Windows Azure with multiple instances there is no guarantee that subsequent requests will hit the same instanceSome things to remember hereSubsequent requests may not always be obviouse.g. Think of an ASP.NET page that includes an image url that is served by an HTTP HandlerCan’t assume that the image will be loaded form the same instances that served the original ASP.NET pageWhich leads on to talking about AJAX…Notes
  8. Slide ObjectiveReinforce the need to think about statelessness when working with AJAXSpeaking NotesAJAX requests (e.g. JQuery calls to the server) may not go back to the instance that originally served the pageCan’t leave ‘nuggets’ of state inside a web role with the intention of fetching it via APAX laterCan push the state back into storageEither store it up direct out of storage (e.g. grab an XML block using a Shared Access Signature)May be better to use a Data Island in the original document in this case thoughPush it into storage and re-fetch in web role when AJAX call arrivesASP.NET Ajax requires a common machine key in web farm environments. Windows Azure is pre-configured for this- all the instances in a role will have the exact same machine keyCan modify the machine key if you need to from codeThere is NO support for sticky sessions. Noteshttp://wiki.asp.net/page.aspx/1248/aspnet-and-load-balancing/ Changing machine key in codehttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/a6f00720-3aad-40c8-ac31-c585bc0c3b67
  9. Slide ObjectiveUnderstand that Microsoft has a long history in running data centres and online applications. Bing, Live, Hotmail etc….Understand the huge amount of innovation going on at the data center levelSpeaking Points:Microsoft is one of the largest operators of datacenters in the worldYears of ExperienceLarge scale trustworthy environmentsDriving for cost and environmental efficientlyWindows Azure runs in 3 regions and 6 datacenters todayData center innovation is driving improved reliability and efficiencyPUE = Power Usage Effectiveness = Total Facility power/IT Systems Power = Indication of efficiency of DCUnder 1.8 is very good, modern cloud DCs approaching 1.2Multi-billion dollar datacenter investment700,000+ square foot Chicago and the 300,000+ square foot Dublin, Ireland data centersMicrosoft cloud services provide the reliability and security you expect for your business: 99.9% uptime SLA, 24/7 support. Microsoft understands the needs of businesses with respect to security, data privacy, compliance and risk management, and identity and access control. Microsoft datacenters are ISO 27001:2005 accredited, with SAS 70 Type I and Type II attestations.Notes:http://www.globalfoundationservices.com/http://blogs.msdn.com/the_power_of_software/archive/2008/06/20/microsoft-s-pue-experience-years-of-experience-reams-of-data.aspxhttp://blogs.msdn.com/the_power_of_software/archive/2008/06/27/part-2-why-is-energy-efficiency-important.aspx
  10. Slide ObjectiveReinforce the need to think about statelessness when working with AJAXSpeaking NotesAJAX requests (e.g. JQuery calls to the server) may not go back to the instance that originally served the pageCan’t leave ‘nuggets’ of state inside a web role with the intention of fetching it via APAX laterCan push the state back into storageEither store it up direct out of storage (e.g. grab an XML block using a Shared Access Signature)May be better to use a Data Island in the original document in this case thoughPush it into storage and re-fetch in web role when AJAX call arrivesASP.NET Ajax requires a common machine key in web farm environments. Windows Azure is pre-configured for this- all the instances in a role will have the exact same machine keyCan modify the machine key if you need to from codeThere is NO support for sticky sessions. Noteshttp://wiki.asp.net/page.aspx/1248/aspnet-and-load-balancing/ Changing machine key in codehttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/a6f00720-3aad-40c8-ac31-c585bc0c3b67
  11. Slide ObjectiveReinforce the need to think about statelessness when working with AJAXSpeaking NotesAJAX requests (e.g. JQuery calls to the server) may not go back to the instance that originally served the pageCan’t leave ‘nuggets’ of state inside a web role with the intention of fetching it via APAX laterCan push the state back into storageEither store it up direct out of storage (e.g. grab an XML block using a Shared Access Signature)May be better to use a Data Island in the original document in this case thoughPush it into storage and re-fetch in web role when AJAX call arrivesASP.NET Ajax requires a common machine key in web farm environments. Windows Azure is pre-configured for this- all the instances in a role will have the exact same machine keyCan modify the machine key if you need to from codeThere is NO support for sticky sessions. Noteshttp://wiki.asp.net/page.aspx/1248/aspnet-and-load-balancing/ Changing machine key in codehttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/a6f00720-3aad-40c8-ac31-c585bc0c3b67
  12. Slide ObjectiveReinforce the need to think about statelessness when working with AJAXSpeaking NotesAJAX requests (e.g. JQuery calls to the server) may not go back to the instance that originally served the pageCan’t leave ‘nuggets’ of state inside a web role with the intention of fetching it via APAX laterCan push the state back into storageEither store it up direct out of storage (e.g. grab an XML block using a Shared Access Signature)May be better to use a Data Island in the original document in this case thoughPush it into storage and re-fetch in web role when AJAX call arrivesASP.NET Ajax requires a common machine key in web farm environments. Windows Azure is pre-configured for this- all the instances in a role will have the exact same machine keyCan modify the machine key if you need to from codeThere is NO support for sticky sessions. Noteshttp://wiki.asp.net/page.aspx/1248/aspnet-and-load-balancing/ Changing machine key in codehttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/a6f00720-3aad-40c8-ac31-c585bc0c3b67
  13. Slide ObjectiveReinforce the need to think about statelessness when working with AJAXSpeaking NotesAJAX requests (e.g. JQuery calls to the server) may not go back to the instance that originally served the pageCan’t leave ‘nuggets’ of state inside a web role with the intention of fetching it via APAX laterCan push the state back into storageEither store it up direct out of storage (e.g. grab an XML block using a Shared Access Signature)May be better to use a Data Island in the original document in this case thoughPush it into storage and re-fetch in web role when AJAX call arrivesASP.NET Ajax requires a common machine key in web farm environments. Windows Azure is pre-configured for this- all the instances in a role will have the exact same machine keyCan modify the machine key if you need to from codeThere is NO support for sticky sessions. Noteshttp://wiki.asp.net/page.aspx/1248/aspnet-and-load-balancing/ Changing machine key in codehttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/a6f00720-3aad-40c8-ac31-c585bc0c3b67
  14. Slide ObjectiveReinforce the need to think about statelessness when working with AJAXSpeaking NotesAJAX requests (e.g. JQuery calls to the server) may not go back to the instance that originally served the pageCan’t leave ‘nuggets’ of state inside a web role with the intention of fetching it via APAX laterCan push the state back into storageEither store it up direct out of storage (e.g. grab an XML block using a Shared Access Signature)May be better to use a Data Island in the original document in this case thoughPush it into storage and re-fetch in web role when AJAX call arrivesASP.NET Ajax requires a common machine key in web farm environments. Windows Azure is pre-configured for this- all the instances in a role will have the exact same machine keyCan modify the machine key if you need to from codeThere is NO support for sticky sessions. Noteshttp://wiki.asp.net/page.aspx/1248/aspnet-and-load-balancing/ Changing machine key in codehttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/a6f00720-3aad-40c8-ac31-c585bc0c3b67
  15. Slide ObjectiveReinforce the need to think about statelessness when working with AJAXSpeaking NotesAJAX requests (e.g. JQuery calls to the server) may not go back to the instance that originally served the pageCan’t leave ‘nuggets’ of state inside a web role with the intention of fetching it via APAX laterCan push the state back into storageEither store it up direct out of storage (e.g. grab an XML block using a Shared Access Signature)May be better to use a Data Island in the original document in this case thoughPush it into storage and re-fetch in web role when AJAX call arrivesASP.NET Ajax requires a common machine key in web farm environments. Windows Azure is pre-configured for this- all the instances in a role will have the exact same machine keyCan modify the machine key if you need to from codeThere is NO support for sticky sessions. Noteshttp://wiki.asp.net/page.aspx/1248/aspnet-and-load-balancing/ Changing machine key in codehttp://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/a6f00720-3aad-40c8-ac31-c585bc0c3b67
  16. Slide Objectives:Explain that there are different VM instance sizes available within Windows AzureSpeaking Points:---Speaking Points:One of the key areas of feedback has been to reduce the cost and size of Windows Azure instances. At PDC we will announce..Notes:(*) 20GB with a limitation on VHD size if they are deploying VMRole on XSmall: the VHD can only be up to 15GB.each tenant can support 20 instances just like regular subscriptions with Small VM. We do not scale based on core counts.There is no SLA on the network bandwidth for each VM size as this resource is shared among all the VM. That said, we need to provide guidance for customer so they could design their applications correctly. From the engineering side, this is what we mean by Low, Moderate and High. • Low currently means 0-15Mbps with short burst up to 25-50Mbps (Megabit/s). These are sufficient for some web sites with low traffic. • Moderate means 0-100Mbps with short burst up to 200Mbps (100Mbps is the norm). This is what we currently reserve for the Small VM.• High means 200-800 Mbps. If you divide this into 3 spectrums for Medium, Large and XL. Then Medium is in the low end, Large hovers around the middle zone and of course XL takes the high-end spot.These rates should be used as guidance. Nothing can beat a test run to see what the application requires but using these bandwidth ranges, hopefully it reduces the guess work for the customers
  17. Slide ObjectiveExplains the use of SQL Azure as a backing storeSpeaking NotesThe Out of the Box SQL ServerASP.NET Session State mechanism is not suitable for AzureRelies on SQL Server Agent which is not available in SQL AzureWill need to implement a custom session state providerStore and retrieve stateCleanupWill probably want to use some sort of partitioning mechanism. Partitioning is a feature in the ASP.NET provider interfaces… so just need to implement the mechanism to reolsve the partitionFor more on partitioning see the day 2 storage strategies sessionSQL Azure is cost competitiveParticularly in high and consistent load scenariosSQL Azure does not have the storage transaction charge SQL Session state generally only requires a small amount of storageScale out across 1GB SQL Azure databasesNotes3rd party Sql Azure session state providerhttp://azuresqlsession.codeplex.com/wikipage?title=Home&ProjectName=azuresqlsession
  18. Slide ObjectiveDiscusses managing DNS entries for Windows Azure Web Role hosted sitesSpeaking NotesFor all intents and purposes Windows Azure IPs are fixed. They are fixed for the lifetime of a deploymentThey remain fixed even when you VIP SwapTherefore you can comfortably create A records against the IP address for your production slot. This will save you the double lookup for a CName record.It will also allow you to create an entry for the root of a domainSo the approach for high performance DNS is as followsCreate your hosted service Deploy into the production slot nslookup myapp.cloudapp.net to get the IP Create A records for www.myapp.com and myapp.com with a decent length TTL Run your service doing rolling upgrades and VIP swaps till your hearts content If you need to delete your deployment (e.g. to reconfigure external endpoints) then you should; lower the TTL on the A recordswait till the old TTL expirescreate a new servicedeploy to prod slotNSLookupswap the IP on the A records delete the old deployment.NotesGood threadhttp://social.msdn.microsoft.com/Forums/en/windowsazure/thread/fa00d06d-b631-46ce-af66-f463cf667282
  19. Slide ObjectiveDiscusses managing DNS entries for Windows Azure Web Role hosted sitesSpeaking NotesFor all intents and purposes Windows Azure IPs are fixed. They are fixed for the lifetime of a deploymentThey remain fixed even when you VIP SwapTherefore you can comfortably create A records against the IP address for your production slot. This will save you the double lookup for a CName record.It will also allow you to create an entry for the root of a domainSo the approach for high performance DNS is as followsCreate your hosted service Deploy into the production slot nslookup myapp.cloudapp.net to get the IP Create A records for www.myapp.com and myapp.com with a decent length TTL Run your service doing rolling upgrades and VIP swaps till your hearts content If you need to delete your deployment (e.g. to reconfigure external endpoints) then you should; lower the TTL on the A recordswait till the old TTL expirescreate a new servicedeploy to prod slotNSLookupswap the IP on the A records delete the old deployment.NotesGood threadhttp://social.msdn.microsoft.com/Forums/en/windowsazure/thread/fa00d06d-b631-46ce-af66-f463cf667282
  20. Slide ObjectiveDiscusses managing DNS entries for Windows Azure Web Role hosted sitesSpeaking NotesFor all intents and purposes Windows Azure IPs are fixed. They are fixed for the lifetime of a deploymentThey remain fixed even when you VIP SwapTherefore you can comfortably create A records against the IP address for your production slot. This will save you the double lookup for a CName record.It will also allow you to create an entry for the root of a domainSo the approach for high performance DNS is as followsCreate your hosted service Deploy into the production slot nslookup myapp.cloudapp.net to get the IP Create A records for www.myapp.com and myapp.com with a decent length TTL Run your service doing rolling upgrades and VIP swaps till your hearts content If you need to delete your deployment (e.g. to reconfigure external endpoints) then you should; lower the TTL on the A recordswait till the old TTL expirescreate a new servicedeploy to prod slotNSLookupswap the IP on the A records delete the old deployment.NotesGood threadhttp://social.msdn.microsoft.com/Forums/en/windowsazure/thread/fa00d06d-b631-46ce-af66-f463cf667282
  21. Slide ObjectiveDiscusses managing DNS entries for Windows Azure Web Role hosted sitesSpeaking NotesFor all intents and purposes Windows Azure IPs are fixed. They are fixed for the lifetime of a deploymentThey remain fixed even when you VIP SwapTherefore you can comfortably create A records against the IP address for your production slot. This will save you the double lookup for a CName record.It will also allow you to create an entry for the root of a domainSo the approach for high performance DNS is as followsCreate your hosted service Deploy into the production slot nslookup myapp.cloudapp.net to get the IP Create A records for www.myapp.com and myapp.com with a decent length TTL Run your service doing rolling upgrades and VIP swaps till your hearts content If you need to delete your deployment (e.g. to reconfigure external endpoints) then you should; lower the TTL on the A recordswait till the old TTL expirescreate a new servicedeploy to prod slotNSLookupswap the IP on the A records delete the old deployment.NotesGood threadhttp://social.msdn.microsoft.com/Forums/en/windowsazure/thread/fa00d06d-b631-46ce-af66-f463cf667282
  22. Slide ObjectiveDiscuss achieving very high availability with Windows AzureSpeaker NotesWhen you have an application running at the scale intended for Windows Azure applications you probably want to ensure that it is available as much as possible.Often aiming for 5 9s availabilityTo achieve this your approach needs to take in to account how you upgrade your applications whilst keeping them available.The platform you’re building on also needs to take this in to account and ensure it offers features and functionality under the covers to support your efforts.Windows Azure has a number of features baked in to the Fabric to assist.Let’s take a look at some of these in detail.NotesPatterns for highly available systems in Windows Azurehttp://msdn.microsoft.com/en-us/magazine/dd727504.aspx
  23. Slide ObjectiveDiscusses managing DNS entries for Windows Azure Web Role hosted sitesSpeaking NotesFor all intents and purposes Windows Azure IPs are fixed. They are fixed for the lifetime of a deploymentThey remain fixed even when you VIP SwapTherefore you can comfortably create A records against the IP address for your production slot. This will save you the double lookup for a CName record.It will also allow you to create an entry for the root of a domainSo the approach for high performance DNS is as followsCreate your hosted service Deploy into the production slot nslookup myapp.cloudapp.net to get the IP Create A records for www.myapp.com and myapp.com with a decent length TTL Run your service doing rolling upgrades and VIP swaps till your hearts content If you need to delete your deployment (e.g. to reconfigure external endpoints) then you should; lower the TTL on the A recordswait till the old TTL expirescreate a new servicedeploy to prod slotNSLookupswap the IP on the A records delete the old deployment.NotesGood threadhttp://social.msdn.microsoft.com/Forums/en/windowsazure/thread/fa00d06d-b631-46ce-af66-f463cf667282
  24. Slide ObjectiveDiscusses managing DNS entries for Windows Azure Web Role hosted sitesSpeaking NotesFor all intents and purposes Windows Azure IPs are fixed. They are fixed for the lifetime of a deploymentThey remain fixed even when you VIP SwapTherefore you can comfortably create A records against the IP address for your production slot. This will save you the double lookup for a CName record.It will also allow you to create an entry for the root of a domainSo the approach for high performance DNS is as followsCreate your hosted service Deploy into the production slot nslookup myapp.cloudapp.net to get the IP Create A records for www.myapp.com and myapp.com with a decent length TTL Run your service doing rolling upgrades and VIP swaps till your hearts content If you need to delete your deployment (e.g. to reconfigure external endpoints) then you should; lower the TTL on the A recordswait till the old TTL expirescreate a new servicedeploy to prod slotNSLookupswap the IP on the A records delete the old deployment.NotesGood threadhttp://social.msdn.microsoft.com/Forums/en/windowsazure/thread/fa00d06d-b631-46ce-af66-f463cf667282
  25. Slide ObjectiveDiscusses the approach of using Cookies to hold state.Speaking NotesAvoiding session state and simply pushing the state to the client as a cookieCould implement a session state provider on top of this approachAvoids the need to roundtrip to/from the database or storage each requestWorth comparing the perf difference between the two approachesDon’t forget that cookies are sent back and forth with every HTTP request- e.g. if you serve images from your Web Role you will end up with cookies being sentCan use an alternative Host header in order to avoid thisCan also use Windows Azure Blob storage to serve images and other static content.Notes
  26. Slide ObjectiveIntroduce the different tools available to developers around developing, deploying and managing applications and services in Windows AzureEach of the tools will be drilled in to in more detail in the slides that follow
  27. Slide ObjectiveIntroduce capabilities of the Windows Azure Tools for Visual StudioSpeaking PointsWindows Azure tools for Visual Studio extend Visual StudioEnables the creation, building, debugging, running, packaging, deploying web apps and services for Windows AzureVisual Studio 2008 & 2010 supportStorage Explorer an extension to the Visual Studio Server Explorer window provides read-only access to blob and table data in your Windows Azure storage accountsCompute Explorer an extension to the Visual Studio Server Explorer window provides a read-only view of deployment status for your hosted services in Windows AzureIntelliTrace debugginglog extensive debugging information while deployed to Windows Azure. can use the IntelliTrace logs to step through your code in Visual Studio as though it were running in Windows Azure
  28. Slide ObjectiveShow the Windows Azure Compute ExplorerSpeaking PointsCompute Explorer an extension to the Visual Studio Server Explorer window provides a read-only view of deployment status for your hosted services in Windows Azure
  29. Slide ObjectiveShow the Windows Azure Storage ExplorerSpeaking PointsStorage ExplorerAn extension to the Visual Studio Server Explorer window Provides read-only of blob & table data in your Windows Azure storage accountsData is cached locally and only refreshed when change is detected
  30. Slide ObjectiveShow the Windows Azure Storage ExplorerSpeaking PointsStorage ExplorerAn extension to the Visual Studio Server Explorer window Provides read-only of blob & table data in your Windows Azure storage accountsData is cached locally and only refreshed when change is detected
  31. Recommended demos from the Windows Azure Training Kit:Hello Windows Azure
  32. Slide ObjectiveWindows Azure allows for 2 deployment packages as part of the same project, Production and StagingSpeaking PointsStaging Costs money to useFlip aroundEach package has a unique version for that project.The “production” package services requests from the website URL. Worker roles operate normally.Any package in “Staging” will only serve web requests from a temp URL – which is a GUID and is shown below the package. This is great to run smoke tests on.
  33. Slide ObjectiveHighlight the stages of a typical deploymentLocal development Hybrid of local and Windows Azure Everything in Windows Azure in staging Swap from Staging to ProductionSpeaking PointsDebugging is not currently supported in Windows AzureSet breakpoints & debug in Local Development Fabric.Test initially with development storage, but test with Windows Azure storage to test with large volumes of data whilst still keeping your roles local for debuggingOnce you are happy with the Worker/Web Roles running locally deploy everything to Staging and run tests in this environmentOnce all tests in staging pass, promote everything to productionWorker roles in the “Staging” project are operational – and as such will process messages from queues etc. You should design for this.
  34. Slide ObjectiveCODE – PACKAGE – UPLOAD – DEPLOYShows how service makes it from code living in Visual Studio to a running deployed instance in Windows AzureShow how Roles are packaged up and uploaded with the config to Windows AzureSpeaking PointsCode is compiled, then packaged into a single file. This is the service package.This, along with the configuration/service model – are deployed via the web portal.NotesVisual Studio 2010 with the updated tools now supports automated seamless package/upload/deploy using Service Mngt Api
  35. Slide ObjectiveDemonstrating the Publish and Deploy features included with Visual Studio 2010Speaking PointsA Windows Azure subscription. When you first sign up to Windows Azure a subscription is created and associated with your Live IDTo find your subscription ID, navigate to the Account page in the Developer Portal. Subscription ID appears in the Support Information section at the bottom of the page.A Windows Azure hosted service. Before you can deploy your cloud service, you need to create a hosted service for that deployment. The hosted service provides the two deployment slots, Staging and Production, to which you can deploy your cloud service.A Windows Azure storage account. When you deploy your cloud service through Visual Studio, the service package is first uploaded to a blob through the specified storage account, then deployed to Windows Azure from the Blob service
  36. Slide ObjectiveDemonstrating the Publish and Deploy features included with Visual Studio 2010Speaking PointsA Windows Azure subscription. When you first sign up to Windows Azure a subscription is created and associated with your Live IDTo find your subscription ID, navigate to the Account page in the Developer Portal. Subscription ID appears in the Support Information section at the bottom of the page.A Windows Azure hosted service. Before you can deploy your cloud service, you need to create a hosted service for that deployment. The hosted service provides the two deployment slots, Staging and Production, to which you can deploy your cloud service.A Windows Azure storage account. When you deploy your cloud service through Visual Studio, the service package is first uploaded to a blob through the specified storage account, then deployed to Windows Azure from the Blob service
  37. Recommended demos from the Windows Azure Training Kit:Hello Windows Azure
  38. Slide ObjectiveIntroduce the Service Management APIList a few of the functions that can be achievedSpeaking PointsProgrammatic access to much of the functionality available through the Windows Azure PortalYou can manage;Storage accountsHosted servicesService deploymentsAffinity GroupsREST basedPerformed over SSLAuthenticated through use of X509 certsAccessed from A Role running within Windows Azure Any HTTPS request
  39. /out: <file | directory> This option indicates the output format and location for the role binaries./role:<rolename>;<role-binaries-directory>; This option specifies the directory where the binaries for a role reside and the DLL where the entry point of the role is defined. The command line may include one /role option for each role in the service definition file./copyOnly files are copied into a folder hierarchy whereas omitting this flag would produce a .cspkg formatted file that would be used as a deployment package for deploying to Windows Azure
  40. Slide ObjectiveIntroduce CSManageSpeaker NotesWhat is csmanage?  wraps Service Management APIa tool to manage your deployments and services, using the Windows Azure Service Management APIWhere do I get it?On Codeplexhttp://code.msdn.microsoft.com/windowsazuresamplesWhat does it do?A command line tool to wrap the Service management APIRun Servicecsmanage /update-deployment /hosted-service:<service> /slot:staging/status:running
  41. Slide ObjectiveIntroduce The Windows Azure Powershell CmdletsSpeaker NotesA set of PowerShell cmdlets wrapping the Windows Azure Service Management API and Diagnostics API. Script out your deployments, upgrades, and scaling of your Windows Azure applications as well as set and manage your diagnostics configuration. Every call to the Service Management API requires an X509 certificate and the subscription ID for the account.PowerShell allows output of each command to be piped to another command. Notice how the operations above are piped and chained togetherActions that can be performedDeploy & upgrade hosted services Remove your hosted services Manage your storage accounts Manage your certificates Configure your diagnostics Transfer diagnostics information
  42. Slide ObjectiveDiscuss achieving very high availability with Windows AzureSpeaker NotesWhen you have an application running at the scale intended for Windows Azure applications you probably want to ensure that it is available as much as possible.Often aiming for 5 9s availabilityTo achieve this your approach needs to take in to account how you upgrade your applications whilst keeping them available.The platform you’re building on also needs to take this in to account and ensure it offers features and functionality under the covers to support your efforts.Windows Azure has a number of features baked in to the Fabric to assist.Let’s take a look at some of these in detail.NotesPatterns for highly available systems in Windows Azurehttp://msdn.microsoft.com/en-us/magazine/dd727504.aspx
  43. Slide ObjectiveDiscuss achieving very high availability with Windows AzureSpeaker NotesFault Domain is a physical unit of failure, and is closely related to the physical infrastructure in the data centers. In Windows Azure the rack can be considered a fault domain. However there is no 1:1 mapping between fault domain and rack. Windows Azure Fabric is responsible to deploy the instances of your application in different fault domains. Obviously this only applies if you run more than 1 instanceRight now Fabric makes sure that your application uses at least 2 (two) fault domains, however depending on capacity and VM availability it may happen that it is spread across more than that. As a developer u have no direct control over how many fault domains your application will use but the way you configure it may impact your availabilityUpgrade Domain is a logical unit, which determines how particular service will be upgraded. The default number of upgrade domains that are configured for your application is 5 (five). You can control how many upgrade domains your application will use through the upgradeDomain configuration setting in your service definition file (CSDEF). Windows Azure Fabric ensures that particular upgrade domain is not within single fault domainThat is Upgrade domains are orthogonal to fault domainsRoles are then spread out over upgrade domains and fault domains. Subject to running a reasonable number of instances this removes the risk of a single point of failure
  44. Slide ObjectiveIntroduce the very basic service model that we’ll be working with as we discuss fault and upgrade domainsSpeaker NotesWe’ll be looking at fault an upgrade domains in the context of a very simple serviceThe model defines two roles- a worker and a we roleEach of these is running four instances
  45. Slide ObjectiveProvide a graphical view of fault and upgrade domainsSpeaker NotesYou can se that our service is well spread out across both fault and upgrade domainsThe loss of a fault domain will not cause a failure of our service nor will the restart or change of an upgrade domain cause a failure of our serviceNotesUseful pre-reading here.http://blog.toddysm.com/2010/04/upgrade-domains-and-fault-domains-in-windows-azure.html
  46. ObjectiveIntroduce the VIP Swap mechanismSpeaker NotesVIP swapping allows for minimal downtime upgrades by running two deployment slotsThe load balancer is re-wired when a VIP swap is performed to change the deployment slot that is listening on the production URL (the production IP address also remains unchanged during a VIP swap)You can upgrade your service by deploying a new package to the staging deployment slot and then swapping the staging and production deployments. This type of upgrade is called a Virtual IP or VIP swap, as it swaps the addresses of the two deployments. Both deployments remain online during the swap process.If u do a VIP swap you should aim to be running the same number of instances in both slots prior to the swapEnsure instances in staging are running and warmed (consider using inter role communication to warm up instances)Do not want to VIP Swap a 100 instance role and suddenly grind to a halt while the machines JIT your code.VIP-Swap is done between the Production and Staging deployments in Windows Azure During VIP-Swap the VIP of the Production deployment is assigned to the Staging deployment, and the VIP of the Staging deployment is assigned to the Production one (both VIPs are swapped – hence the term VIP-Swap) NotesPerforming VIP Swap Upgradeshttp://msdn.microsoft.com/en-us/library/ee517253.aspx
  47. Provides a diagrammatic view of a VIP SwapStart with just the production slot deployedPerform a deployment into the staging slotThe VIP swap is then performed repointing the IPs at the load balancer level.