Thursday, February 25, 2010

Prediction Piece 2010: BYOPC for Today’s Workforce is a Reality

Is the only driver behind BYOPC attracting and retaining Gen-Y'ers?

Sure, the freshly minted college graduates who are entering your organization today were born in 1988. All they know is instant gratification of having information at their fingertips. As our CTO, John Whaley mentioned in a reply to Andi Mann's article, Is BYOPC Really Key to Attracting Millennials?, "a company that adopts a BYOPC program is more likely to attract millennials just by the fact they consider adopting such a program," not necessarily because it's just a perk to lure them in. Giving them the ability to bring in their hardware of choice, aka Mac, makes you look like the trend-setting, understanding employer (and then you put them to work, of course).

But is this attempt purely altruistic? We think there other drivers worth considering – namely, cost. There are deep cost advantages – some underneath the surface and worth the time to consider. By requiring employees to bring their own hardware, you get out of the hardware support business. Or if you're less inclined to give them complete choice, you have the option of corporate issued choice – you retain your volume discounts and offer a catalog of choices. Think about the flex initiatives that are growing in popularity, where companies are aiming to lower overhead by keeping workers in the office for fewer hours during the week, or fewer days. Now think of BYOPC as synonymous with use of home computers – which is more "use your own" rather than "bring your own." Here, real estate costs can be eliminated, which can represent a large percentage of the operating budget.

A client based managed VM can not only address the above scenarios in a very cost effective way, it can also eliminate the security risk associated with allowing corporate access from unmanaged, unknown endpoints. Cost effective – because it 1) Negates the need to deploy vast amounts of server infrastructure that server hosted virtual desktop solutions require; 2) Allows your users to leverage the distributed assets on hand such as personal PCs 3) Enables you to support new green initiatives such "work from home" and productivity initiative such as "Platform Choice". Secure – because it 1) Eliminates the worry of VPN clients tunneling into the perfect lockdown corporate world from dirty machines since the VPN session can now be established only from within the secure lockdown VM; 2) Removes the need to subject a user to time consuming extensive host AV scanning/could quarantining process.

If BYOPC has not looked that promising before – then it is time to look at it again. This time not just for Gen Y’ers but also for the cost saving that it can deliver to you.

MokaFive solves these exact problems while realizing the cost benefits of eliminating hardware costs, real estate costs, backend infrastructure costs, and excessive overhead. MokaFive's virtual desktop is an isolated virtual machine that sits on the endpoint – yet is fully managed, tied to a server behind the enterprise firewall that filters down policies and settings for the virtual desktop to completely lock it down and ensure safe access to the network. Whether corporate-issued choice (Mac or PC), true BYOPC or work-from-home, the cost savings are clear.

Purnima Padmanabhan, VP of Products and Marketing

Wednesday, November 18, 2009

Virtual Layers: A Retrospective

