Practicing Microsoft Azure: Part 6 (Cloud Computing)

Before reading this article, I highly recommend reading the following previous parts:

This piece of editorial unleashes the concept of cloud computing in the context of the Windows Azure platform and specifically clarifies the dissimilar services and types of solutions that this platform makes possible. This article is especially designed to recap various Windows Azure technologies and its various components including Compute Services, Data Services, App Services and Network Services.

1. Windows Azure platform
  • Windows Azure

    • Compute
    • Management
    • Storage
    • CDN

  • App Fabric

    • Access Control
    • Caching
    • Service Bus

  • SQL Azure

    • Database
    • Reporting
    • Synchronization

  • Marketplace

    • App Market
    • Data Market

2. Operating in Azure

3. Security Concern

Introduction

Windows Azure is the operating system in the cloud and forms the core platform for all the other Azure Services. In simple terms, it is a compendium of building blocks for cloud services and consists of several geographically detached data centers for delivering geo-located services, recommend in the platform enterprise services, middleware and consumer services groups to create an end-to-end cloud service. This article provides an organized walkthrough of the Windows Azure platform and its related essential technologies that comprise an entirety to make a cloud infrastructure. Hence, the following figure therefore depicts a comprehensive view of collective Windows Azure platform technologies, each of which will be elaborated on further in details, especially in the context of their importance, operating, usage, configuration and much more in forthcoming sections.

Windows Azure platform

1. Windows Azure Platform

Windows Azure is a distributed operating system for building, testing and deploying applications without caring about the classic front-end interface. For Instance, we don't need to rely on the typical IIS console to configure sites, virtual directories or application pools. Microsoft designed Azure to enable .NET professionals to empower their capability to create an ASP.NET website and XML and WCF web services. Windows Azure is a cloud platform or operating system that enables the running of your business applications, services and workloads in the cloud. It has the same function as a traditional operating system on any hardware platform and allows applications to run in a virtual environment by providing them indispensable physical hardware components. Windows Azure affords a wide range of capabilities in the form of computing services to run applications, storage services and creating a framework that supports several applications, as well as host services and manage them centrally. The Azure platform is a group of four cloud technologies as in the following:

Windows Azure platform introduction

1.1 Windows Azure

The Windows Azure operating system offers an identical involvement since it enables developers and users to use prevailing Microsoft technologies such as .NET, SQL Server, WCF and many more to develop applications in the cloud ambiance. Windows Azure provides a kind of virtual Windows runtime for executing applications and storing data on computers in Microsoft data centers that includes computational services, basic storage, queues, web servers, management services and load-balancers. In fact, manufacturing applications using the Windows Azure platform is not very complex since developers can write familiar .NET code using Visual Studio to build applications with the ability to run in the cloud. Moreover, it also offers a local development fabric for building and testing services before they are deployed to Windows Azure in the cloud. The following diagram depicts the diverse components of Windows Azure:

Windows Azure

1.1.1 Compute

Azure Compute services are the core services of the Windows Azure operating system, also referred to as Hosted Services in Windows Azure portal terminology, and offer us an ability to develop and deploy Windows Azure cloud services in the environment that consists of an underlying .NET 4.5 Framework and IIS 7 running on the Windows Server OS. Moreover, we can enable Full Trust in Windows Azure services for developing native applications. The Windows Azure Compute service is based on a role-based design and the current version of Windows Azure endorses the two kinds of roles, Web and Worker Role. Most commonly, the Web role is a typical ASP.NET website with HTTP or HTTPS endpoints or WCF and XML Web Services that can execute via the Internet Information Server in the cloud environment, whereas the Worker role runs as a continuous background process in the cloud and it exposes internal and external endpoints and also calls external interfaces. The Windows Azure typically endorses the following three kinds of virtual machine roles:

  • Web Role: It enables the functionality of constructing ASP.NET web application including MVC with Internet information server (IIS).

  • Worker Role: It does the background process for the web role.

  • VM Role: It runs an image of a Windows Server OS in the virtual machine. Users can therefore set up, configure and maintain the OS and use corresponding Windows Services and scheduled tasks in the VM role.

There are the four different models Web Sites, Virtual Machines, Cloud Services and Mobile Services comprising the Compute Services portion of the Windows Azure platform that can be used either separately or combined together to build more complex solutions to meet specific business requirements.

Compute

1.1.2 Management

The management fabric automates the deployment of virtualized operating system images on server hardware and regulates the life cycle of the deployment by allocating and withdrawing hardware and operating system image resources as necessary. Besides, the management fabric provisions the hardware servers, deploys operating system images on those servers and deploys your service to those servers when service deployment to the cloud that are consumed later once deployed onto the servers.

Management

