Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Microsoft Azure: Enterprise Application Development
Microsoft Azure: Enterprise Application Development

Microsoft Azure: Enterprise Application Development: Straight talking advice on how to design and build enterprise applications for the cloud

$28.99 $19.99
Book Dec 2010 248 pages 1st Edition
eBook
$28.99 $19.99
Print
$48.99
Subscription
$15.99 Monthly
eBook
$28.99 $19.99
Print
$48.99
Subscription
$15.99 Monthly

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Dec 9, 2010
Length 248 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781849680981
Vendor :
Microsoft
Category :
Table of content icon View table of contents Preview book icon Preview Book

Microsoft Azure: Enterprise Application Development

Chapter 1. Introduction to Cloud Computing

Cloud computing is a term that has risen to the top of application development discussions in a very short period of time. Amazon, Google, and Microsoft (among many others), all offer cloud-computing services and are not shy about touting its benefits. If you believe the marketing hype, cloud computing ranks somewhere between revolutionary and the second coming of your favorite prophet. But what exactly is cloud computing, and how does it play into the daily lives of enterprise developers? Let's now try and find some answers.

What is an enterprise application?


Before we hop into the cloud, let's talk about who this book is for. Who are "enterprise developers"? In the United States, over half of the economy is small businesses, usually privately owned, with a couple dozen of employees and revenues up to the millions of dollars. The applications that run these businesses have lower requirements because of smaller data volumes and a low number of application users. A single server may host several applications. Many of the business needs for these companies can be met with off-the-shelf software requiring little to no modification.

The minority of the United States economy is made up of huge publicly owned corporations–think Microsoft, Apple, McDonald's, Coca-Cola, Best Buy, and so on. These companies have thousands of employees and revenues in the billions of dollars. Because these companies are publicly owned, they are subject to tight regulatory scrutiny. The applications utilized by these companies must faithfully keep track of an immense amount of data to be utilized by hundreds or thousands of users, and must comply with all matters of regulations. The infrastructure for a single application may involve dozens of servers. A team of consultants is often retained to install and maintain the critical systems of a business, and there is often an ecosystem of internal applications built around the enterprise systems that are just as critical. These are the applications we consider to be "enterprise applications", and the people who develop and extend them are "enterprise developers". The high availability of cloud platforms makes them attractive for hosting these critical applications, and there are many options available to the enterprise developer. This books focuses on Microsoft's cloud development platform named Azure. Throughout this book, we'll develop a simple example application as an introduction to the different facets of Microsoft's Windows Azure platform, and we'll also discuss concepts useful to the enterprise developer, including security and costs, during the course of our application's development.

What is cloud computing?


At its most basic, cloud computing is moving applications accessible from our internal network onto an internet (cloud)-accessible space. We're essentially renting virtual machines in someone else's data center, with the capabilities for immediate scale-out, failover, and data synchronization. In the past, having an Internet-accessible application meant we were building a website with a hosted database. Cloud computing changes that paradigm–our application could be a website, or it could be a client installed on a local PC accessing a common data store from anywhere in the world. The data store could be internal to our network or itself hosted in the cloud. The following diagram outlines three ways in which cloud computing can be utilized for an application. In option 1, both data and application have been hosted in the cloud, the second option is to host our application in the cloud and our data locally, and the third option is to host our data in the cloud and our application locally.

The expense (or cost) model is also very different. In our local network, we have to buy the hardware and software licenses, install and configure the servers, and finally we have to maintain them. All this counts in addition to building and maintaining the application! In cloud computing, the host usually handles all the installation, configuration, and maintenance of the servers, allowing us to focus mostly on the application. The direct costs of running our application in the cloud are only for each machine-hour of use and storage utilization.

The individual pieces of cloud computing have all been around for some time. Shared mainframes and supercomputers have for a long time billed the end users based on that user's resource consumption. Space for websites can be rented on a monthly basis. Providers offer specialized application hosting and, relatively recently, leased virtual machines have also become available. If there is anything revolutionary about cloud computing, then it is its ability to combine all the best features of these different components into a single affordable service offering.

Some benefits of cloud computing


