Rackspace
Cloud - What lies beneath?
Nowadays, the term
'Cloud' no more refers to a cloud that brings rain in the season of
monsoon! It also refers to the software
technology that brings a lot of benefits over the traditional and conventional
methodologies of hosting your software applications. I consider myself fortunate to grab the
opportunity to work on Cloud technologies and have explored each and every
aspect of the cloud offerings in its entirety.
Generally speaking the most of the Indian software companies work more
on providing consultation and services to their business partners. There are
very less organizations in India that has got the privilege to make decisions for their business
partners (clients). This is fortunate as
well as unfortunate in its own sense.
This can be viewed as fortunate because the organizations can generate
regular income by serving their IT partners. It is unfortunate because these
companies are highly dependent on their client to make decisions. They hardly
get chance to explore any technology to its deepest possible level and come up
with their own proposals. This is because their clients have already done the
background work and give them the checklist which they have to follow. In my view, it restricts the thought
process. Well, it’s a separate topic of
discussion. :)
Like I previously
said that I am fortunate to grab an opportunity to explore cloud technologies
in its entirety is only because it was my personal craving to explore the word
'Cloud'. I was part of the team who were
using Rackspace Cloud for their daily deployments and maintenance. Sometimes I wonder why word 'Cloud'? I thought a lot over it and finally got the
convincing answer from my mind that Cloud is seen from everywhere and from any
part of the world, hence the creators might have used the word 'Cloud'! This is analogous to the way we expect our
Cloud-based applications to perform. The
owner of the application expects that the application should be accessible from
any part of the world and should be up and running most of the times without
putting more efforts in its maintenance.
I am writing this post to enable our community to make most of the cloud
technologies. I will be referring to Rackspace Cloud unless explicitly
mentioned.
For those who do not
have any background about Rackspace Inc., it is the firm that provides cloud
infrastructure for their customers. They
have great features embedded in their control panel application to administer
and monitor the cloud based applications.
Just like any other technology, cloud also follows specific sets of
RFC's. RFC (Request for Comments)
becomes the input for any provider to implement the new technology so that
consistency is maintained between the implementations of different
vendors. The taxonomy and terminologies
may differ a bit in its name but they help us to achieve the same functionality
across different vendors. Some vendors
may like to take a patent or register the name of specific implementation to
uniquely identify their brand name. e.g.: the design and shape of the grills
near the bonnet of the cars are patented by their manufacturers so that anyone
can identify the car manufacturer by looking at the design and shape of the
grills!
The cloud can be
viewed as the large set of Virtual Machines (VMs) that are spread across the
world using millions of GB of space and many processors. It, truly, works on the concept of
virtualization where in the storage is spread across many computers across the
world. The allocation of the CPU is done
on the need basis and so is the hard disk space. Hence the main unit of billing is the usage
of CPU and hard disk space used. These
are virtually known as Computing Cycles (cc) and Storage. We will discuss about
this in more details towards the end of this post.
Let's jump back to
the Rackspace Cloud. I assume the reader
of this post has the basic knowledge about deployment of .NET based application
on local IIS servers. The Rackspace Cloud
provides many features that a deployment engineer can make use of. The main amongst them are Cloud Hosting,
Cloud Files, Cloud Servers, Load balancers.
Let's discuss one by one.
- Cloud Hosting: This feature enables us to create the
instance of our website. When we
want to host our website on cloud we would like to select this option. The selection of this option depends on
the web-server you may like to use. e.g.: for .NET based applications you
may like to use windows or IIS, for PHP/Java you may like to go for
Apache. The deployment engineer
needs to make an appropriate choice as to which platform the application
is targeted. The engineer then creates the instance of the website and
creates the published copy of the website.
The published copy of the website contains binaries (dlls) and the
views (.aspx) pages. The Rackspace
recommends to ftp upload the contents of the published folder into the specific
folder named 'Content'. Once the
content folder is stuffed with the binaries it takes sometime for the
cloud engine to reflect the changes.
Meanwhile, if you are an IIS user then you must restart the
application pool by using 'Rebuild Application' option available in
Rackspace Control Panel Console.
The 'Rebuild Application' option gives user the ability to force
restarting of the application pool so that new binaries can be loaded in
the process and changes gets reflected on the website soon.
- Cloud Files: This feature enables the storage of the
files over cloud. The Rackspace
allows logical grouping of the files which are often known as Containers
(Amazon S3 call it as Buckets). The
containers are the virtualization over the physical hard drives meaning
the single container can spread across multiple hard disk drives. It also serves as the unit of isolation
meaning the contents of one container cannot be overwritten/overridden by
the contents of the other container.
These are independent of one another. The cloud vendors also provides the API
key to programmatically manipulate the files. The developer or a software
writer can upload, download, view, delete the files programmatically using
the API key. The programmatic access follows all the basic rules for cloud
access including the concept of the containers (and buckets in Amazon
S3). The cloud works on the
principle of CDN (Content Distribution Network). This enables the cloud
engine to generate a unique path for all the files that are uploaded to
the cloud. The file can be accessed
from anywhere in the world over the internet using the "cdn"
path.
- Cloud Servers: This feature enables the user to create the instance of the servers in the Cloud. Conventionally, the vendors have servers in their own premises. This setup may need an additional efforts to maintain the server. The organization may need to design or draft the backup plans, in case, the server gets crashed. The Rackspace frees us from all these worries. This facility enables the user to create the instances of the server on the cloud and use them round the clock. The overheads are taken care by Rackspace. Rackspace provides several options to create the instance of the server. It can create the server with any platform (all flavours and versions of Windows and Linux). There are several pre-defined images of the servers available in Control Console that facilitates easy and faster creation of the new instance of the servers
- Cloud Load-balancers: This feature enables the user to create load balancers for their servers. I need to explore this feature in more details and will update the required information in this post once I get enough competency in this section.
The metrics that are
used by Rackspace for the billing is Computing Cycles, Storage, number of
Server Instances. Let's discuss these terminologies in detail. These are the basic metrics used by Rackspace
to generate the invoice for its clients and users.
- Computing Cycles: The cloud works entirely on the concept of Virtual Machines. These VM's uses several CPU (Processors) that can spread across different machines. Hence, there is a need to Virtualize the concept of amount of CPU usage. This is known as Computing Cycles (cc). It is defined as the amount of total CPU cycles used by the user in performing the administrative task from the Control Panel of Cloud. It is the sum of all the CPU cycles from all the available CPUs.
- Storage: The cloud uses the concept of Virtual Storage to identify the amount of storage the specific deployment of the application uses. It also includes the amount of storage used by the Cloud Files.
- Server Instances: The total number of servers created by the user and platform information of each server
The above
information can be accessed by the user at any point of the time and the
invoice is generated based on the usage. There are several plans available with
Rackspace including pay-as-you-go and unlimited usage. The unlimited usage gives 500GB of Storage
and around 19,000 Computing Cycles (cc) per month (These numbers are not
final and are likely to get change as
decided by Rackspace from time to time).
The cloud vendor guarantees 99.99% uptime and zero maintenance overhead
with great disaster recovery mechanism. This is quite true as per my
experiences working with Rackspace.
Cloud - Manage at
one place, access anywhere!
No comments:
Post a Comment