1.1.3 Storage

Windows Azure data storage enable users to store, access, analyze and protect their data while making it available from anywhere and at any time. Windows Azure provides various services from storing data in SQL databases in the cloud for analysis and reporting to meet the needs of your business. Windows Azure ensures data security with high throughput of application data in the cloud. Windows Azure typically offers the following three types of storage in the cloud atmosphere.

  • BLOB: BLOBs offer a mechanism for storing large amounts of text or binary data, such as images, audio and visual files. It can scale up to 200 terabytes and can be accessed using REST APIs. We can move BLOB data as a single volume between private and public clouds using Windows Azure Drive.

  • Table: Tables represent storage locations across machines for data that reside in the form of entities and properties on the cloud. Tables store large amounts of unstructured data that can be accessed either using REST APIs from within a service running in Windows Azure or directly over the Internet using HTTP/HTTPS.

  • Queue: The sole objective of a Queue is to enable communication between Web and Worker Role instances. They aid in storing messages that may be accessed by a client. Web Role instances can initiate user requests that need to be processed in the background. On the other side a Worker Role observers the queue to process the request and respond back via queue to the Web Role instance.

1.1.4 CDN

A Content Delivery Network (CDN) avoids user latency problems by reducing the number of hops the request must make. This service provides a convenient way to minimize latency, because it caches data in various geographic locations across the globe. At a site, the Content Delivery Network (CDN) stores replicas of a BLOB closer to the clients that use it. Blobs typically store information such as videos that will be accessed from many locations. Hence, this mechanism speeds up the delivery of reputedly accessed content and improves performance.

1.2 AppFabric

Azure AppFabric provides a wide-ranging cloud middleware platform for developing, deploying and managing applications on the Windows Azure Platform. It allows the creation of combined access control and distributed messaging across clouds and enterprises and enables the linking of our existing applications to the cloud using secure connectivity across networks and geographic boundaries. Developers practice Windows Azure AppFabric to connect application pieces together, manage identity and access control, cache remote resources and create composite applications. Developers can build WCF-like services in Visual Studio .NET and publish endpoints to the cloud from within Visual Studio .NET design environment. The following diagram depicting the diverse components of AppFabric as in the following:

AppFabric

1.2.1 Access Control

The Access Control mechanism in the cloud employed to identity and access control to web applications and services resources using REST and the Web Resources Access Protocol (WRAP), while integrating with standards-based identity providers, including enterprise directories such as Active Directory (AD) and other web identities including Windows Live ID and Google. The client sends the request or claims to the public Access Control URL to access a specific remote application resource. Further, the Access Control service checks the input claims against the defined rules and produce the output claims and sends these claims in a secure token that the client application then sends to the remote application.

Access Control

1.2.2 Caching

Caching is the most effective ways to improve performance to frequently accessed data in ASP.NET websites. Some applications repeatedly accesses the same information, caching therefore and making this information more readily accessible can make the application faster. In final words, the caching provisions in-memory, distributed and highly available application cache services for Windows Azure applications.

Caching

1.2.3 Service Bus

Via HTTP and the REST protocol, the Service Bus service allows secure connectivity and messaging experiences through which distributed applications can talk together. The Service Bus is of course, hosted in the cloud atmosphere, so any application with an internet connection can access it. You create a new service namespace using the portal itself to start exchanging messages via the Service Bus from any application and platform. The messages transmitted by service bus contains XML, graphics, binary data, text and streaming data content and moreover exposes classes to various programming environments using REST and HTTP to interact with the Service Bus nodes.

1.3 SQL Azure

The SQL Azure technology is employed into the cloud atmosphere to address the growing size and scale of the data that can address the primary data challenges associated with scalability, availability, security and manageability. Developers can access SQL Azure using a tabular data stream typical accessing on-premise SQL Server instances using SQL clients like ADO.NET, ADO.NET Entity Framework, LINQ and ODBC. Developers can create tables, indexes and views, use Stored Procedures and define triggers alike with SQL Server. Moreover, the significant benefits for SQL Azure is that the management requirements are significantly reduced because they need not worry about other operations, such as monitoring disk usage and servicing log files. The following figure depicts the various components of SQL Azure as in the following:

SQL Azure

SQL Azure is the cloud-based technology solution to deal with relational and other types of data as part of the Windows Azure platform. Broadly, SQL Azure provides the following activities and key benefits:

  • SQL Azure offers “Server Management Studio” that is an integrated environment to configure and access the databases on the cloud.

  • SQL Azure provides a similar authentication and authorization framework as that of SQL Server databases in on-premise systems and using firewall security that can be configured using Azure Management Portal.

  • SQL Azure supports overall development, deployment and provisioning of databases on the cloud.

  • SQL Azure performs basic operations, including Create, tables, indexes, views, roles, Stored Procedures, triggers and functions, Constraints and Temp tables.

  • SQL Azure executes complex queries and joins across multiple tables, as well as performs transactions with basic aggregation functions.

  • SQL Azure performs the logging and monitoring of administration capabilities to monitor and track the potential issues associated with the data.

