eWEEK Senior Editor Darryl K. Taft speaks with WebappVM CEO and co-founder Issac Roth about running applications in the cloud and why the company has focused on the virtual layer, as opposed to traditional agent-based technologies.
There is no doubt that cloud computing has made its way into mainstream use.
And the demand for cloud services is only getting stronger. But as businesses
increasingly pour more resources into cloud computing, how can they ensure that
their mission-critical apps are cloud-ready? It's no mystery that deploying and
running an application in the cloud is no easy feat.
WebappVM, a startup with early backing from Marc Andreessen and Ben
Horowitz, knows this problem all too well-its founders worked at Wily Technology
managing different agents to help developers put apps in the cloud. Now,
they've developed a technology that is "agentless," meaning there's much less
hassle in getting your app up in the cloud. eWEEK Senior Editor Darryl K. Taft
spoke with WebappVM CEO and co-founder Issac
Roth about running applications in the cloud and why the company has focused on
the virtual layer, as opposed to traditional agent-based technologies.
How did the idea for WebAppVM come
about?
When I first used VMware and saw how systems management-backups, network
monitoring, systems monitoring, HA-could be executed from "underneath"
the system, the light bulb went off for me. I thought, "This is the way
application management has to work-in a layer -underneath' the run-time
platform and not using agents, which are inserted."
At the same time, I was starting to see patterns in the way customers were
deploying their applications that would allow for the insertion of this kind of
technology at the application level. This idea really cemented when I read
about VMsafe. I thought: "This is how the world is going to work."
Agents are just too complicated and painful-on configuration, on
integration, on maintenance, on interdependencies. Despite the inertia on
agent-based management, you can see what is happening in the systems world: We're
going to a layer, and people are realizing how much better it is.
You attracted early stage funding
from Marc Andreessen and Ben Horowitz. What was it about your idea that
impressed them most?
Ben and Marc started a company 10 years ago, LoudCloud, with the idea of
operating Web applications in the cloud and getting application teams out of
the "undifferentiated heavy lifting" often cited by Amazon's Werner Vogels. Through
Marc's experience with LoudCloud [now Opsware] and Ning, he understands how
much of this goes on when the application team wants to be able to add
functionality without messing up the infrastructure.
Ben was recently in charge of the application management software from HP
and is very familiar with the pain and high costs associated with the
agent-based management approach. It's clear that enterprises are moving their
applications to clouds-whether public, private, internal, external, hybrid, etc.-and
they're not going to put these applications in production without application
management. Our approach of using a layer to provide the management instead of
agents and admin servers was very easy for them to understand as a paradigm
shift that would bring a lot of value to teams operating Web applications.
We hear a lot about cloud computing's
promises. What are its pitfalls?
In the short term, IaaS [infrastructure as a service] providers are still
evolving. There are only a small number of viable cloud platforms-public,
private, external, internal-and this lack of choice is holding back adoption.
It reminds me of when Jeep was the only one making SUVs. They invented an
incredible category there, but it didn't become mainstream until the customer
had choices: an SUV from Ford, an SUV from Dodge, even now a Porsche SUV. When
all you could buy was a Grand Cherokee, if you didn't like the particular
tradeoffs they'd made, you just didn't buy an SUV. Now you have many choices,
and as a result the category expanded dramatically. We need that type of
evolution to happen with cloud platforms-more options, more differentiation.
In the long term, developers are going to have to learn how to work in the
cloud. Operating applications on a cloud is simply different. Some existing
processes, techniques and knowledge will translate, but some will not. The
advantages that cloud brings are undeniable, so the transition will occur, but
enterprises are going to need to learn new ideas, adapt processes and adopt new
technologies. There are many vendors trying to make this transition as smooth
as possible, and we think we have a terrific way to take existing applications
without modification and run them on clouds. But to think that a developer or
operator can start running their application on a cloud and not have to learn
anything new ... that won't happen.
What are the challenges of deploying
and managing applications in the cloud?
At the discipline level, they're the same challenges you've always had with
deploying and managing applications: change management, performance monitoring,
audit and compliance, security, end-user experience management, and so on. At
the technical level is where things are a little different. People deploy to a
cloud because they want the benefits: elasticity, instant provisioning of new
environments, lower cost operations. If you use all the old approaches and
tools on the cloud, they negate all the benefits of using the cloud.
So the challenge of deploying and managing applications in the cloud is to
find ways to do all the management while maintaining elasticity. That means you
need a solution that will allow you to scale the application at low cost, let
you choose different cloud providers as better options become available, that
works inside and outside the firewall, that enables you to get fully managed
environments in an instant instead of getting a virtual server in an instant
and then waiting six weeks to get management functionality on that virtual
server.
Why do you think the virtual layer is
a better delivery mechanism?
With agents, although the vendors do a decent job trying to make them insert
easily, you still have to change your application setup to insert them. It's
not so bad when you have just one, but if you get a combination of agents
(which is needed because they each have different roles-application monitoring,
system monitoring, configuration management, log management,
scaling/deployment, etc.), it really starts adding up. And remember each one is
talking back to a management server that has to be configured and sized and
scaled and maintained.
By going in as a virtual layer, there is a small upfront effort to deploy in
a different way-which you have to do anyway for cloud deployment-and then you
get a rich and growing set of management functionality for "free."
The application doesn't know anything is different. Another advantage is that
new features can be added to the management without introducing new integration
points on the agent. Sometimes you can upgrade an agent and get a couple new
features, but often to get whole new areas of functionality, you end up putting
in yet another agent. In the layer approach, new things can just show up and no
additional integration is needed. So it's a much more scalable approach. Then,
you can take the application off the layer and everything goes away. ... There's
no uninstalling of agents and reworking of startup scripts or anything like
that.
What are you hearing from developers
who have tried the virtual route?
Visibility is a big issue. The first question everyone has is whether the
hypervisor or cloud is robbing the application of something important-disk I/O,
network I/O, CPU cycles, etc. How are transactions performing in the face of
this possible robbery? The next issue is that cloning and snapshots don't turn
out to be as cool as people thought they would be. There's too much application
state that is stored outside of the code itself-it turns out that you can't
really scale up an app by cloning the VM and you can't really roll it back by
reverting to a previous snapshot. Application-aware mechanisms are still
needed. One of the most useful things is the ability to rapidly spin up new development
and test environments. That means, no more waiting for admins to rack servers!
Because of the snapshotting/cloning issue, you still have to worry about making
sure that new environment you spun up is consistent with your target
configuration, but at least you're not waiting for servers to arrive on a
loading dock.