Introduction to Microsoft Azure: Part 1

This article describes cloud computing in the context of the Windows Azure operating system and explains the dissimilar services and types of solutions that this platform makes possible. We've drafted this article especially for those laymen readers not yet familiar with cloud computing and its operating system Windows Azure. This article explores these contents in particular.

Contents to be covered

  • Cloud Computing
  • Cloud Computing Architecture
  • Windows Azure
  • Threats
    • Compute
    • Storage
    • Fabric Controller
    • CDN
    • Connect
  • SQL Azure
    • Database
    • Reporting
    • Synchronization
  • Azure AppFabric
    • Service Bus
    • Access Control
    • Caching
  • Marketplace
    • App Market
    • Data Market
  • Azure Development Life Cycle

Abstract

the software industry is relentlessly moving towards centralized computing. Due to this trend, software and data are being taken away from conventional computers and positioned in public or private clouds instead. The Windows Azure is the Microsoft cloud computing platform where developers leverage its scalable, powerful and fault-tolerant infrastructure to shape successful applications. This article provides an organized walkthrough of the Windows Azure platform and its related technologies. The content discusses released components and theory with simple but effective procedures. You can use this article to jump-start your learning about the Azure platform and as a basis for your own explorations. The sole intention of this article is to shed light on the architecture of cloud computing, especially in the context of Microsoft's Azure platform. In addition to examining how the Windows Azure platform works in the cloud milieu, it explores the hidden benefits of the Azure platform.

Cloud Computing

Accessing remote computer resources via TCP/IP over the public internet is called “cloud computing” where resources are provided “as a service” over the network to users. Cloud computing is a prolific and emerging technology in which the data services and architecture are located somewhere in a “cloud” and the user doesn't care about whether he has a computer, laptop, tablet, or mobile phone to access specific services. In fact, in simple terms, a common browser is sufficient to enter into the cloud world. Moreover, cloud services can interoperate with other programming platforms such as Java. The cloud services can be deployed by electing a predefined model that allows a service provider to leverage a common shared infrastructure across a number of enterprises. The cloud deployment models that are typically organized as a Public Cloud, Private Cloud, Hybrid Cloud and Community Cloud. The following section briefly examines the advantages of cloud computing.

  • Cloud applications can quickly provision to scale in or out as the need arises because every resource, storage and networking components are pooled over the cloud internet.
  • Cloud computing assists in an increase of the presence of your applications with a global scale around the world.
  • Cloud-based applications can be faster to deploy over production environment rather than a typical enterprise environment, where developers test their applications in a partially simulated environment before final deployment.
  • By provisioning storage resources from a cloud hosting provider instead, enterprises can significantly reduce their storage acquisition and maintenance costs.
  • Finally, any kind of resource stored in a cloud can be accessed from a simple device anytime, even a portable that has an internet connection and a browser.

Cloud Computing Architecture

Cloud computing is a natural evolution of the widespread adoption of service-oriented architecture, virtualization and utility computing. There are three pillars of cloud computing on which its architecture is described. The Cloud computing service models can be further divided into the categories Software as a Service (SaaS), Infrastructure as a Service (IaaS) and Platform as a Service (PaaS).



SaaS

Software as a Service (SaaS) vendors assist in making custom applications that are hosted in the cloud and can be consumed by the end users. In other words, we can lease a service offered by the vendor and then configure the service using the interface provided by the vendor, without having to know what infrastructure the vendor uses to provide that service. SaaS vendors include Microsoft Dynamics CRM Online, Salesforce.com and Exchange Server.

IaaS

Infrastructure as a Service (IaaS) vendors provide virtualized computing and storage resources in the cloud as a service. In this approach, we lease the hardware such as servers, firewall, balancers and cables. Henceforth, configure these devices remotely and install your solutions on them. Here, we can scale up or down at any time by reconfiguring the infrastructure that we rented from the provider. IaaS vendor category includes Amazon, VMware and Citrix.

PaaS

