In the final of my trio of posts deconstructing the “cloud”, I’m going to be looking at Software-as-a-Service, or SaaS. SaaS is the next layer of the “cloud” stack that sits atop Platform-as-a-Service (PaaS) (when it’s been built using such a platform), and/or Infrastructure-as-a-Service (IaaS).
Software-as-a-Service is usually presented to the user as a web application. It is distinct from a standalone web application in that each customer has their own instance of the software, rather than just having an account on a larger system.
For example, LinkedIn wouldn’t be considered SaaS since you’re not getting an instance of the LinkedIn software, just a user account. However, signing up for a blog on WordPress.com gives you your own WordPress instance, on its own subdomain, with its own set of users. This would be considered SaaS.
There are more complex examples such as Sourceforge, which gives you an account within their system, but also instances of software for your project such as bug trackers and wikis. Google Docs also blurs this definition.
SaaS providers will usually offer a multiple tiers of service, ranging from a highly limited free account to a well provisioned or even “unlimited” paid account.
There are 2 key advantages of SaaS. Firstly, it completely removes the administrative overhead of deploying software. Usually a few clicks of a web interface is all it takes to “install” your SaaS instance, and the provider takes care of the computing and storage resources required. Secondly, you can access the software from anywhere. As long as a machine has an Internet connection and a web browser, no further setup is usually required for end users.
There are of course potential issues to be aware of. Unlike having software deployed locally, or a web application deployed in-house, you’re unlikely to have direct access to your data (and depending on the terms of service, you might not even own it). All data will be stored by your SaaS provider and presented through the application. This makes backing up or archiving data locally difficult if not impossible, and requires absolute trust and confidence in your provider and their security policies.
While having your software available from any machine with a web browser and Internet connection is very convenient, this can be a double-edged sword in a situation where one of these isn’t available.
Open source software appears in the SaaS world in several guises, as Scott discussed in this week’s post. Some SaaS products may be built using permissively-licenced components, but with some proprietary code sticking it all together.
Of course, a complete open source software product may be offered as a service. WordPress is released under the GNU General Public Licence (GPL), but is offered as both a free and commercial service at WordPress.com and other providers. ownCloud is released under the Affero General Public Licence (APGL) and available as a service from owncloud.com and other providers. The terms of the AGPL, unlike those of the GPL, mean that even when provided as a service the service provider must allow you to download the source code.
The benefits of choosing an open source product when selecting SaaS isn’t as clear-cut as for lower layers of the “cloud” stack. If the product isn’t released under AGPL, the service provider doesn’t have to distribute the source code. If the software is released under a different open source licence, you will probably be able to download the software elsewhere and run your own instance locally as a contingency. However, without access to your data, the utility of this contingency is limited.
SaaS solutions using a combination of open source and proprietary components, as far as the customer is concerned, may as well be entirely proprietary. The provider may be developing and releasing the open source components, and these may be useful in other systems. However, in terms of the service being provided, the fact that some parts are open source doesn’t directly benefit the customer, only the provider.
When considering open source SaaS solutions, the key factor to look for is the portability of data. WordPress can publish your data in standard RSS formats. Some products will have an “export” feature, allowing your to download a copy of your data. In these cases, you realise the benefits of choosing an open source product, as you can easily move your data to another provider or an in-house copy of the software.