1. DEFINING THE CLOUD
To understand Windows Azure, you must first know a bit about the cloud. Cloud computing
(a broader descriptor for the cloud) is all about leveraging the Web as
a set of resources for the development and deployment of your
solutions. Traditionally, cloud computing has been defined as
categories of services — for
example, Infrastructure as a Service (IAAS), Platform as a Service
(PAAS), and Software as a Service (SAAS). Each one of these categories
is fairly different in the context of development. For instance, you
might think of IAAS as hosted virtual machines (VMs) you manage
remotely; PAAS as where you deploy code, data, binary large objects
(BLOBs), web apps, and other application artifacts to a cloud-based
environment (such as Windows Server 2008 R2 and IIS); and SAAS as
subscription-based services that you can sign up to use (for example,
Office 365).
Although these three categories of services
dominate the way in which the cloud is characterized, the cloud has
four generally accepted pillars:
- Pool resources with other cloud users.
- Manage your own services and apps through the management portal.
- Apps and services can grow and contract with your business needs.
- Pay for only what you use in regards to the cloud.
Figure 1 illustrates these four core pillars of the cloud. You can apply each principle in some way to the categories of services.
Both the categories of services and the core
pillars of cloud computing apply to Windows Azure. For example, you can
create and deploy a set of virtual machines to Windows Azure, build out
a SharePoint farm on those virtual machines, and then manage it
remotely. Within this virtualized farm, you’re potentially pooling
resources; you’re managing the services through your portal or tools;
you can grow or shrink the SharePoint farm (number of servers in the
farm), therefore, it is elastic; and it is usage-based because you’re
only getting billed for what you use.
In addition to understanding the relationship
across the cloud services (IAAS, PAAS, and SAAS) categories and the
pillars that define cloud computing, getting beneath the surface area
of the cloud and digging into Windows Azure is also important. This is
not only because integrating the two technologies provides the
developer with interesting and compelling solution opportunities, but
it’s also because now Windows Azure is a more native part of the
SharePoint 2013 platform. Thus, it’s critical that you understand how
you can use Windows Azure in your SharePoint development.
2. DEFINING WINDOWS AZURE
Windows Azure is a flexible
cloud-computing platform that provides services for virtualizing VMs;
building, deploying, and managing resources, data, and services; and
building cloud-based applications and websites. What all this means is
that you can leverage physical data centers that Microsoft has built
and supports globally (see Figure 2)
and deploy your applications to run in geographically dispersed
locations. Within each of these locations are racks of servers (for
example, Windows Server 2008 R2) that enable you to deploy into these
remote locations. This, in essence, represents the cloud (or at least
Microsoft’s cloud) and the benefits to the cloud: the fact that you
have virtualized environments around the world that you don’t need to
physically manage, and with which you can start up and use in a matter
of minutes.
As Microsoft’s key cloud platform, Windows Azure
enables you to provision and scale resources to the cloud without
having to worry about chasing and managing your on-premise hardware.
When you use Windows Azure you not only get application scale (hardware
needs expanding as your data and application needs grow), but you also
get patching and operating-system management (your cloud-hosted
environment is always up to date), and a 99.9 percent uptime guarantee.
You might think of Windows Azure as consisting of three major pieces:
- A core set of platform services and capabilities:
A variety of core platform services (discussed later in this section)
are available for use. Each of these services has a set of APIs and an
SDK so you can take advantage of them.
- Development and management tools:
You can download the Windows Azure SDK and Visual Studio companion
tools, which make developing and deploying Windows Azure applications
very easy.
- The marketplace: You can build and deploy applications and make them available in the Windows Azure marketplace.
As a developer, you also have a main web portal,
which you use to manage your applications, services, database,
websites, virtual machines, and so on. Additionally, you have a rich,
underlying set of APIs (for example, REST and .NET) that support task
automation (for example, creating a new virtual machine). Figure 3
illustrates what this web portal looks like. Note that clicking each of
the available options on the left side of the portal invokes a view
that displays meta data as well as performance and usage information,
and enables you to configure properties of that service. It also
provides you with the ability to create new service instances (for
example, a website or SQL Database) and configure properties against
those newly created services.