Introduction
This article describes cloud
computing in the context of Microsoft Azure and explains its various 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 the following content in particular:
Contents
- Cloud
Computing
- Cloud
Computing Architecture
- Microsoft
Azure
- Threats
- Compute
- Storage
- Fabric
Controller
- CDN
- Connect
- Azure
SQL
- Database
- Reporting
- Synchronization
- Azure
AppFabric
- Service
Bus
- Access
Control
- Caching
- Marketplace
- 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. Azure is a 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 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. Additionally, it examines how the Azure platform works in the cloud milieu and 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 in the presence of your applications on a global scale around the
world.
- Cloud-based applications can be
faster to deploy overproduction 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 assists 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, firewalls, balancers, and cables. Moving forward, 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 offers 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 Microsoft Azure and 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, 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 retrieve them over the internet as various MIME types.
The FaaS category includes Dropbox, Google Drive, Microsoft live SkyDrive, and
so on.
CaaS
Communication as a Service (CaaS) is
a part of IaaS and 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.
Microsoft Azure
Microsoft
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.
Microsoft 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. Microsoft Azure is rapidly expanding the collection of data
centers, and in fact, competes directly with the Google apps engine and Amazon Web
Services and offers several benefits such as:
- The Azure platform offers a
reduction of the cost of IT management, efforts, and risk of building on-premises resources.
- Users can develop, alter, test,
and deploy applications over the web with a minimum of available resources.
- Also, users can create,
debug, test, and distribute web services swiftly.
- Azure carries 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 Microsoft Azure platform best fits the PaaS vendor category, because it
doesn't stipulate access to the operating system or underlying virtualization
environment specifications.
Microsoft
Azure Platform
The Microsoft Azure Platform lays the foundation for running applications and keeping data on the cloud. It contains computer services, storage services, and fabric. Microsoft 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. An Azure platform
is a group of three cloud technologies, as shown in the following:
Microsoft
Azure
Microsoft 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 Microsoft Azure in the cloud. Applications written for Microsoft 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 be freed from the hassle of purchasing,
installing, configuring, and operating their 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 Microsoft
Azure platform, it is Cloud-based infrastructure services for applications running in the cloud, and allows for 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.
Azure
SQL
Azure SQL offers the core RDBMS competencies as a
service in the cloud environment. Developers can access Azure SQL 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 Azure SQL data using Entity Framework, ADO.NET, and other Windows data access interfaces. Moreover, the significant benefits for Azure
SQL 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, an Azure SQL customer can focus on their data instead of redundant administrative mechanics.
Cloud
computing threats
Microsoft Azure offers developers 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. However, 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 in 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 in the virtual
cloud scene 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.
Microsoft Azure is the operating
the 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 and is recommended in the platform
enterprise services, middleware, and consumer services groups to create an
end-to-end cloud service.
Microsoft
Azure System Components
The Microsoft 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 Microsoft 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
the 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 Microsoft 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, Microsoft 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. Microsoft 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 four models, Web
Sites, Virtual Machines, Cloud Services, and Mobile Services that comprise the
computing services portion of the Microsoft Azure platform that is used either
separately or in combination to build more complex solutions to meet specific
business requirements.
Azure Storage
Microsoft Azure data storage enables users to store, access, analyze, and protect their data while making it available from anywhere and at any time. Microsoft Azure provides various services from storing data in SQL databases in the cloud to analysis and reporting, to meet the needs of your business. Microsoft Azure ensures data security with a high throughput of application data in the cloud. Microsoft 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 Microsoft 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 Microsoft 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 Microsoft Azure Fabric and is responsible for automating the load balancing to ensure the required scalability is achieved. The cloud architectures are profoundly centered on the 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 workload 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 deploy an operating system image on
those servers and deploy your service to those servers when service deployment
to the cloud that is 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 videos that will be accessed from many locations. Hence, this mechanism speeds up the delivery of repetitively accessed content and improves performance.
Azure SQL
Data is the significant attributes
of any application within the enterprise. Azure SQL is a 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.
Azure SQL is the cloud-based technology solution to deal
with relational and other types of data as part of the Microsoft Azure
platform. It contains the three primary segments Azure Database, Reporting, and
Azure Data Sync services. Broadly, Azure SQL provides the following activities and key
benefits:
- Azure SQL offers “Server
Management studio” that is an integrated environment to configure and
access the databases on the cloud.
- Azure SQL 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.
- Azure SQL supports overall
development, deployment, and provisioning of databases on the cloud.
- Azure SQL performs basic
operations including creating tables, indexes, views, roles, Stored
Procedures, triggers and functions, Constraints, and Temp tables.
- Azure SQL executes complex queries and joins across multiple tables, as well as performs transactions
with basic aggregation functions.
- Azure SQL performs logging and
monitoring: Administration capabilities to monitor and track the potential
issues associated with the data.
- Azure SQL has programming
capability using the WCF Data Services, ODBC, and PHP data connectivity
channels.
As the name implies, an Azure SQL
Database provides the core database functions of SQL Server as a cloud service.
An application using an Azure SQL Database typically accesses data via a
protocol called Tabular Data Stream (TDS) that is also used to access a local
SQL Server database. So, an Azure SQL Database application can use any existing
SQL Server client including ADO.NET, ODBC, Entity Framework, PHP, and others.
Reporting
Azure SQL Reporting is based on SQL
Server Reporting Services used to meet the demands of reporting stored data in an Azure SQL Database. Such created reports can be published to an Azure SQL
Reporting portal and accessible to a user via a URL. Reports used with Azure
SQL Reporting is created on-premises and designed to correlate with data stored in an Azure SQL Database.
Synchronization
The key feature Azure SQL is to offer anytime and anywhere access to data by means of SOAP and REST interfaces.
Furthermore, you can use Azure SQL by creating a storage account in the Microsoft
Azure platform account. Hence, Azure Data Sync enables equilibrium between Azure
SQL 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 an Azure SQL Database. Each Microsoft Azure platform account can host several Azure SQL storage servers that can include multiple databases that use the Master database by default.
Azure AppFabric
Azure AppFabric (PaaS) caters to a
wide-ranging cloud middleware platform for developing, deploying, and managing applications on the Microsoft Azure Platform. It also enables linking our existing applications to the cloud using secure connectivity across network and geographic boundaries. Developers practice Microsoft 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 the 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 contain XML,
graphics, binary data, text, and streaming data contents, moreover expose 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
service 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 produce the output claims and send 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 Microsoft Azure applications.
Azure
Marketplace
The Microsoft 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 Microsoft Azure platform
applications), training, service templates, and applications necessary to craft
the Azure platform. The Microsoft 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 Microsoft 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 Microsoft Azure platform itself using Microsoft Azure Storage or Azure
SQL Database.
Azure
Development Life Cycle
The initial moment
for Azure application development to the cloud is the Microsoft Azure
Development portal (
https://manage.windowsazure.com) which requires 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 Microsoft Azure Platform.
- Create a Microsoft Azure account and Login using
Microsoft Live ID.
- Prepare the development fabric to create an
application in the local cloud platform.
- Test the application in the development fabric.
- Package the application for cloud deployment.
- Test the application on Microsoft Azure in the
cloud.
- Deploy the application on the production farm.
Conclusion
Cloud
computing is the next generation of emerging technology, where everything will be located on the cloud. Simply a native device like a Tablet, PC, or mobile phones equipped with an internet connection and a simple browser are sufficient to get a taste of cloud computing. Executing applications in the cloud offers many advantages over the traditional way of running programs, such as 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 eliminate 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 article has explained the various layers of cloud computing such as SaaS,
Iaas and PaaS are the building blocks of cloud architecture. Despite the convenience of accessing resources via the public internet, the security of
data over a public cloud is the main point of concern, since leakage of
sensitive authentication information such as user name or password could cause
mayhem.
The objective of this article was to give us a high-level overview of the Microsoft Azure operating system for developing cloud applications. We learned about the various services, including computing, storage, and management in detail, offered by the Microsoft Azure platform and the capabilities of each service. Moreover, we experienced a
real-time overview of the Microsoft Azure developer portal for managing Microsoft
Azure, Azure SQL, and AppFabric projects
References