Platform as a Service (PaaS) vendors offer an end-to-end cloud computing platform for application design, development, testing, deployment and hosting. In this approach, we lease a platform on which we deploy our software without configuring the infrastructure and without the limitations of the SaaS approach. PaaS vendor's category includes Windows Azure, Google.



Although cloud computing is composed of certain other components applicable in specific conditions, in fact, these are the sub-parts of proceeding to defined components as indicated in the previous figure. However, a cloud architecture usually comprises three distinct elements.

FaaS

File as a Service (FaaS), often referred to as Daas (Data storage as a service) allows a user to store their data over the cloud and retreive them over the internet as various MIME types. The FaaS category includes Drop-box, Google drive, Microsoft live SkyDrive and so on.

CaaS

Communication as a Service (CaaS) is a part of IaaS, performs entire essential communication related activities for example, data communication encryption, network monitoring, guarantee message delivery, path reliability and configuration.

MaaS

Monitoring as a Service (MaaS) contains certain network auditing capabilities to accurately monitor the traffic activity. It notifies the user of a cloud about slowdowns and glitches in the network.

Windows Azure

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 and a set of services. Microsoft designed Azure to enable .NET professionals to empower their capability to develop ASP.NET websites, XML and WCF web services.

Windows Azure offers a distributed operating system where we can build, test and deploy 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. Moreover, you are neither concerned about the choice of hardware, disk server, location of disk space rental, nor the computer names. With PaaS, you can forget about storage area, disks and load balancer configurations while storing data in the cloud. The standard protocols such as REST and HTTP are associated with the interactions with this kind of storage. The so-called operating system “Azure” endorses web standards and protocols including HTTP, SOAP and XML. Windows Azure is rapidly expanding the collection of data centers, in fact competes directly with the Google apps engine and Amazon Web Services and offers several benefits such as:

  • Azure platform offers a reducion of the cost of IT management, efforts and risk of building on-premises resources.
  • User can develop, alter, test and deploy applications over the web with a minimum of available resources.
  • As well as, a user can create, debug, test and distribute web services swiftly.
  • Azure carrys out expensive services off-premises including large data processing, high volume computation and batch processing.
  • In Azure, there is no need to purchase or configure a security solution and is redundant to install and configure a database cluster.


Note: The Windows Azure platform best fits the PaaS vendor category, because it doesn't stipulate access to the operating system or underlying virtualization environment specifications.

Windows Azure Platform

The Windows Azure Platform lays the foundation for running applications and keeping data on the cloud. It contains computer services, storage services and the fabric. 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. This platform readily stipulates an internet infrastructure for deploying distributed applications and services since we can develop a cloud service in Visual Studio .NET and deploy it into the Azure cloud right from on-premise tools. The Azure platform is a group of three cloud technologies as in the following:


Windows Azure

Windows Azure provides a kind virtual Windows runtime for executing applications and storing data on computers in Microsoft data centers that include computational services, basic storage, queues, web servers, management services and load-balancers. Moreover, it also offers a local development fabric for building and testing services before they are deployed to Windows Azure in the cloud. Applications written for Windows Azure can scale better, be more reliable and require less administration than those written using the traditional Windows programming model. In fact, running applications and storing data in the cloud can have distinct benefits. Developers can free him from the hassle of purchasing, installing, configurnig and operating its own systems. Moreover, users just pay for the computing and storage they are consuming, instead of maintaining an enormous set of servers.



AppFabric (.NET Services)


AppFabric is the backbone of the Windows Azure platform, it is Cloud-based infrastructure services for applications running in the cloud, allows the creation of combined access control and distributed messaging across clouds and enterprises. The goal of the Fabric is to put together the massive distributed processing power in a unified manner. Developers can build WCF-like services in Visual Studio .NET and publish endpoints to the cloud from within the Visual Studio .NET design environment. AppFabric is the middleware component that consists of services like Access Control, workflow service and Service-Bus. The following figure illustrates the two core services of AppFabric.



SQL Azure


