Software companies continue to evolve how they deliver software. Eighteen years ago when I started my first software company, our application was delivered on a stack of 3.5” floppy disks that needed to be inserted one disk at a time during the installation process. Over time, the software industry delivery model evolved to CDs and downloading the software over the Internet.
Today, many software companies are facing another transition in their delivery model. The Software-as-a-services (SaaS) delivery model, where the software is accessed through a browser or thin client and never installed on the user’s desktop, is becoming more prevalent across the industry.
SaaS has many advantages over the traditional software delivery model. The recurring revenue stream, simpler maintenance and application updates, and the lower cost of delivery and distribution are especially attractive for both the application provider and the end users.
However, unlike previous transitions which were changes in manufacturing or delivery technology, the transition to SaaS presents dramatic changes to both the migration and the delivery of the software solution.
Migration – I’ve lived through the headaches of rewriting a legacy code base from a 32 bit single-threaded application to 64 bit multi-threaded environment. Despite our programmers’ most conservative estimates, the project got bogged down in compatibility and migration issues. We eventually decided to cancel the project after spending over $1 million in the rewrite effort, because we saw no end in sight to the migration issues.
Many companies face a similar challenge of migrating from a desktop or client-server architecture to a multi-tenant SaaS model. In many cases, the transition to SaaS involves a re-write of the entire application, which can be fraught with delays and incompatibility with legacy systems. This can have a dramatic impact on time-to-market, especially when customers are pressing for a SaaS application in the short term with all of the same features they currently enjoy on their desktop or client-server solution.
Delivery – Another challenge for software companies migrating to a SaaS delivery model is the requirement to deliver the application online 24 x 7. At my last software company, we had 3 racks of servers in an ad-hoc data center (really just an office with an extra 10 ton air conditioning unit). With in-rack UPSs, we could survive short outages, but the loss of power or Internet connectivity, while impacting our development team’s productivity, didn’t impact our customer base. An outage would only inconvenience our customer’s ability to download the application. It would not impact when they could run the application.
SaaS changes the delivery requirements dramatically. Since the application is only available online, the solution needs to be available 24 hours a day without fail. For many software companies, this means that the IT delivery infrastructure suddenly becomes core to customer satisfaction. With SaaS hosting, the bar is raised from servers being mostly available, to always available and always online. Many SaaS companies consider colocation or managed server hosting so they can outsource the infrastructure expertise and focus on what they do best – software and application delivery.
Migration to SaaS with private cloud computing – A number of our SaaS customers at Online Tech have moved their client-server application to a private cloud computing platform as the first step in migrating to a SaaS delivery model. They leverage the benefits of a private cloud and virtual servers to deliver their solution over the Internet. The end user doesn’t know if they’re running on in a multi-tenant software application or on a virtual server dedicated to their instance of the software. They see the same set of features they had with the legacy system.
As opposed to the public cloud, the private cloud can deliver a secure platform where the end user can be assured that their data is safe and the network is secure. Each instance of the application can be spun up on its own virtual server within the private cloud. Every time a new customer is added, an additional virtual server is spun up, with the operating system, application and configuration preloaded and ready to go within minutes.
Conclusion – The private cloud can simplify the process of migrating client-server applications to SaaS. Once the hardware platform is in place, a new virtual server instance can be spun up for each new customer quickly and for minimal incremental costs. Migrating client-server solutions to the private cloud removes the risk of rewriting code to a multi-tenant application from the critical path and delivers the same end user experience as in the client-server model.
Lower Risk, faster migration and preserving the end user experience – all good reasons to consider private cloud computing in your migration to a SaaS delivery model.