Moving Applications to the Cloud, 3rd Edition
Summary of "Moving Applications to the Cloud on Microsoft Azure"
How do you build and deploy applications to be scalable and have high availability? Along with developing the applications, you must also have an infrastructure that can support them. You may need to add servers or increase the capacities of existing ones, have redundant hardware, add logic to the application to handle distributed computing, and add logic for failovers. You have to do this even if an application is in high demand for only short periods of time.
The cloud offers a solution to this dilemma. The cloud is made up of interconnected servers located in various data centers. However, you see what appears to be a centralized location that someone else hosts and manages. By shifting the responsibility of maintaining an infrastructure to someone else, you're free to concentrate on what matters most: the application.
This guide is the third edition of the first volume in a series about Microsoft Azure. It discusses the hosting options available in Azure and demonstrates how you can adapt an existing, on-premises ASP.NET application to one that operates in the cloud. It introduces a fictitious company named Adatum that modifies its expense tracking and reimbursement system, aExpense, step-by-step so that it can be deployed to Azure using a range of different hosting options.
The guide is intended for any architect, developer, or information technology (IT) professional who designs, builds, or operates applications and services that are appropriate for the cloud. It is primarily written for people who work with Windows-based systems. You should be familiar with the Microsoft .NET Framework, Microsoft Visual Studio, ASP.NET, SQL Server and Microsoft Visual C#.
Moving Applications to the Cloud on Microsoft Azure, 3rd Edition is available in paperback from Amazon.com
Chapters in the Guide
Chapter 1, “The Adatum Scenario” introduces you to the Adatum company and the aExpense application. The following chapters describe how Adatum migrates the aExpense application to the cloud. Reading this chapter will help you understand why Adatum wants to migrate some of its business applications to the cloud, and it describes some of its concerns. It will also help you to understand basic options for hosting applications and services in the cloud.
Chapter 2, “Getting to the Cloud” describes the first steps that Adatum took in migrating the aExpense application. Adatum's goal here is simply to get the application working in the cloud, but this includes “big” issues such as security and storage. The chapter shows how Adatum used Azure virtual machines and network services to deploy and communicate with the hosted servers.
Chapter 3, “Moving to Microsoft Azure Cloud Services” describes how Adatum adapted the aExpense application to run as a hosted service in Azure by using the Cloud Services feature. The chapter describes how Adatum modified the solution, converted it to use claims authentication instead of Active Directory, and took advantage of Azure Caching for the session data.
Chapter 4, “Moving to Microsoft Azure SQL Database” describes how Adatum evaluated the use of Azure SQL Database instead of a hosted SQL Server by exploring the limitations this might impose and the cost savings that it might provide. The chapter then goes in to show how Adatum converted the aExpense application to use Azure SQL Database.
Chapter 5, “Executing Background Tasks” describes adding a worker role to the aExpense application to process scanned receipt images as a background task. It also shows how aExpense uses Azure blob storage for storing these images, and shared access signatures to provide secure access to them.
Chapter 6, “Evaluating Cloud Hosting Costs” introduces a basic cost model for the aExpense application running on Azure and shows how Adatum calculated the estimated annual running costs for the application.
Chapter 7, “Moving to Microsoft Azure Table Storage” describes how Adatum switched from using a SQL database to using Azure table storage in the aExpense application. It discusses the differences between the two storage models, and shows how Adatum adapted the data access code to work with Azure table storage. This chapter also discusses how Adatum fine-tuned the application after deployment, and the options it is considering for improving the application in the future.
These are the system requirements for running the examples:
- Microsoft Windows 7 with Service Pack 1, Microsoft Windows 8, Microsoft Windows Server 2008 R2 with Service Pack 1, or Microsoft Windows Server 2012 (32 bit or 64 bit editions).
- Microsoft .NET Framework version 4.0.
- Microsoft Visual Studio 2010 Ultimate, Premium, or Professional edition with Service Pack 1 installed, or Visual Studio 2012 Ultimate, Premium, or Professional edition.
- Azure SDK for .NET (includes the Azure Tools for Visual Studio). See the Release Notes for information on the specific version required.
- Microsoft SQL Server 2012, SQL Server Express 2012, SQL Server 2008, or SQL Server Express 2008 . See the Release Notes for information on specific versions depending on your operating system.
- Windows Identity Foundation. This is required for claims-based authorization.
- WatiN 2.0. Open the Properties dialog and unblock the zip file after you download it and before you extract the contents. Place the contents in the Lib\Watin folder of the examples.
Other components and frameworks required by the examples are installed using NuGet when you run the solutions. See the Release Notes included with the examples for instructions on installing and configuring them.
This guide, like many patterns & practices deliverables, is associated with a community site. On this community site, you can post questions, provide feedback, or connect with other users for sharing ideas. Community members can also help Microsoft plan and test future guides, and download additional content such as extensions and training material.
Feedback and Support
Questions? Comments? Suggestions? To provide feedback about this guide, or to get help with any problems, please visit our Community site at http://wag.codeplex.com. The message board on the community site is the preferred feedback and support channel because it allows you to share your ideas, questions, and solutions with the entire community. This code samples for this guide are designed to be reused, customized, and extended. They are not a Microsoft product. Code-based guidance is shipped "as is" and without warranties. Customers can obtain support through Microsoft Support Services for a fee, but the code is considered user-written by Microsoft support staff.
Authors and Contributors
The guide was produced by the following individuals:
- Program and Product Management: Masashi Narumoto (Microsoft Corporation)
- Advisor: Eugenio Pace (Microsoft Corporation)
- Subject Matter Experts: Dominic Betts (Content Master), Alex Homer (Microsoft Corporation), Trent Swanson (Full Scale 180 Inc.) and Ercenk Keresteci (Full Scale 180 Inc.)
- Development: Alejandro Jezierski (Southworks) and Mauro Krikorian (Southworks)
- Test: Hanz Zhang and Carlos Farre (Microsoft Corporation) and Rathi Velusamy (Infosys Ltd.)
- Documentation: Dominic Betts (Content Master), RoAnn Corbisier and Alex Homer (Microsoft Corporation)
- Design and illustrations: Roberta Leibovitz and Colin Campbell (Modeled Computation LLC), Eugenio Pace (Microsoft Corporation), Ellen Forney, and Chris Burns (Linda Werner & Associates)
- Release Management: Nelly Delgado (Microsoft Corporation)
We want to thank the customers, partners, and community members who have patiently reviewed our early content and drafts. Among those, we want to highlight the exceptional contributions of Jorge Rowies (Southworks), Marcos Castany (Southworks), Federico Boerr, Corey Sanders (Microsoft Corporation), Nir Mashkowski (Microsoft Corporation), Ganesh Srinivasan (Microsoft Corporation), Jane Sinyagina (Microsoft Corporation), Rick Byham (Microsoft Corporation), Boris Scholl (Microsoft Corporation), and Paul Yuknewicz (Microsoft Corporation).
- Developing Multi-tenant Applications for the Cloud on Microsoft Azure
- Building Hybrid Applications in the Cloud on Microsoft Azure
- A Guide to Claims-based Identity and Access Control
- Developing an Advanced Windows Phone 7.5 App that Connects to the Cloud
- Enterprise Library 5.0 Integration Pack for Microsoft Azure