SQL Azure offers the core RDBMS competencies as a service in the cloud environment. Developers can access SQL Azure using a tabular data stream that is the typical way to access on-premise SQL Server instances using SQL clients like ADO.NET, ADO.NET Entity Framework, LINQ, ODBC, or JDBC. Developers can create tables, indexes and views, use Stored Procedures and define triggers alike with SQL Server. Application software can access SQL Azure data using Entity Framework, ADO.NET and other Windows data access interfaces. 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. Now, a SQL Azure customer can focus on their data instead of redundant administrative mechanics.



Cloud computing threats


Windows Azure offers developers with on-demand computing and storage to the host, scales and manages 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 non-negotiable 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 then any cloud platform could be compromised. However, IT architects are repeatedly concerned about the risks of cloud computing.

Threats

Microsoft has been entered into virtual cloud ambience since 2008 by introducing its consumer cloud services like Hotmail, MSN and Xbox Live. Further, Microsoft has also announced a suite of cloud-based business productivity and collaboration applications called Microsoft Online services that include applications like SharePoint Online, Exchange Hosted Services, CRM and Conferencing Services.

Windows Azure is the operating system in the cloud, forms the core platform for all the other Azure Services. In simple terms, it is a compendium of building blocks for cloud services, consists of several geographically detached data centers for delivering geo-located services and is recommended in the platform enterprise services, middleware and consumer services groups to create an end-to-end cloud service.



Windows Azure System Components


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. 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 that have the capability to run in the cloud.



Azure Compute

The Azure Compute segment is a Virtual Machine instance created by the platform that offers a runtime execution environment for managed code (.NET compiled) to host and run scalable solutions in the cloud. The virtual machine instance runs an Azure agent to connect and interact with the Windows Azure fabric. Every virtual machine has a local file system that can be utilized by the web/worker role instance during the entire process. Further, Windows Azure will also enable support of multiple languages and frameworks, such as, Ruby on Rails, Python and provisions to other applications running on the .NET framework, PHP, Java, Apache Tomcat and MySQL with native code execution. Windows Azure typically endorses the following three kinds of virtual machine roles:

  • Web Role: It enables the functionality of constructing an ASP.NET web application including MVC with Internet Information Server (IIS).
  • Worker Role: It performs 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 models, Web Sites, Virtual Machines, Cloud Services and Mobile Services that comprise the computing services portion of the Windows Azure platform that are used either separately or in combination to build more complex solutions to meet specific business requirements.

Azure Storage

Windows Azure data storage enables 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 to 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 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, or 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 location across machines for data that exist 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: A queue's sole objective is to enable communication between Web and Worker Role instances and aids in the storing of messages to 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 monitors the queue to process the request and responds back via a queue to the Web Role instance.

Fabric Controller

The fabric controller manages and controls the Windows Azure Fabric and is responsible for automating the load balancing to ensure the required scalability is achieved. The cloud architectures are profoundly centered on formation of large data centers with a management fabric. In simple terms it consists of a bank of server hardware and massive storage for storing fully functional operating system images. It also consists of some fixed hardware assets, including switches, routers, load balancers and DNS servers that manage the work load distribution across multiple service instances.



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 an operating system image on those servers and deploys your service to those servers when service deployment to the cloud that are consumed later once deployed on the servers.



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 that is closer to the clients that use it. BLOBs typically store information such as video that will be accessed from many locations. Hence, this mechanism speeds up the delivery of repeatitively accessed content and improves performance.

SQL Azure

Data is the significant attributes of any application within the enterprise. SQL Azure is the technology solution employed in 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, moreover handles other subtle areas of concern in terms of database administration functions including, disaster recovery, replication and backup.

SQL Azure is the cloud-based technology solution to deal with relational and other types of data as part of the Windows Azure platform. It contains the three primary segments Azure Database, Reporting and Azure Data Sync services. 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 cloud.
  • SQL Azure provides 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 creating 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 logging and monitoring: Administration capabilities to monitor and track the potential issues associated with the data.
  • SQL Azure has programming capability using the WCF Data services, ODBC and PHP data connectivity channels.

Database

As the name implies, a SQL Azure Database provides the core database functions of SQL Server as a cloud service. An application using a SQL Azure Database typically accesses data via a protocol called 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.



Reporting

