Session Review – Migrating Apps into Windows Azure

Simon Davies @ Microsoft

  • Not all applications, services and data will mode to or be created in Windows Azure
    • Technology Fit – Windows Azure Service / Programming Model
    • Data – some data will remain on premise
    • Economics – not worth moving some applications
    • Timing – cannot move everything at once
    • SaaS – some applications will be provided by SaaS vendors
  • What capabilities does Windows Azure provide to help migrate and connect?

Rules/Considerations about Windows Azure Applications

  • Windows Azure apps is built from one or more roles
  • A Windows Azure apps runs multiple IDENTICAL STATELESS instances of each role
    • Stateless
      • This is true but you can always use the Role File System is needed, what happens is that it won’t be permanent since if the machine fails the state in that machine won’t be maintained.
  • A Windows Azure apps behaves correctly when any role fails


  • Web Role : the role is a web app hosted in IIS on Microsoft’s Windows Image
  • Worker Role: the role is an app hosted on Microsoft’s Windows Machine
  • VM Role: The role is a pre-loaded app hosted on YOUR Windows Image
    • don’t forget that it’s not a persistent VM, is transient
  • Types of usage:
    • Web Role
    • Worker Role
    • Admin Web or Worker Role (same roles as previously but with some more Startup Tasks that allows you to customize the Microsoft’s Windows Image)
    • VM Role

Why VM Role?

  • Long running application installations
  • Error-prone application installations
  • Application installations require manual interaction

How to Build a VM Role?

  1. Take a Windows Server 2008 R2 Enterprise Image
  2. Make it your BASE.VHD
  3. Boot from the machine
  4. Customize your machine
    • Install your packages
    • Install your apps
  5. Install the Windows Azure Integration components
  6. Run the “sysprep /generalize” command in order to generalize it and you’ll get an Diff.VHD
    • generalize the name of the machine
  7. Upload both Base and Diff to the Blob Storage
    • “csupload add-vmimage –literalpath <base vhd path> –location <Chosen Data Center>” command compresses the VM and uploads
  8. Add a VM Role in Visual Studio and choose the VHD in the Blob Storage

Example Application Scenarios

  • Stateless ASP.NET Web Application or Service
    • Ideal candidate
  • Stateful ASP.NET application (either use or instance state)
    • Moves with some work
  • Highly parallel HPC application
    • Ideal Candidate
  • Windows Client Apps
    • Not suitable
  • A single instance sever application with local state (eg. Database server)
    • May work with additional design
    • Virtual Machine Role will not help (over and above web\worker role)

Windows Azure Connectivity

  • Data Sync : SQL Azure Data Sync
  • Application Layer Connectivity & Messaging: Service Bus
  • Security: Federated Identity & Access Control
  • Secure Network Connectivity: Windows Azure Connect

Windows Azure Connect

  • Secure network connectivity between on-premise and Cloud
    • Support standard IP protocols
  • Enable Azure Roles for external connectivity via service model
  • Enable computers for connectivity by installing connect agent
    • Only available in Windows Vista SP1, Windows 7, Windows Server 2008, Windows Server 2008 R2
  • Network policy managed thought portal
  • Automatic setup of secure IPv6 network between connected role instances and external computers
    • Tunnel firewalls/NAT’s thought hosted SSL-based relay service
    • Secure via end-to-end IPSec
  • Domain-joints

Identity Federation

  • WIF – Windows Identity Foundation
  • Windows Access Control

Service BUS

  • Extend reach of applications securely though the cloud
  • Enabled multi-tenant apps to integrate with tenants on-premise services
  • Securely integrate partners outside of organization boundaries
  • Extend reach of on-premises web services layer
  • Usage Patterns
    • Connectivity
      • Service Remoting
      • Cloud Eventing
      • Protocol Tunneling
    • Messaging
      • Load Leveling
      • Multicast Messaging

Leave a Reply

Your email address will not be published. Required fields are marked *