1.3.1 Database

A SQL Azure Database provides the core database functions of SQL Server as a cloud service. An application using SQL Azure Database typically accesses data via a protocol called a Tabular Data Stream (TDS) that is also used to access a local SQL Server database. So, a SQL Azure Database application can use any existing SQL Server client including ADO.NET, ODBC, Entity Framework, PHP and others.

Database

1.3.2 Reporting

The SQL Azure Reporting is based on SQL Server Reporting Services used to meet the demand for reporting of stored data in a SQL Azure Database. Such created reports can be published to a SQL Azure Reporting portal and accessible to a user via an URL. Reports used with SQL Azure Reporting are created on-premises and designed to correlate with data stored in a SQL Azure Database.

1.3.3 Synchronization

The key feature SQL Azure is to offer anytime and anywhere access of data by means of SOAP and REST interfaces. Further, you can use the SQL Azure by creating a storage account in the Windows Azure platform account. Hence, Azure Data Sync enables an equilibrium between SQL Azure and on-premise SQL Server for the purose of providing bidirectional data synchronization functionality based on the Microsoft Sync Framework and allows linking an on-premise database to a SQL Azure Database. Each Windows Azure platform account can host several SQL Azure storage servers that can include multiple databases that use the Master database by default.

1.4 Marketplace

The Windows Azure marketplace contains data and various other application market segments including data and web services from leading commercial data providers and authoritative public data sources. Customers will have access to datasets such as demographic, environmental, financial, retail, weather and sports. The following figure depicts the various components of the Azure marketplace.

1.4.1 App Market

The App Market exposes the applications or services created by developers for potential customers so that they can easily use them to suit their needs.

App Market

1.4.2 Data Market

Data Market offers a chance to expose their offerings to more customers using Microsoft's cloud platform. In simple words, Data Market provides a single place to find, buy and access a variety of commercial datasets.

Operating in Azure

The initial moment for Azure application development to the cloud is the Windows Azure Development portal that required a Windows Live ID to be access using a remote login utility such as Putty or RDP (mstsc.exe). The typical developer workflow involves the following procedure for creating or deploying an application in Windows Azure Platform.

Step 1: Create a Windows Azure account and login using Microsoft Live ID.

Step 2: Prepare the development fabric to create an application in the local cloud platform.

Step 3: Test the application in the development fabric.

Step 4: Package the application for cloud deployment.

Step 5: Test the application on Windows Azure in the cloud.

Step 6: Deploy the application in the production farm.

workflow

Microsoft is currently offering a free one month trial experience of Azure services. However, Microsoft doesn't offer free use of Azure services so far. Even as you create an account after buying the necessary Azure cloud services subscription and finally login into your Azure portal (manage.microsoftazure.com), you will be able to utilize the entire services including, Compute, Websites, Mobile and Data services, offered by Azure virtual operating system.

Azure virtual operating system

3. Security Concerns

The Windows Azure platform offers developers with on-demand compute and storage to host, scale and manage web applications on the cloud using Microsoft datacenters. Everything is managed so easily in the cloud; we don't need any hardware, software and configuration at all. But, the sole concern is data or resource security that is a nonnegotiable obligation for a cloud service. Business or sensitive data stored in the cloud needs to be encrypted not only during storage but also transport. Hence, it is mandatory to implement proper access control mechanisms to prohibit unauthorized access to the data and applications because critical data is one step away from getting in malicious hands. Secure channels across application domains in the cloud should be constructed into the cloud service infrastructure. If the environment and applications are not properly secured, any cloud platform could be compromised. However, IT architects are repeatedly concerned about the risks of cloud computing.

Conclusions

Cloud computing is the next generation of emerging technology where everything will be located in the cloud, just a naive device like tablet PC and mobile phone is equipped with an internet connection and a simple browser would be sufficient to get the taste of cloud computing. Executing applications in Azure clouds offer many advantages over the traditional way of running programs, like faster service deployment and massive savings upfront and easily manage business growth by scaling up or down the computing power and storage. Hence, this article provides a comprehensive tour of Windows Azure cloud computing. Moreover it has explained the various layers of the Windows Azure platform, including Windows Azure, data services, AppFabric and the marketplace. Finally, it discusses the life cycle of application development with real experiences of the Azure portal and examines various potential threats when operating in an Azure cloud environment in terms of sensitive data protection and authentication.

References