1. Cloud Service Models
BuyCarsFromMePlease is a new fictitious startup
company that sells used cars on the Internet. You have been hired by the
founders to manage all things technical. The first tasks are to ensure
that you have a web site up and host a simple catalog of used cars from
the neighborhood dealers and private owners. As a technological guru,
you hired the phone company to provide you the Internet access and
purchased and provisioned the web servers, database servers, and
network. You also configured security and published the online catalog
web application to the web servers. In a nutshell, you have implemented a
complete on-premise solution.
Within a short period of time, the management
team has hired a few contractors to come in and make modifications to
the web application. Since there is no more money to purchase hardware,
you look for alternative ways to provide these contractors with
development and test environments.
Infrastructure as a Service
Some cloud vendors like Amazon.com and RackSpace
offer the ability to host a variety of operating systems for you to use
in their datacenters. The vendor provides you remote access to these
images and then it’s up to you to patch the operating system and install
and maintain your application. In this case, the vendor is providing
the network, physical server, and storage for you, and you worry about
the rest. Under the covers, your operating system is hosted in a virtual
machine environment, which allows easy provisioning and decommissioning
of operating system images. You pay for only what you use.
Infrastructure as a service (IaaS) is one solution that would provide the contractors with a cheap sandbox to play in.
Software as a Service
The management team at BuyCarsFromMePlease has
now asked you to provide e-mail, calendaring, and messaging for all the
employees of the company. Before you go out and purchase an additional
server to host Microsoft Exchange, consider what options are available
in the cloud. With software as a service (SaaS) cloud service model, the
provider not only takes care of the infrastructure, but also manages
the servers, databases, security, and the actual application. You (as
the consumer) use the application. Hotmail and Gmail are good real-world
examples of SaaS implementations today. Microsoft has all of its office
applications bundled up into an offering called Office 365 (http://office365.microsoft.com
).
Office 365 is a subscription-based service that combines Microsoft
Office web applications (i.e., Excel, PowerPoint, Word, and OneNote)
with online tools like SharePoint, Exchange, and Lync to provide you
with a great experience in collaboration and productivity. Office 365 is
a pure SaaS offering. Other than Internet connectivity, there is no
additional infrastructure for you to worry about supporting.
Platform as a Service
Somewhere in the middle of IaaS and SaaS lies a
cloud service offering known as platform as a service (PaaS). To
understand PaaS is to comprehend the core user scenarios PaaS provides a
solution for. Consider the scenario where the management team of
BuyCarsFromMePlease has decided to run a television advertisement during
the Super Bowl. The Super Bowl event in the United States is watched by
tens of millions people worldwide. The management team is expected at
least 1% (about 1 million) of the expected 100 million viewers to visit
the company’s website during the Super Bowl. To handle this workload
on the premises, we would have to purchase additional hardware, rack
the units, ensure adequate power and cooling, set up networks, manage
security, and install operating systems, software patches, and
applications. After the Super Bowl ended and the demand subsided, we
would still have all this excess capacity in our datacenters.
A better solution would be to take our
application, web page files, databases, and support DLLs and publish
them to a server in the cloud. When the application is published, we
would simply tell the host to spin up 200 more instances of the web host
to accommodate the new demand from the Super Bowl ad. When the Super
Bowl ends and the demand returns to normal, you can change the instances
down to just a few. This is elastic computing, and this is the value of
PaaS.
With PaaS, the cloud service vendor manages the
network, storage, and virtualization as with IaaS, but it also manages
the operating systems, patching, database servers, and security. As
consumers of PaaS, we focus on solving our own business problems. In the
case of BuyCarsFromMePlease, we build the web page and deploy it to the
cloud. Microsoft’s PaaS offering is known as Windows Azure.
Figure 1
shows an overview of the three cloud servicing models . Notice how the vendor manages more or less as you move
throughout the service models.
Figure 1. Cloud service models
Windows Azure
Windows Azure is Microsoft’s platform for running applications in the cloud. The Windows Azure platform, shown in Figure 2, consists of five main components: Compute, Storage, Networking, Identity, and Marketplace.
Figure 2. Windows Azure platform
It is important to note that any of the services in Figure 2
can be leveraged independently. For example, if your application just
needs to store a large amount of information, you can just use the blob
store within Windows Azure Storage service.
Roles
The Windows Azure Compute service contains three types of roles:
- A Web role can be thought of as an instance of Windows Server
running Internet Information Server. A deployed web application to this
role can immediately take advantage of the load balancing and
scalability that is inherent in the Windows Azure architecture.
- A Worker role is similar to an instance of Windows Server without
Internet Information Server configured. Leverage this role where you
want to run code just like the code used within a Windows Service.
- The Virtual Machine (VM) role is a recent addition to the Windows
Azure platform. This role allows you to upload your own Windows Server
2008 R2 Standard or Enterprise edition image and have it run inside the
Windows Azure platform.
The VM role sounds a lot like IaaS. However,
it’s not a full IaaS solution. Even though you have full control over
the operating system and can make a remote desktop connection to the
hyper-v image, certain restrictions, such as lack of persisted state,
may make your implementations different than those servers running on
premises.
An overview of the Windows Azure VM role can be found at the following web site: http://msdn.microsoft.com/en-us/library/gg433107.aspx
.
The VM role is not the end answer for a true IaaS offering. Features
within this space are constantly being added, and by the time you read
this, Microsoft may have additional IaaS options for running your
virtual machine in its datacenter.
Storage
Windows Azure Storage provides a storage options
including a message queue, blob storage, and table storage. An in-depth
discussion on data storage options can be found with the TechNet Wiki
article, “Data Storage Offerings on the Windows Azure Platform” located
at the following web site: http://social.technet.microsoft.com/wiki/contents/articles/data-storage-offerings-on-the-windows-azure-platform.aspx
. As a DBA, you may hear about table storage in Azure.
Note Table storage within Windows Azure is not the same as the functionality provided with SQL Azure.
Table storage in Windows Azure is simply a
collection of row-like entities, which can each contain up to 255
properties. With table storage, there is no schema, no way to represent
relationships, no way to perform join operations, no stored procedures,
no triggers, nor any relational database management–type functions.
What Azure Table storage can do is scale, and it
does this extremely well. Unlike SQL Azure, a Windows Azure Table can
be up to 100TB in size. These tables can be propagated via Windows Azure
content delivery network (CDN) halfway around the world, such that your
Asian customers see the same query performance as your European
customers. The CDN also enables developers to deliver high-bandwidth
content including a smooth streaming of media. More information on the
CDN can be found at the following web site: www.microsoft.com/windowsazure/cdn
.
AppFabric
One of the differentiators of Windows Azure as
compared with other PaaS providers is Windows Azure AppFabric
(AppFabric). The AppFabric contains functionality related to networking
and identity management. One component of the AppFabric is the service
bus. This feature enables Azure applications to interact with
applications both on and off premises. It does this without complex
firewall configurations. The service bus can also be used to facilitate
communication between two separate private networks.
The AppFabric Access Control feature provides
identity management and access control to web applications and services.
It integrates with enterprise directories, such as Active Directory,
and web identities, like Windows Live ID, Google, Yahoo!, and Facebook.
Using Access Control the integration is seamless and enables your
applications to exercise complete control over the level of access that
each user or group has defined.