Book Image

Microsoft Azure: Enterprise Application Development

Book Image

Microsoft Azure: Enterprise Application Development

Overview of this book

Microsoft's Azure platform has proved itself to be a highly scalable and highly available platform for enterprise applications. Despite a familiar development model, there is a difference between developing for Azure and moving applications and data into the cloud. You need to be aware of how to technically implement large-scale elastic applications. In this book, the authors develop an Azure application and discuss architectural considerations and important decision points for hosting an application on Azure. This book is a fast-paced introduction to all the major features of Azure, with considerations for enterprise developers. It starts with an overview of cloud computing in general, followed by an overview of Microsoft's Azure platform, and covers Windows Azure, SQL Azure, and AppFabric, discussing them with the help of a case-study. The book guides you through setting up the tools needed for Azure development, and outlines the sample application that will be built in the later chapters. Each subsequent chapter focuses on one aspect of the Azure platform—web roles, queue storage, SQL Azure, and so on—discussing the feature in greater detail and then providing a programming example by building parts of the sample application. Important architectural and security considerations are discussed with each Azure feature. The authors cover topics that are important to enterprise development, such as transferring data from an on-premises database to SQL Azure using SSIS, securing an application using AppFabric access control, blob and table storage, and asynchronous messaging using Queue Storage. Readers will learn to leverage the use of queues and worker roles for the separation of responsibilities between web and worker roles, enabling linear scale out of an Azure application through the use of additional instances. A truly "elastic" application is one that can be scaled up or down quickly to match resources to demand as well as control costs; with the practices in this book you will achieve application elasticity.
Table of Contents (23 chapters)
Microsoft Azure: Enterprise Application Development
Credits
About the Authors
Acknowledgement
Acknowledgement
About the Reviewer
Preface
Index

Some downsides of cloud computing


Cloud computing sounds wonderful so far, but nothing is perfect. There are aspects of cloud computing that will involve compromising, and in some cases, may make cloud computing infeasible for a company; let's have a look at a few of those:

  • Less control on application environment:

    One of the biggest concerns is that we are no longer in control of our application environment. Giving up control over the maintenance of the firewalls, servers, and operating system can be troubling, especially for sensitive institutions such as health or banking. We are now storing data and our application in a publicly accessible space. There is the possibility of a data breach through some means other than our application. To address these two concerns, services and plans calling themselves "private clouds" are beginning to enter the marketplace. These private clouds will partition our space in a secure way from prying eyes but still allow us the level of access, uptime, and backup we desire from the cloud.

    With someone else in control of the patch level of the operating system, testing against new updates becomes an ongoing process. None of us have ever had application issues resulting from a security update, right? The good news is, we can have snapshots of production environments, which can be used to test patches. This makes it significantly easier to have a test system that replicates production.

  • Higher costs:

    For many web-based applications, the costs for a cloud application are probably higher than standard shared hosting. Based on the pricing announced at PDC 2009, a simple website application with a single instance would cost around $100/month to host, compared to around $5-$20/month for standard shared hosting.

  • Difficulty with hosting:

    Finally, in most cases, hosting an application in the cloud is not as simple as just deploying to a remote server. For existing applications, there may be some significant changes, such as replacing local connection strings with a service-oriented architecture, or utilizing high-performance storage such as tables and blobs rather than file system storage. Hopefully, the rest of this book will help diminish any differences between a local and a cloud application.