Cloud computing sounds great so far, right? So, what are some of the tangible benefits of cloud computing? Does cloud computing merit all the attention? Let's have a look at some of the advantages:

  • Low up-front cost:

    At the top of the benefits list is probably the low up-front cost. With cloud computing, someone else is buying and installing the servers, switches, and firewalls, among other things. In addition to the hardware, software licenses and assurance plans are also expensive on the enterprise level, even with a purchasing agreement. In most cloud services, including Microsoft's Azure platform, we do not need to purchase separate licenses for operating systems or databases. In Azure, the costs include licenses for Windows Azure OS and SQL Azure. As a corollary, someone else is responsible for the maintenance and upkeep of the servers – no more tape backups that must be rotated and sent to off-site storage, no extensive strategies and lost weekends bringing servers up to the current release level, and no more counting the minutes until the early morning delivery of a hot swap fan to replace the one that burned out the previous afternoon.

  • Easier disaster recovery and storage management:

    With synchronized storage across multiple data centers, located in different regions in the same country or even in different countries, disaster recovery planning becomes significantly easier.

    If capacity needs to be increased, it can be done quite easily by logging into a control panel and turning on an additional VM. It would be a rare instance indeed when our provider doesn't sell us additional capacity. When the need for capacity passes, we can simply turn off the VMs we no longer need and pay only for the uptime and storage utilization.

  • Simplified migration:

    Migration from a test to a production environment is greatly simplified. In Windows Azure, we can test an updated version of our application in a local sandbox environment. When we're ready to go live, we deploy our application to a staged environment in the cloud and, with a few mouse clicks in the control panel, we turn off the live virtual machine and activate the staging environment as the live machine – we barely miss a beat! The migration can be performed well in advance of the cut-over, so daytime migrations and midnight cut-overs can become routine. Should something go wrong, the environments can be easily reversed and the issues analyzed the following day.

  • Familiar environment:

    Finally, the environment we're working on is very familiar. In Azure's case, the environment can include the capabilities of IIS and .NET (or Java or PHP and Apache), with Windows and SQL Server or MySQL. One of the great features of Windows is that it can be configured in so many ways, and to an extent, Azure can also be configured in many ways, supporting a rich and familiar application environment.

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.

Cloud computing infrastructure


Cloud computing requires more than just a server room, and the different providers employ different technologies. In all cases, cloud computing relies on data centers in multiple geographic locations, with multiple redundancies of everything. It's quite a challenge to locate an area that is geologically stable and relatively free from severe weather events or other natural disasters, making redundancies of locations, in addition to redundancies of utilities, a necessity.

Cloud data centers have moved away from the "racks-in-a-room" or "raised floor" design of traditional data centers. One of the more common designs for cloud data centers is to modify a shipping container to hold racks of servers, and then linking multiple containers together into a large center. The container-based design is used more for stability, space efficiency, and physical isolation of machines. A forty-foot tall rack of servers would be highly unstable and extremely difficult to manage. But a stack of four containers is very stable, and each container is as easy to manage as a small server room. It's also more efficient to cool a number of small rooms as compared to a giant warehouse.

For Azure, Microsoft has taken the container concept a little farther. Microsoft's Azure containers (called Generation 4 Modular Data Centers or G4MDC) are not based on a shipping container, although the end design resembles one. Technically, Microsoft's containers are classified as air handling units and the servers as heaters. Cooling is achieved by pulling outside air through filters, into the container, and around the servers at high velocity. In fact, some of Microsoft's new data centers won't even have roofs! Each G4MDC unit is completely self-contained with airflow regulation, and its own connections for power and bandwidth. Each 40-foot unit can accommodate up to 2,000 servers, and some of Microsoft's facilities will house 400,000 to 500,000 servers.

Cloudy skies ahead


Usually, cloudy skies are a bad thing–many a day at the beach has been ruined by an abundance of clouds. But in the case of cloud computing, the more clouds, the better! The number of providers of cloud computing services is increasing, but for the enterprise developer, the three major options at the time of writing are from Google, Amazon, and Microsoft.

Google's cloud offering is named the Google AppEngine, and currently supports Python and Java languages. Data are stored in the Google AppEngine data store, a proprietary database utilizing Google Query Language (GQL). For the interested developer, Google offers a free plan with multiple applications.

Amazon has several cloud offerings, all under the Amazon Web Services umbrella, including Simple DB, Elastic Compute Cloud (EC2), Simple Storage Service (S3), and Amazon Virtual Private Cloud (VPC). Simple DB and S3 are data-storage options that are used for everything from compressed backup locations to simple content delivery networks. EC2 is a service that allows us to create a virtual machine to our specifications, and upload it to our cloud-hosting account. We are still completely responsible for the care and feeding of our VM, but Amazon provides the hosting infrastructure. The Amazon VPC is our own private IP block carved out of Amazon's Web Services. The Amazon VPC can be made part of our local network by means of VPN from our firewall to our isolated cloud storage, gaining much of the benefits of cloud storage with the convenience of a local network resource.

Last but not least (and the star of this book) is Microsoft's Azure. Azure actually comprises three services, each of which can be used independently or combined into a completely cloud-based application. When most people speak of Azure, they're speaking of Windows Azure, which is the operating system, application hosting as well as simple storage services. The second piece of Azure is one that has generated a great deal of excitement—SQL Azure. SQL Azure is an almost feature complete version of SQL Server 2008. The final piece of the Windows Azure platform is the

