Thursday 21 July 2016

My Journey towards invention of Compound Application Virtualization

For the first time in the history of application virtualization, competitive virtualization technologies are combined together to form a superior solution, overcoming the limitations of each of the individual virtualization engines. This opens up a whole new world for innovative next generation Hybrid Virtualization Solutions. I like calling it “Compound Application Virtualization” (a name my colleague Rikard Ottosson suggested).

The Inception

The thought of Compound Application Virtualization struck me few months ago. Back in Nov 2015, I started competitive analysis exploring the market to analyze the offerings from major application virtualization vendors. At first, I was really impressed with a few of the features available in other products. As a virtualization engineer, I was keen to incorporate those new features in our product. But as I dived deeper into those virtualization engines, I figured out that every technology comes with its own limitations. As much as developers wish to make the “best” product, many times we come across challenges which aren’t practical to implement due to a product’s architecture and its core design. This research brought me to a very important conclusion:

Why not combine individual technologies to come up with a superior solution?

Instead of implementing competitor’s features in our product, I decided to take it a step further by collaborating with different products to make a combined solution. This gave birth to the thought of Compound Virtualization and we started a journey or rather, an “adventure” to explore the possibilities of making a hybrid solution by looking at technologies in a whole new way – “Embracing” rather than “Competing” in the same domain.

Sowing the Seed

Our company’s Go-To-Market strategy was to collaborate with Microsoft and Citrix as we have always worked on improving partnership with these two technology giants. Both Microsoft and Citrix recommend using App-V for application virtualization. Hence, I had an obvious first candidate to test my theory of compound virtualization – Microsoft’s App-V.
I took this thought to our COO (Jason Efstathiou). He really liked the idea and encouraged me to research more on App-V. Over the next few days, I chained myself to my desk, spending hours on sequencing basic App-V apps and trying to figure out a way to wrap it in our product’s package format. I used to brainstorm my ideas with our Senior QA Engineer (Jyothirmai Uppuluri) and Senior Developer (Rikard Ottosson). My discussions with them helped me overcome a number of initial technical challenges. Just few days of research led to my first working model – Migrating App-V applications to Cloudhouse format. We came up with 3 different approaches to achieve the migration process. But this model wasn’t what I was aiming for as it didn’t involve combing the virtualizers – yet.

Being a strong believer of the “Lean Startup” approach, I decided to give a brief session to the whole engineering team about my research. I got really encouraging feedback from my Product Manager (Stu Moore) and CTO (Mat Clothier). They suggested further exploration into how to distribute app-v packages.

Gaining The Momentum…

Having succeeded in getting a working model (though it wasn’t exactly what I was aiming for), I got more time and motivation to continue my adventure. I continued my research digging out ways to combine our products with App-V. The best part of combing Cloudhouse’s virtualizer with App-V was that they both operated at different levels in the OS stack.
I should admit that I was really lucky that our product stack was a perfect fit for App-V. In the next few days, without any major changes in the product, I delivered my first working prototype for compound virtualization – “Cloudhouse Empowered App-V”.

…And The Ball Gets Rolling

It was early Feb 2016. The initial prototype proved the concept of Compound Virtualization and I was convinced that it was possible to stack both the technologies. Cloudhouse virtualizer played its role in the user mode followed by the App-V virtualization engine underneath it. We configured our virtualizer to make it more intelligent in such a way that it was capable of deciding which calls it has to handle by itself and which ones to forward to the App-V virtualizer. Thus both virtualizers operated in harmony in their own layer. I’ll be giving more technical details on this in my next post of this blog series.
I recorded the video of my POC demo “App-V from the Cloud” and presented it to the management team. Mat and Stu were really excited to see a working prototype of App-V Distribution. Mat, being our product champion, showed me a way to integrate Cloudhouse’s licencing and usage reporting with App-V applications. Thus we came up with a solution which not just distributed App-V from the cloud, but also incorporated Cloudhouse’s licensing and usage reporting for App-V packages.

What a Coincidence! Call from Top Guns at Microsoft (App-V Management)

It was last week of Feb 2016. While I was still working on the App-V idea, Mat got a call from the Microsoft App-V Management team asking for a meeting. During the meeting in the US, Microsoft’s App-V Managers said that they wanted Cloudhouse to embrace App-V. Now, what are the chances of that happening? It was a mere coincidence. How many times do you come across such a situation when two completely unrelated people get the same idea? Microsoft asked for exactly the thing on which I was working. Mat showed them my videos and they were really impressed. This was like a market validation of our theory and the management decided to put it on the product roadmap for Minimum Viable Product (MVP).

Turning Dream Into Reality

Once our management gave a green signal, everyone got together to make this dream a reality. It was an extremely challenging task to implement a solution over a massive product like App-V without any internal knowledge of App-V’s implementation. Techies from cross-functional teams (across Dev, QA, DevOps and Domain experts) participated in hours of brainstorming sessions.  While developing the MVP, we faced several challenges as we stepped into unknown areas. But when technical brains determine to do something, nothing is unachievable. Within few weeks we could come up with a Minimum Viable Product.

MVP Takes Off – The Launch Of Tech Preview

After weeks of hard work, on 22nd April, our Product Manager announced the launch of “App-V from the Cloud” Tech Preview. It was an incredible experience to travel the journey through ups and down and finally see a thought turned into a product. I am really proud to be a part of the team where everyone is extremely passionate about technology and strive hard to make the impossible, possible.

A New Beginning

Our job isn’t done yet. Launching MVP was the first step. Next few months, every day started with a technical challenge, a task which seemed impossible to achieve turned into a new hope of finding a solution, eventually leading to ground breaking technology and whole new set of innovative ideas.
I am ending this blog, only to start a new one. In my next posts, I’ll take you through the challenges we faced in the following weeks and months and the solutions we came up with which hold the power of revolutionizing the whole industry. Watch this space for my weekly blog posts on “The Magic of Compound Virtualization”.
Here is a sneak peek into next blog post where I will get into the technical details of “Cloudhouse Empowered AppV” – the first implementation of Compound Application Virtualization.

  • Which are your favourite application virtualization products?
  • What do you like or dislike about them?
  • What if someone gives you a “Magic Wand” to choose best features from each of those and make an “Ideal Virtualization Engine”?
Do these questions trigger curiosity? If so, then you will find my next post interesting.

Priya Saxena

No comments:

Post a Comment