More and more enterprise-class software vendors are making their software available in the cloud and doing it through RightScale. Over the past two weeks the IBM DB2 team made DB2 Express-C v9.7 available, SpringSource published Hyperic HQ, and CohesiveFT published VPN-Cubed, all on the RightScale platform. Publishing software to the cloud is still a somewhat mysterious activity. While almost all software runs in infrastructure cloud environments such as Amazon EC2, publishing to the cloud creates new expectations and opportunities. Over the last year, we've been adding features to our platform to help ISVs publish to the cloud and are excited that the DB2 team found it easier to get the next version out using a RightScale ServerTemplate than an Amazon AMI.
I thought it would be helpful to write down how publishing software into the cloud is different from the more traditional software delivery:
Server templates, not software packages: Users expect to point and launch, not download, install, and configure. Of course some software is meant to be embedded or adapted, but in those cases there still is the opportunity to deliver a ready-to-go sample from which the embedding or adaptation can start.
In the cloud, you can launch IBM DB2 and have it running in a couple of minutes. That makes it much easier to get going and then later to start modifying configuration details. I'm sure most users will want to change the ServerTemplate published by IBM, but few will start there. Using the ServerTemplate not only gives you a server with the software already loaded, installed, and configured, it also has all the right software versions, is set up with monitoring and alerts, has logging prepped correctly, plus offers other goodies.
From a vendor's point of view the great opportunity of the cloud is to control the software environment from A-Z. You don’t need to have a long list of required software packages and compatible versions, you just provide it in a neatly wrapped-up ServerTemplate that automatically installs all the right components.
Free one-click trials: They don't need to be literally one click, but the cloud offers tremendous opportunities for users to try before they buy. It's so much easier to try out software if you can just spin up a server in the cloud, possibly with some live demo data already loaded. It's even better when the server is running on the vendor's dime!
From the vendor's perspective the cost is really close to just the cloud infrastructure cost. We've offered $1 of free EC2 time in our trial sign-up for years now. The $1 is good for about 10 hours of a small EC2 instance and really lets people get a first taste of RightScale. Who wouldn't pay $1 to get a prospect to try their product?
No lonely servers: Whose software is designed to run on a lonely server these days? What use is, for example, Hyperic HQ on its own? Its purpose is to monitor other servers, so you really want to embed it into multiserver deployments. CohesiveFT's VPN-Cubed product is similarly targeted to making life easier when you have lots of servers to connect back to the main office or datacenter.
Using RightScale simplifies the configuration of multiple machines because configuration inputs can be defined across many machines at once, and it's much easier for a vendor to also provide scripts that install client plugins or agents on a customer's other servers.
Pay per use: Users have come to expect more flexible billing methods in the cloud, such as pay per use. This is good and bad. The good is that it really is a requirement for enabling the scaling of resources on demand or for supporting flexible usage models. Use cases range from the famous scaling up in response to a traffic surge, to being able to add a database slave server on a whim to test the performance impact of some schema transformations. Pay per use really makes the cloud unique and this tells me that like it or not, pay per use is here to stay. However other models will likely coexist.
From a vendor perspective pay per use introduces new challenges. On the execution end it means that vendors need to meter the usage of their customers. I'm distinguishing metering from billing; the former is about measuring the usage and producing the data that can be used to compute per-use charges, the latter is about sending the customer a bill and getting it paid. We've been adding metering support to the RightScale platform for ourselves and we're starting to make the data available to ISVs to feed into their billing.
On-site support: The servers in the cloud are very easy to access by the vendor's support engineers and users will soon start to expect such on-site support. This is a true win-win proposition because it can reduce problem resolution time and increase customer satisfaction. Of course this means that the support reps need to have the skill to actually fix something and not just to dig in the knowledgebase and send an email reply.
One of the required underpinnings to enable vendor access in a controlled manner is access control. After all, the server's user needs to be able to selectively grant access to the vendor when help is needed. What we've found is that the RightScale dashboard not only offers the ability to do just that, but it also gives the support engineer a lot of context and history information that can help getting to the bottom of the problem quickly. As an extreme case, our support guys have responded to a number of "help, our site is down and we can't reach our IT guy" calls and were able to get things back up without having prior knowledge of the site. (In case you're wondering, this is not what our standard support covers, but we also don't just leave customers fall off the cliff in a situation like that.)
Delivered as a service: "And can you run it for me?" is a question prospects ask more and more. I know for myself that many times I'd rather pay the vendor to run it and sell it to me in SaaS form than go and figure it all out myself. Of course the cloud makes this much easier than ever before because the whole provisioning planning is largely taken out of the equation. When more customers sign up the vendor can just launch more servers. A good number of our customers do just that and utilize RightScale to manage what one could call virtual appliances for their customers. At the more sophisticated end, companies such as StarCut use RightScale to provision multitenant clusters to host many small users and they then move larger users to private clusters and even set them up with their own fully managed auto scaled deployment.
Runs everywhere: The final consideration is that "publishing to the cloud" is a rather deceptive term because there isn't just one cloud. I hate to borrow the "write once, run anywhere" slogan but it really describes what vendors are looking for. It's too early in the industry to have a clear picture of what the solution should look like, but we've certainly made significant strides towards enabling multi-cloud ServerTemplates in RightScale and we'll have more coming out shortly.
To give credit where credit is due, Amazon has done a great job in preparing the runway for software vendors to make their software available in the cloud. First, the fact that EC2 is based on immutable machine images, which are not a snapshot of a server but rather a template from which new servers can be spun up really enabled the first catalog of ready-to-launch servers. Second, the pay-per-use pricing which has gotten everyone to rethink how flexible computing could be if the licensing models allowed it. Somewhat to my surprise vendors with a lot of legacy pricing, such as IBM, have jumped into this new opportunity and decided to adopt it. Third, Amazon's DevPay service, which allows vendors to add a charge on top of Amazon's hourly server fee, was the first offering that closed the metering and billing loop so vendors don't have to reinvent the wheel. All this has created a tremendound level of awareness and interest in the new ways software can be delivered in the cloud. We're now leveraging this to introduce what we belive to be a more multi-cloud-friendly and more flexible way to publish software in the cloud.