AppFabric, which provides connection and authentication services along with the Service Bus–an enterprise service bus implementation capable of bridging two different enterprises.

Is cloud computing "enterprisey" enough?


There have been many products and services making great promises to the enterprise developer, and a lot of the chatter about cloud computing at times makes it seem like this is yet another buzzword that will pass. Looking at the companies that have made the move to the various cloud platforms makes us think otherwise. Even before its official release, companies such as Domino's, Kelly Blue Book, and Coca-Cola Enterprises had already adapted applications for Azure, and many more case studies were posted from PDC 2009. To underscore the flexibility of the Azure platform, Domino's application is written in Java and served by Tomcat.

No cloud computing platform can be all things to all people. Each platform differs in its capabilities and service offerings, and price can be a factor as well. Enterprise applications typically include a database back end, and Google's lack of a relational database and limited language support (Python and some flavors of Java) make it a tough sell for enterprises that require a full database and use .NET technologies. With Amazon's services, we need to build our own virtual machine (or start with a pre-built one), but we are still responsible for licensing costs, removing the price advantage. Microsoft's Azure platform is designed to be a very happy medium–a wide range of languages can be used, there are no licensing costs, and Azure has some advanced features such as Access Control and Service Bus not found in other cloud offerings. One thing is for sure–with three big players in the cloud computing game, the services will become more feature rich, less expensive, and in the end, the consumers will benefit greatly.

The presence of so many large applications in the cloud is not proof positive enough to conclude that cloud computing is the way of the future, but such rapid adoption speaks well of the advantages of cloud-based applications, especially the time to develop them. The promise of cloud computing platforms is that they are stable, scalable, easy to develop, and are cost effective. Time will tell which providers perform the best, but even at this early stage there are plenty of case studies to observe.

Summary


This chapter served as an overview of cloud computing, from a definition to covering a few advantages and disadvantages. We delved a little into the physical infrastructure of a cloud data center and finished up with a brief overview of the three main enterprise providers (Google, Amazon, and Microsoft). The cloud computing offerings have emerged and grown in a very short period of time, sparking not only a great deal of conversation, but also a fair amount of adoption.

Left arrow icon Right arrow icon

Key benefits

  • Build scalable enterprise applications using Microsoft Azure
  • The perfect fast-paced case study for developers and architects wanting to enhance core business processes
  • Packed with examples to illustrate concepts
  • Written in the context of building an online portal for the case-study application

Description

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.

What you will learn

Explore the major features of Azure Examine the differences between Azure development and traditional application development Integrate with an on-premises database using SSIS Utilize blob, table, and queue storage Develop web and worker roles Log application diagnostics and events Create a WCF service in a web role Review considerations for moving an application and data into the cloud Create a Windows Forms application, and integrate it with web services using Visual Studio Monitor your application s performance using Azure Diagnostics

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Dec 9, 2010
Length 248 pages
Edition : 1st Edition
Language : English
ISBN-13 : 9781849680981
Vendor :
Microsoft
Category :

Table of Contents

23 Chapters
Microsoft Azure: Enterprise Application Development Chevron down icon Chevron up icon
Credits Chevron down icon Chevron up icon
About the Authors Chevron down icon Chevron up icon
Acknowledgement Chevron down icon Chevron up icon
Acknowledgement Chevron down icon Chevron up icon
About the Reviewer Chevron down icon Chevron up icon
Preface Chevron down icon Chevron up icon
Introduction to Cloud Computing Chevron down icon Chevron up icon
The Nickel Tour of Azure Chevron down icon Chevron up icon
Setting Up for Development Chevron down icon Chevron up icon
Designing our Sample Application Chevron down icon Chevron up icon
Introduction to SQL Azure Chevron down icon Chevron up icon
Azure Blob Storage Chevron down icon Chevron up icon
Azure Table Storage Chevron down icon Chevron up icon
Queue Storage Chevron down icon Chevron up icon
Web Role Chevron down icon Chevron up icon
Web Services and Azure Chevron down icon Chevron up icon
Worker Roles Chevron down icon Chevron up icon
Local Application for Updates Chevron down icon Chevron up icon
Azure AppFabric Chevron down icon Chevron up icon
Azure Monitoring and Diagnostics Chevron down icon Chevron up icon
Deploying to Windows Azure Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Filter icon Filter
Top Reviews
Rating distribution
Empty star icon Empty star icon Empty star icon Empty star icon Empty star icon 0
(0 Ratings)
5 star 0%
4 star 0%
3 star 0%
2 star 0%
1 star 0%

Filter reviews by


No reviews found
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.