After we introduced our Layering solution as part of our 2.0 product in June, a lot of people have been talking about Virtual Layers. (Check out Gabe Knuth's "What is Layering, and why does it matter?" post for a good overview.) Now the feature has been in customer's hands for a few months, I have a better perspective about what works well with layered management (and what doesn't work), and why.

Reaction to Layering

The key realization behind layering is that different people are responsible for different parts of the desktop, and you want to manage the pieces independently. Layering provides a very easy way to combine different managed pieces into a single cohesive environment.

The reaction after we released layering was very positive. Everyone I've talked to loves the story and wants to move to a world where they can manage their desktop using layers. Since we released our product in June, a number of other companies have started talking about layering and management using layers. Some have even announced products in this space. However, MokaFive is still, five months later, the only layering solution that is commercially available. On the customer front, layering has generated a huge amount of interest in MokaFive and is one of our key differentiators.

While we've had great success with customers using layering, some people are skeptical about whether layered management can actually work in their real-world environment. They've heard claims like this before with other technologies and have been disappointed.

Layering and Application Virtualization

The desire to manage independent pieces is not new, and there have been products that have tried to solve this problem for a very long time. Application virtualization is one such technique. Application virtualization allows you to wrap up an application and all its dependencies into a single bundle that can be easily managed. At least, that's the promise.

Most of our customers and prospects have played with application virtualization, and some are deploying it today for some of their applications. But everyone who has used application virtualization in real scenarios is aware of its limitations.

First, you as the admin need to sequence the applications, which is easy to do wrong and very, very, very hard to do right. You need expert knowledge in the internal application structure, as well as expert knowledge of Windows and of the ins-and-outs of the particular application packaging. Sequencing is a black art and it takes a long time to learn how to do it well.

The second problem with application virtualization is it is a really, really hard problem to solve, so no one has solved it completely. To completely virtualize an application, you need to correctly emulate every operating system component that the application interacts with. This is an exceeding difficult problem especially when the OS changes, and applications rely on undocumented behavior and bugs. A perfectly compatible application virtualization solution would require a reimplementation of most OS components. (Once you do that, you don't even need Windows anymore. For those who are familiar with WINE on Linux, WINE is application virtualization. It works with many applications but has some serious restrictions.) In fact, in the best case for the very best application virtualization products, the compatibility rate is only 90%. That leaves 10% of applications that cannot be virtualized.

The third issue with using application virtualization is that it provides isolation, which is not always what you want. When you package an application, it becomes independent of the rest of the system, so you can run it in a wider variety of environments. However, that also limits interaction with the rest of the system. When you try to paste your Visio diagram into your Word document and those applications are separately virtualized, it doesn't work because the applications are isolated. You have to do a bunch of work to explicitly open conduits between the virtualized applications, and you have to do this for all applications. This goes against the whole point of having a single cohesive environment where everything can interact.

The reason I bring up application virtualization is because its limitations are fairly well-understood, people assume layering is the same way. But the way we did layering avoids these problems.

Why Does Layering Work?

One of the key differences for our layering solution is that in our system, a layer is tied to a particular base image. That means that we don't need to solve the problem of trying to get the same layer to work on all environments, we just need to make it work in the one base image it was installed in, plus any delta updates to that base image. This means we don't need to know dependencies between applications to bundle them up or verify they exist, we don't need to normalize paths or registry keys to work on different base OS configurations, we don't need to worry about compatibility between different base images. So we avoid a huge set of problems.

Layering is trying to solve a different problem than traditional application virtualization. Application virtualization is about isolating applications so they can be delivered easily and will run the same way in different environments. Layering is in many ways the opposite of isolation - it is about combining pieces to form a single cohesive whole, while maintaining the ability to manage each layer individually.

What about delta updates? Couldn't that break layering because the base image changes? Theoretically yes, but we have not run into this problem in customer deployments. The reason is most updates do not need to make modifications to higher layers. This makes intuitive sense - installing a hotfix or service pack usually doesn't search your hard drive for other programs and files and make modifications to them. Programs which do variations of this (e.g. upgrading to a new version converts the data files to a new format) require some special consideration when using them in a layered management environment.

The other issue that can arise during layering is when the layers have conflicting updates. Say you have applications that both the user and administrator can update. When they install conflicting versions, whose version wins? The layering engine is flexible enough to allow you to specify this at a fine-grained level, but it can lead to a confusing user experience as some user changes will persist while others will not. The solution is to be structured in terms of who is responsible for what. For example, the administrator controls a core set of applications, operating system files, and VPN, while the user can keep their own personalizations and applications but cannot change the components controlled by the administrator. With some planning, you can avoid conflicts between the layers. We provide some best practices for our customers that have worked well in avoiding conflicts.

There are two basic properties that ensure layered management works correctly. The first is that changing lower layers should not require changes to the data on higher layers. If they do, then we may need to account for dependencies. The second is you need to specify a policy when there are conflicting updates between layers, and some care has to be taken in how to specify that policy so that it operates in an intuitive way while still gaining the benefits of updates and rejuvenation. We have a set of recommended layering configurations that avoid the problems while maximizing the benefits, and our customers have been using them with great success so far.

Looking Forward

Layering has been a big success for MokaFive and continues to be one of our key technology differentiators. We designed the layering solution with specific goals in mind, so we avoided most of the downsides of other approaches. Now we've been through actual customer deployments, we have a good idea on how to most effectively use layering for management.

We are continuing to push ahead on layering, using our experience with deployments to improve the product and working on some great new features that take advantage of the layering engine. There are some exciting new features we are beta-testing today for release next year that are going to raise the stakes on layering. Stay tuned!

John Whaley, CTO & Founder

Tuesday, October 6, 2009

Deploying XenApp Within a Virtual Desktop: The Why's & How's

We posted recently about the possibilities of creating a flexible, yet secure virtual desktop - with the right management tools. If you're familiar with the benefits of virtualization and have already invested in application virtualization technology, now you can go a step further to get security and centralized management of the entire desktop image. Deploying a well-managed virtual desktop will secure your user's operating system and simplify management of the entire environment, without sacrificing the ability to let users customize, run offline or on the go. The secret with virtual desktops is to "manage centrally, execute locally."

Deploying a flexible virtual desktop management solution is a relatively quick and simple process (a few hours to set things up), but can save IT administrators an impressive 60% on desktop support and management costs. Support costs drop as users can simply restart their virtual desktop to "rejuvenate" the original clean-state image with all of its applications and settings, wiping away any malware picked up along the way.


For instance - if you're already using XenApp, here are the basic steps:

1) Make sure your XenApp Server is configured to talk to your Domain Controller - this is important because you will be targeting apps based on users


2) Use MokaFive’s Creator to build a base LivePC image


3) Now that you have created a base image, you can install other applications, including XenApp applications, on top of it


4) From MokaFive's management console, target this LivePC to any users you choose to receive it


5) In the XenApp Access Management Console, set a number of policies for how you want XenApp to launch and run (from the server, locally, online/offline, etc.).


For step-by-step instructions,
check out this document.