Parallel

Demystifying JeOS

Virtualization and cloud computing are forcing an evolution in the general-purpose operating system from a one-size-fits-all approach optimized for the server distribution channel to a streamlined approach optimized for distribution with the application inside a virtual machine. In virtualized computing environments, the OS has split, forming two discrete systems -- a hypervisor for managing the physical infrastructure and an application delivery system for managing the application within the virtual machines.

The hypervisor provides hardware-based services. The hypervisor is relatively well known because of high-profile hypervisor vendors like Citrix, VMware, and most recently, Microsoft. The hypervisor has enabled organizations to carve up server capacity and realize far better utilization from hardware infrastructure, reducing both capital and operating expenses for the datacenter.

The application delivery system takes responsibility for all of the application-based services. Known commonly as "just enough operating system" (JeOS), this approach is the yin to the hypervisor's yang -- and it's a fundamental enabler of application virtualization.

JeOS (pronounced "juice") plays a pivotal role in maximizing the portability, cost control, security and manageability of applications in virtualized and cloud-based environments. At its most basic level, JeOS is an operating system streamlined to meet the precise needs of a specific application. That means JeOS contains only the pieces of the operating system and related system software that a specific application needs to run. In broad terms, this approach involves five steps:

Decompose the general-purpose OS, storing the individual components in a repository.

Inspect the application and specify the requirements and policies for its run time and management dependencies.

Assemble the system software from the OS repositories around the application based upon the requirements and policies determined in the previous step. This creates the universal manifest for the maintenance and management of the application.

Write the software manifest determined in the previous step into the Virtual Machine format required by your preferred hypervisor environment. Ideally, this step is automated with each VM format defined as a target within your release management system.

Easily deploy the application without any of the manual set up, configuration and tuning typically associated with the process of installing applications on a physical server host.

JeOS turns the general-purpose operating system into a buffet of sorts. Take what you need and leave the rest. This approach has several advantages:

Faster time to market. JeOS binds to the application instead of the hardware infrastructure, creating a self-contained image that can run on any virtualized infrastructure with minimal manual setup, tuning, configuration, or certification. JeOS frees applications from the constraints and manual configuration of hardware infrastructure, allowing them to be deployed instantly.

Lower maintenance, better security. JeOS eliminates unnecessary operating system and middleware components, which can reduce the system software footprint by 90 percent or more. Fewer components mean fewer patches and updates, making the lifecycle management and maintenance of deployed applications less complex and expensive. Likewise, operational risks associated with security breaches are reduced.

Extreme portability. When constructed correctly, applications using this method can be deployed on top of any hypervisor or in any cloud environment, making them fundamentally portable. Applications initially deployed on an internal cloud can be immediately redeployed in Amazon's Elastic Compute Cloud (Amazon EC2) or in a cloud provided by RackSpace, Terremark, GoGrid, or another provider. This extreme portability takes business agility to a new level, and it opens the door to the dynamic properties of cloud computing, where application workload can be shifted from cloud to cloud to take advantage of comparative advantages in cost, performance or service availability.

Now, here's the reality check: Packaging and deploying applications in this manner takes the friction out of application deployment, which will undoubtedly lead to explosive growth in the volume of application images that need to be managed and maintained. This means that organizations must be prepared to deal with unforeseen levels of scale and complexity to avoid being overwhelmed by virtual machine sprawl, application quality issues, compounding maintenance costs, rogue applications "leaking" into the cloud, and the risk of getting locked into a single platform or cloud service.

Listen closely to any CIO today, and you'll hear signs of a minor crisis in the making. Currently, an estimated 25 percent of application workload is delivered as virtual machines. As this trend continues in 2009, we're likely to see a VM Tsunami that swamps legacy approaches to application delivery and management. JeOS -- in and of itself -- is not a solution. JeOS is an enabler for a new and better way to deploy applications. But this approach requires a broader lifecycle strategy that allows you to realize all of the cost and agility benefits without being overwhelmed by unintended consequences and unexpected costs. The good news is that these risks can be mitigated through a managed lifecycle approach to enterprise application virtualization, which begins with JeOS and ends with applications that are set free.

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task.
However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Video

This month's Dr. Dobb's Journal

This month,
Dr. Dobb's Journal is devoted to mobile programming. We introduce you to Apple's new Swift programming language, discuss the perils of being the third-most-popular mobile platform, revisit SQLite on Android
, and much more!