Monday, December 25, 2006

VMware - the real rocket scientists

VMware is not just an extremely successful business, but also a great technology company that has solved some of the toughest problems in Systems Engineering. Consider the following -

1. Checkpointing and Restarts - VMware has long had the capacity to take snapshots of a VM, save it and restore from snapshots. The ease with which snapshots can be taken and retrieved makes this operation look extremely simple, but until VMware introduced this elegant feature, "checkpointing and restarting" was considered one of the holy grails of Systems Engineering. Some of the best researchers in Universities and Industry tried to solve this puzzle for the last 20+ years with different levels of success, but never came close to building an easy-to-use and complete solution for a mainstream operating system.

2. VMotion - With the latest versions of their server software, VMs can be moved to a different server on the LAN with sub-second latencies. Migration of snapshots is a considerably tougher problem than just taking snapshots and restarting from them. Of course, VMotion is made possible only because of many advances in technology like high-speed networking and storage, but in supporting this feature, VMware has clearly proven that they have attained THE holy grail.

I remember using VMware in Grad school in 2001 and recall it being a touch immature. However, their products have come a long way since then and are now used for mission-critical applications. Clearly, VMware's great innovation and product development has helped take their product to this level of maturity. And before I forget, let me add that their competitor's products are nowhere near as mature or feature-rich. Great innovation and product development is possible only when you hire smart people. If you thought Google hired smart people, wait until you meet the real rocket scientists who work at VMware!

So, VMware has great technology and great people, but will I buy their stock? Watch this space :)

Saturday, December 23, 2006

VMware - a classic startup story

One of the new-age companies that has really changed the way businesses operate is VMware. Like Google, VMware was started by researchers from Stanford and has been as influential a company as Google, although much less written about or hyped as its illustrious sibling. In this post and the next, I'm going to talk about why VMware is such an important company and why their technology is comparable to rocket science.

VMware - the Business case
The fact that 99 of the Fortune 100 companies are VMware customers says a lot about the value its products offer. By virtualizing servers and provisioning new VMs on demand, businesses are able to more effectively use their resources - both capital and hardware. Interestingly enough, VMs are not a new concept and have been supported in some form or the other in high-end servers for at least a couple of decades. By recognizing that VMs could offer significant advantages on lower-end systems and bringing the technology to OSes like Windows and Linux, VMware has built a very solid business.

How does server virtualization and on-demand provisioning help improve resource utilization? If you were a large company (5,000+ employees) and wanted to setup a new exchange server that could be used for the next 3 years, you've two choices -
  1. Choice 1 - Buy yourself hardware that can handle the peak load you expect to handle 3 years from now. The math gets tricky because peak load has to factor in the growth of the company in these 3 years. Underestimate the growth and you'll have to buy yourself more hardware later on. Overestimate the growth and you'll end up buying a very powerful server whose utilization is low.
  2. Choice 2 - Overestimate the growth and buy yourself the fanciest hardware you can afford, but use VMware to run multiple VMs on it. Use one VM to handle your current exchange load and the other VMs to run other applications. As your company grows, you can either increase the resources allocated to the Exchange VM to handle the extra load or provision new VMs to handle the newer users. This approach maximizes the utilization of your hardware and capital. You also have the added advantage of reverting to a "Gold image" of the server, should one get infected or hijacked by malicious viruses or hackers.
Another great use of VMs is for testing applications. It is a given that all the Fortune 100 companies have large IT organizations that develop and/or deploy many applications. Before VMware, application testing often required dedicated test servers that had similar hardware specs as the one on which it would be ultimately deployed. Buying multiple test servers and imaging them with the correct OS and configuration was a time consuming operation. With VMware, the preferred approach is to buy a big "monster" hardware which can be virtualized into multiple test servers. Though hardware cost savings are only minor, the speed at which new VMs can be provisioned and torn-down has greatly streamlined many a software QA operation. With this approach, you can have a smaller IT workforce as supporting VMs is easier than supporting real hardware.

Many Enterprise software products require considerable resources and expertise to install and configure. Due to this reason, it becomes difficult to ship an evaluation copy of the software that potential customers can use for pilots. VMware helps companies circumvent this problem by allowing them to quickly provision new VMs that are pre-configured with the software. We use such an approach for Solidcore's S3 Control product. You'll have to request us for a login - http://solidcore.com/learn/request_demo.html. Once you login into our Demo center, our infrastructure starts a pre-configured VM that you can use to evaluate our software.

The above examples are representative of how VMs help companies streamline their operations. Finding ways to improve productivity has been the cornerstone of free-market economies and VMware has found a very unique way of doing this and have executed their idea to perfection. The only slightly disappointing fact is that VMware let themselves be acquired by EMC for what now seems to be paltry $635 million. However, getting such a high valuation in a short 5 years makes VMware a classic startup story - making an exsiting idea (of VMs) cheaper, faster and more easily accessible.

Thursday, December 21, 2006

Continuous Integration Builds

It may surprise you to find my first post with such an esoteric title. I'm going to talk a lot about my experiences with various technologies and products in my blog with a hope that it will help others learn from my experience.

"Continuous Integration Builds (CIB)" refers to the process of building the source in your repository as often as possible to catch build errors introduced by new checkins. As a side-effect, the latest build is *always* available. Ensuring that the main development branch can always be built can greatly improve productivity by catching errors early. CIB is of greatest value to organizations with multiple teams (often geographically separated) who work round the clock.

Around a year ago, we decided to build a CIB system for our internal use. As with all research, I used google to locate software that I could use for this purpose. After some searching, we found Luntbuild (http://luntbuild.javaforge.com/), a great solution, which we could setup and configure in a few hours. Luntbuild works very well for some of our projects and is easy to manage. We have it continuously building our main line every hour and also use it for doing our stable and release builds. They've since released two more versions of their product, but we have not been able to schedule a downtime for this because of the mission-critical nature of this system. A great example of how a good piece of software gets entrenched in an organization. If you are evaluating CIB solutions, do look at Luntbuild.