A brief note on Cloud Computing
There is much confusion in the Internet regarding Cloud Computing. Here are my own thoughts.
Cloud Computing
Cloud Computing is a term used to describe a service where Processor, Storage and Networking (bandwidth) resources are available to users over the Internet. The Cloud Compute services are used to run both Server Applications such as Microsoft Exchange, and Client Applications such as Virtual Desktops. There are two types of Cloud Computing being developed today.
- Virtualization based Clouds (for example, Amazon EC2)
- The application software, for example Drupal CMS, runs in its own Virtual Machines. The OS is not shared with any other application in the cloud. Each customer of this type of Cloud Computing can have their own preferred version of the OS and libraries.
- Cloud Service Providers provide efficient and high quality ways to host these Virtual Machines
- Cloud Application Developers develop their server applications in single-tenant mode, i.e. each server application is capable of providing service to one customer company only.
- A Virtual Machine can contain any fully functional server software. In other words, it can contain applications that were not specifically designed for cloud computing. The following are examples of such software
- an Microsoft Exchange VM: Contains Windows Server 2003, Exchange and any other add ons to Exchange.
- a Linux based Drupal Content Management Server: Contains Linux, a web server and application server (e.g. apache, tomcat), an application written in any scripting language such as php, ruby, python etc. and a database (typically MySQL)
- All the required software is installed in this VM, that is, it is fully self-contained. A zip or tar file of such a VM is called a Virtual Appliance
- Applications can be moved from one Cloud to another, maybe from the Cloud back to the Corporate Datacenter, etc.
- Application based Clouds (for example, Google’s App Engine, Salesforce.com’s force.com)
- Applications may share the OS that they are running on with other Applications. This results in various restrictions in terms of what OS and libraries the customer can have access to.
- Applications must be custom developed for the specific cloud.
- Applications must be developed using specific languages that the cloud supports, for example, Google Apps must be developed in python
- An application developed for one cloud cannot be moved to another provider’s cloud. Customers are locked in.
Thinsy develops software for the Virtualization based Cloud Computing market. A typical Virtualization based Cloud has the following three aspects:
- Infrastructure Software and Hardware
- Virtual Appliances (fully self contained zip files that have an OS+Apps)
- Operations manpower to run the Cloud
2.1. Cloud Infrastructure Software and Hardware
- Servers - Standard x86 Servers. e.g. a two Quad Core Processor server with 24GB of memory and 4 or 6 250GB SATA disks
- Networking gear - Gigabit ethernet switches, routers etc. Each server may have 2 gigabit network cards
- Hosting and Bandwidth - Datacenters with enough Internet connectivity where these servers are installed
- Software that runs on these servers - For Virtualization based Cloud Computing, the Infrastructure software is VM Servers and VM Management Servers. Examples of such software are VMware ESX and VMWare Virtual Center or EnSpeed VMM with LiveSync and EnSpeed VM Orchestrator
2.2 Virtual Appliances
A Virtual Appliance is a zip file that contains the files necessary to make a Virtual Machine. The Virtual Appliance zip files is a fully self contained image that contains an OS, an application, maybe a database, and anything else that the application may require.
The process of Virtual Appliance Development may be described using the following steps:
- Create a blank VM on a VM Server by specifying disk and memory (for example, two 8GB virtual disks and 512MB of memory)
- Use an OS ISO image (for example, a CentOS iso) to install the CentOS on the blank VM
- Install mysql database on the Virtual Machine
- Install apache in the VM
- Install php and any other language needed (for example, a JDK for Java development)
- Install the application itself (Drupal, SugarCRM, or Alfresco)
- Customize the application for the specific target market (TimeZone, language, etc.)
- Add any GUI that you need for administering the Virtual Machine. All of our EnSpeed Virtual Appliances have a GUI for configuring the IP address, etc.
- Copyback the VM from the VM Server back to the EnSpeed VM Orchestrator to make a Virtual Appliance
Once the Virtual Appliance has been created, then you can make any number of Virtual Machines using this Virtual Appliance.
The EnSpeed VM Orchestrator provides an intuitive GUI to perform all of the actions described above.
2.3 Operations Manpower to run the Cloud
Once you have Virtual Appliances, you can sell these services to your customers. Every time you get a new customer, you create a new Virtual Machine using the Virtual Appliance of customer’s choice and start up the VM. The Operations team now steps in and runs the VM. The tasks involved typically are:
- Monitor VM servers to ensure that they are running smoothly
- Monitor VMs to ensure that they are providing services
- Take backups of the VMs at regular intervals
About this entry
Title: A brief note on Cloud Computing
- Published:
- 07.10.08
9 Comments
Jump to comment form | comments rss [?] | trackback uri [?]