Sep 30 2009 07:00:00 AM Posted By : Krishnan Subramanian
Comments (1)

Photo Credit: WikimediaDuring the past few days, the clouderati were busy discussing whether virtualization is a solution or part of the problem when applied to enterprise cloud computing. Christofer Hoff started off the discussion by throwing his thoughts out in the public. A lively good discussion ensued on his post and Surendra Reddy, from Yahoo, added his take on the topic. Even though I follow the enterprise space closely, I am not a hardcore infrastructure guy like the others. My experience is more on the startups and SMB side. With my perspective, I am going to pick one aspect of their discussions and try to talk about the open source opportunity. If you are an enterprise infrastructure person, I strongly urge you to check out Christofer's post and the discussion that follows.

In his post, while discussing about the problems that arise when applications are packaged in virtualized containers, Christofer asks


 For example, most of the pre-packaged AMIs found on AWS are bloated general purpose operating systems with some hardening applied (if at all) but there’s just all that code… sitting there…doing nothing except taking up storage, memory and compute resources.

Why do we need this?
He follows up this question with a suggestion to overcome this bloatedness.

 Why don’t we at at least see more of a push towards JEOS (Just Enough OS) in the meantime?
As I told previously, I can't comment on why this is happening on the enterprise front and how one can overcome it but I could talk about this from a different angle. There are cases in the startup and SMB segment where people take advantage of JeOS while running their apps on a cloud provider like Amazon EC2. In fact, some vendors in the Amazon ecosystem offer just that. Jumpbox comes to my mind immediately and they package JeOS and the app to offer a virtual appliance ready to be deployed on the Amazon EC2 cloud. Let us take a Q&A approach from here and see if we can understand the premise of my post.

1) What is the problem with general purpose OS? Why can't we just use it in the cloud?

The OS does two things.

  • Provides a framework for applications to run.
  • Manages and allocates the hardware resources so that applications need not worry about it.
However, with the advent of hardware devices of all kinds and libraries for various kinds of platforms, the general purpose OS has grown into a bloatware. We all know very well how badly Microsoft Windows is bloated. Linux is no different either, even though it is not as bad as Windows OS. The Linux god himself has spoken about the Linux bloat.

The problems with using such bloated general purpose OS are many. But, some of the significant ones are
  • The cloud pricing model is different from the traditional model. Here, we pay based on the resource consumption. If the OS is bloated, we will end up paying more money to store the machine images, we will need more storage space on the running instances, we will need more CPU and RAM for even running these bloated OSes.
  • Having unwanted garbage means we will have to deal with the security of everything that is part of the OS.
  • Patch management could be disastrous. A patch applied to an unused component could bring down the instance(s) and, hence, the entire application or service.
2) What is JeOS and how does it solve the problem?

JeOS, called Just Enough Operating System, is a barebones OS with just enough libraries to run a database or a file server or an app. Well, you can't run it on a desktop (unless it is used for a very specific purpose) but it can be used on the virtual instances running on the cloud with ease.

One of the biggest advantages of the "lean" JeOS is that it consumes very little computing and storage resources and, hence, significant cost savings. Even though it doesn't eliminate security vulnerabilities, we just have to worry about any vulnerabilities that are related to the running of the application. We don't have to worry about the security problems associated with unused components of the OS. A patch applied to JeOS could still bring down the instance or application but it does only when there is an issue with the patch applied on the OS and libraries that are needed to run the application. There is no danger of the entire application going down just because of a patch applied to an obscure component messing up.

3) How do I get started with JeOS?

Well, there are many ways to get started including doing it by hand in the old fashioned manual way. However, there are many vendors in the cloud ecosystem that offers a semi-automated solutions to build JeOS, the application and the associated libraries and then deploy directly on many different cloud providers. Jumpbox, for example, offers ready made virtual application appliances. CohesiveFT 's Elastic Server service allows you to build lean stacks and deploy it on multiple cloud platforms. rPath's rBuilder service allows you to start with any one of the available JeOS builds (CentOS, Ubuntu, rPath's own build, etc.) and add any application and save it as a DVD image or Amazon Machine Image (AMI) or VMware image or Citrix appliance, etc.. There are many other vendors offering similar services and it is also possible to build these virtual images by hand.

4) Well, what is it about open source you are talking here?

I was just highlighting how open source makes it easy to take the JeOS approach to solving the bloat problem. Yes, some versions of Windows OS allows you to stop unwanted services and use it as Windows JeOS. Yes, there are some other proprietary JeOS designed for a specific platform, like Java. However, these proprietary OSes restrict the user from building an optimized JeOS by themselves. They are forced to rely on (and pay) the vendors to achieve this. The proprietary licenses ensures that the users cannot modify it in any way they want. The proprietary licenses will also stop anyone from redistributing the packaged JeOS, thereby, not allowing an ecosystem to develop around the concept.

However, in the case of open source OSes, the user is the king. The user has complete control over how effectively the OS can be trimmed, modified and otherwise optimized to suit the needs of the user. The very fact that the licenses are very permissive ensures that the JeOS can be repackaged or redistributed, leading to an ecosystem of vendors offering different services around the JeOS. The use of open source OSes in building JeOS empowers the users to optimize, secure and save money on the virtual instances they run on the cloud. This also highlights the importance of open source in cloud computing from another perspective.
Comments

Post Comment