SQL Azure Reporting is based on SQL Server Reporting Services used to meet the demands of 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 a URL. Reports used with SQL Azure Reporting are created on-premises and designed to correlate with data stored in a SQL Azure Database.

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 SQL Azure by creating a storage account in the Windows Azure platform account. Hence, Azure Data Sync enables equilibrium between SQL Azure and an on-premise SQL Server that attempts to provide 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.

Azure AppFabric

Azure AppFabric (PaaS) caters a wide-ranging cloud middleware platform for developing, deploying and managing applications on the Windows Azure Platform. It also enables linking our existing applications to the cloud using secure connectivity across network 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. Finally, it makes development more productive and simplifies management and maintenance of the application since it takes advantage of advances in the underlying hardware and software infrastructure.

Service Bus


Via HTTP and 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 can access it that has an Internet connection. 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 that are transmitted by the service bus contains XML, graphics, binary data, text and streaming data contents, moreover exposes classes to various programming environments using REST and HTTP to interact with the Service Bus nodes.

Access Control

The Access Control mechanism in the cloud is employed to identify and access control to web applications and services resources using REST and the Web Resources Access Protocol (WRAP), when 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, produces the output claims and sends these claims in a secure token that the client application then sends to the remote application.

  

Caching

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



Azure 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. In simple terms, the Azure Marketplace is an online hub for searching, purchasing and exchanging building block components (such as developer tools, administrative tools, components and plugins and service templates that are incorporated by other developers into their Windows Azure platform applications), training, service templates and applications necessary to craft the Azure platform. The Windows Azure Marketplace further unfolds in the following two categories:

  • App Market: It exposes the created applications or service by developers to potential customers so that they can easily choose them to suit their needs.
  • Data Market: Today, many organizations express their readiness to sell many kinds of data, including demographic information, financial information, legal information and much more. Hence, 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.

A user can enlist or purchase the available data services and application by employing the “Service Explorer” of Windows Azure-based application and later, can access that data using REST services requests. The datasets made available by the Data Market can be stored on the Windows Azure platform itself using Windows Azure Storage or SQL Azure Database.



Azure Development Life Cycle

The initial moment for Azure application development to the cloud is the Windows Azure Development portal (https://manage.windowsazure.com) that require a Windows Live ID to be accessed 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 the Windows Azure Platform.

  1. Create a Windows Azure account and Login using Microsoft Live ID.
  2. Prepare the development fabric to create an application in the local cloud platform.
  3. Test the application in the development fabric.
  4. Package the application for cloud deployment.
  5. Test the application on Windows Azure in the cloud.
  6. Deploy the application in the production farm.



Conclusion


Cloud computing is the next generation emerging technology where everything will be located on the cloud, just a naive device like Tablet PC and mobile phones equipped with an internet connection and a simple browser would be sufficient to get the taste of cloud computing. In fact, redundancy of hardware and software at all. Executing applications in the 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. Fortunately cloud computing makes it possible to spare the hassle of maintaining hardware and purchasing costly software, they can now easily undertake Windows apps development over a cloud by accessing essential software like Visual Studio and SQL Server. Hence, this article provides an introduction to cloud computing, starting with the basic idea and moving on to a brief introduction to Microsoft's cloud strategy as implemented by Azure. Moreover this has explained the various layers of cloud computing such as SaaS, Iaas and PaaS that is the building block cloud architecture. Despite the convenience of accessing resources via the public internet, the security of data over a public cloud would be the main point of concern because leakage of sensitive authentication information such user name or password, could cause huge mayhem.

The objective of this article was to give us a high-level overview of the Windows Azure operating system for developing cloud applications. We learned about the various services, including computing, storage and management in detail, offered by the Windows Azure platform and the capabilities of each service. Moreover, experience the real-time overview of the Windows Azure developer portal for managing Windows Azure, SQL Azure and AppFabric projects. Finally, we acquired an abstraction for developing and deploying a Windows Azure cloud service in this article.

Reference

http://www.microsoft.com/
http://azure.microsoft.com/en-us/

Up Next
    Ebook Download
    View all
    Learn
    View all