Cloud Basics

for anyone employed in IT industry and still unaware of cloud computing, it is worth spending 5 minutes on this YouTube video by Stephen Fry.

Cloud Computing involves a plethora of technologies ranging from virtualization to application delivery, as well as a whole new set of concepts such as elasticity, multitenancy and metered services to name a few. The National Institute of Standards and Technology (NIST) defined Cloud Computing as

Cloud computing is a model for enabling ubiquitous, convenient,on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

and defined the “Essential Characteristics”, “Service Models” and “Deployment Models” of Cloud Computing. Briefly these are:

Essential Characteristics : Self-Service, Network Access, Resource pooling, Elasticity and Measured Service (utility model)

Service Models : Infrastructure-as-a-Service(IaaS), Platform-as-a-Service(PaaS) and Software-as-a-Service(SaaS)

Deployment Models : Private, Community, Public and Hybrid

The NIST paper can be found here and it is worth a read.

To start getting involved in Cloud computing, mastery (or at least a good understanding) of the following will come handy.

  • Concept of virtualization and knowledge of a hypervisor such as Xen.
  • Networking such as understanding TCP/IP, vLAN and software defined networking.
  • Security to the cloud and in the cloud – i.e. data encryption in transit and at rest, security provided by network and storage layer, and identity and access management in the cloud.
  • Image management – i.e. creating a virtual machine with pre-built O/S and other packages.
  • and Web Services

For anyone who wants to build Cloud at home to learn the building blocks, OpenStack is a brilliant place to start.

OpenStack is an open source cloud computing platform and promises to deliver a Cloud operating system for both public and private deployment. However, it is worth noting that all large public cloud vendors (AWS, Azure, Google, Oracle and IBM SoftLayer) have developed their own proprietary technology for Cloud, and therefore are compatible with OpenStack, but NOT based on OpenStack.

I have installed and played with OpenStack using OpenStack distro for Linux from Oracle. Other Linux vendors such as Ubuntu has a similar (and possibly a more popular) distro. Or get one of the latest release from OpenStack release page, though IMO for beginners installing OpenStack in VM from Oracle or Ubuntu’s release could be lot easier.

Cloud computing is one of the fastest growing area and hence new technologies and tools are being developed at an unprecedented rate. Hoping to write posts at regular interval to share my learnings and stories from the field …