Home                     Services                        About Us                     Contact Us

Monday, April 13, 2009

What's behind the Cloud?

Cloud computing is the choice of Web2.0 and SaaS companies whose user base can grow from 50 to 50000 users overnight. The need of these applications are very dynamic when it comes to computing resources and demands ability to scale the resources up or down based on the need. This has opened gates for Cloud Computing Hosting providers (or more precisely Utility Computing providers) who offer their customers ability to expand or contract their computing resource based on the application need and pay only for the actual usage of computing resources. The underlying technology that makes this possible is Virtualization which gives the ability to make slices of compute power (Virtual Machines) from the common pool of resources at the virtual level.

Virtualization can be achieved using different techniques and this article tries to summarize some of the majorly used techniques by providers of Utility Computing space.

Xen Virtualization

Xen is developed and maintained by the Xen community as free software and licensed under GPL2. Developed in University of Cambridge Computer Laboratory, Xen has come a long way. Currently, with an Advisory Board consisting of software giants like Citrix, IBM, Intel, Hewlett-Packard, Novell, Red Hat, Sun Microsystems and Oracle, inclusion in major OS distributions like RHEL/Fedora, Suse, Sun Solaris, and guest support for almost all major OS's including Windows, Xen has become the choice of many Utility Computing provides for running their Cloud Computing powerhouses.

Xen is run in two ways:

Paravirtualization where host and the VM share a common kernel and the VM has direct access to critical OS and hardware resources like device drivers, IRQ interrupts etc. This significantly improves the responsiveness of VMs limiting the impact from the virtualization layer. On the flip side, Guest OS kernel has to be ported to run in Xen Paravirtualized mode hence preventing certain proprietary OS like Windows to be virtualized using this method.

Companies using Xen Paravirtualization:

  • Amazon for their Elastic Compute Cloud (EC2).
  • Slicehost
  • Network Redux

Hardware Assisted Virtualization which takes advantage of hardware virtualization support from Intel VT and AMD-V processors to enable virtualized guests to run natively on the hardware while still achieving very high performance I/O. This method allows proprietary operating systems (such as Microsoft Windows) to be virtualized since the guest system's kernel does not require modification when the host runs on Intel VT or AMD-V hardware.

Companies using Xen Hardware Assisted Virtualization:

  • Gogrid

Kernel-based Virtual Machine (KVM)


Kernel-based Virtual Machine (KVM) is a Linux kernel virtualization solution. KVM provides support for full virtualization using Intel VT or AMD-V (it also provides limited support for paravirtualization). Being developed as a module of most popular Open Source OS, KVM enjoys a large community following and contribution. KVM allows multiple virtual machines running unmodified Linux or Windows images making it a good choice of Cloud Computing providers.

Companies using KVM

  • Elastic Hosts

VMWare ESX

VMware became the market leader in virtualization space in 1998 when they figured out how to virtualize the x86 platform. The Virtualization technique used was Full Virtualization using binary translation, which they have improved over years. VMware ESX Server was later added into their product suite as an enterprise-level virtualization solution for data centers. With host of features like VMotion, Storage VMotion, DRS (Dynamic Resource Scheduler), and HA, VMware ESX has become a good choice for Web2.0 Enterprises.

Companies using VMware ESX

  • Rackspace (Mozzo)

3Tera Applogic

3Tera brought Grid Computing from limited usage in computational applications at enterprises and scientific labs to web industry through Applogic. AppLogic is the first grid operating system that is designed for web applications and is optimized for transactional and I/O intensive workloads which are key features of majority of Internet Applications. Applogic does not require SAN or other expensive shared storage, is vendor-neutral and completely compatible with existing web applications. Applogic provides a robust Utility Computing model for its Utility Computing division and hosting partners worldwid who use Applogic within their datacenter to provide Virtual Servers and Virtual Private Datacenter (VPDS) solutions to their customers.

Companies using Applogic

  • 3Tera
  • GridLayer
  • 1-800-HOSTING
  • Cleargrid
  • ENKI

OS Level Virtualization

Operating system-level virtualization is a server virtualization method where the kernel of an operating system allows for multiple isolated user-space instances, instead of just one. This is the most basic form of virtualization and usually imposes little or no overhead. However, OS level virtualization is not as flexible as other virtualization approaches since it cannot host a guest operating system different from the host one. Also, OS level virtualization does not provide the level of isolation that other virtualization techniques provide.

Companies using OS Virtualization

  • Vpslink (using Openvz on Linux)
  • Joyant (using Solaris OS Containers)
It is interesting to see how each Virtualization techniques has been applied by different Utility Computing providers to come up with their unique offering. At the conclusion I would like to say that along with other factors, Virtualization technique used by the Cloud Computing provider is one of the criteria that should be considered by companies, while choosing their Cloud Computing hosting platform. For example, a company providing consumer application (like facebook, twitter etc) should look at speed and flexibility of Amazon or Joyant. At the same time an enterprise providing online Business Application will look for more closed Virtual Private Datacenter options best suited with VMware on 3Tera based platform.

Sunday, February 1, 2009

Monitoring and Trending SaaS applications

"Sell a Service, Not a Product" is considered as one of the biggest success mantras for any company that aspires to be a SaaS success. While many factors entail the essence of this statement, the intention of this blog post is to highlight the growing need of Monitoring and Trending in today's SaaS applications and how it can improve both proactive and reactive turnaround time to resolution of application issues.

For SaaS applications, the need of Monitoring and Trending has become more important than their counterpart traditional software applications. This major shift in trend can be attributed to the very features and characteristics SaaS model of software delivery.

Centralization: Centralization comes with a need for more bandwidth and compute resources to serve the centrally implemented SaaS application. One needs resource usage trending capabilities to know how application is performing and make resource based decisions. Centralization also requires SaaS applications to be up and running 24x7 as opposed to their traditional software counterparts - An isolated on-site implementation of product at two customers sites in US and China can afford a downtime during off-business hours as opposed to as SaaS application with customers in US and China.

Single Instance, Multitenant: Heavy usage by one tenant can potentially overload/bring down the application affecting other tenants

Requires faster release cycles: SaaS applications attract more feature requests from user community and has faster release cycles as compared to traditional software. This fast and furious approach to software development and release sometimes run a risk of buggy untested code slipping into production release and causing instability in application till they are recognized and rectified.

Facilitates easy walkout path for customers: SaaS is an attractive option for companies because it reduces up-front investment and overhead of ongoing maintenance. However, it also facilitats easy, low risk walk out path if the customer is not satisfied with service.

It requires robust, feature rich monitoring system to cater the needs to today's SaaS applications. The scope circumference should expand from old school monitoring of basic parameters like RAM, CPU, Disk usage, to include specialized monitoring of application specific resources, components and events. For service providers, a significant effort must be spent with customers to understand their application resource needs, resource consumption trends, performance bottlenecks and crash symptoms to put in place right checks in place for their application.

Monitoring and trending is the need to today which will continue to grow as more and more companies adopt the SaaS path.