Let’s get SaaSsy…!

The Enterprise Application Architecture, Part 1

SaaS. PaaS. IaaS. The Cloud.

What is this gibberish? Is it some foreign or mystical language? What does it mean…?

First of all, let’s clear the air and make one thing absolutely clear:

In it’s simplest form, cloud computing or “The Cloud”, is just a fancy term used to describe distributed computing. Some aspect of the system, whether it’s the storage, data, application, server, etc., is accessed remotely, typically via the internet. Back in the 1990s, this same concept took place, but required dedicated connections either via leased lines or VPN services over existing communication channels. The cost factor of those services was substantial enough that only larger organizations could make it practical for everyday use. As technology became faster and cheaper, the distributed computing services gradually became more available. In addition, with the rapid growth and adoption of the Internet starting in the mid 90s, more computing services were being made available to individual consumers. Once service providers realized the potential revenue from this technology, it wasn’t long before entire businesses were created around the provision and sale of “cloud” computing services. Amazon’s debut in 2006 of Elastic Compute Cloud services pushed the technology further and now there are many large scale providers of cloud services and it’s a common term both within the IT industry and to many consumers.

Building on that basic framework of cloud computing, there are various level of service that can be provided (Wikipedia – Cloud Computing):

SaaS – Software as a Service: The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

PaaS – Platform as a Service: The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.

IaaS – Infrastructure as a Service: The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).

So SaaS specifically is the distribution of applications/software. Typically, a SaaS application is accessed and delivered via a web browser. A prime example of a SaaS application that many of us use today is Dropbox or Google Drive. We have a service that provides access to files that are stored remotely on a server somewhere. We are not directly accessing that remote server, but instead it’s the application (whether a desktop application or a web-page) that lets us access our files. Google Drive is part of a larger application group that also includes email, calendar, chat, word processing, spreadsheets, presentations and forms. Other large companies such as Microsoft and Amazon, as well as vendors such as Workday, Salesforce and Concur have all quickly joined the SaaS marketplace with solutions.

So what are the benefits of pursuing a SaaS strategy? Here is a short list as compiled by IBM:

Lower Cost – First, SaaS applications are subscription based. There are no licensing fees and no initial costs. This will typically translate to lower overall costs compared to the implementation of a similar traditional application.

Reduced Time to Live – Secondly, there is a drastic difference in time-to-live. Since there is no hardware or backend processes that need to be installed and configured ahead of time, time to the application being live is shortened. Then, in addition, the simple benefit of the application already being installed and running on the remote servers reduces the time as well. In most cases, configuration and setup is a simple process which takes at most a couple of hours.

Painless upgrades – Considering that the actual application resides on a remote server maintained by the vendor, the end user doesn’t have any action needed to perform updates to the software. This is all managed remotely in the back end and is typically seamless to the end user.

However, it’s not all positive. Two of the biggest issues that companies have with SaaS services are Security and Outages. How secure is my data and business info? What happens if hackers get into the data center where it is hosted? What happens when the hosting location has an outage? How will I be able to utilize the application during that time? Will I be compensated for the outage?

Ultimately, the pros and cons have to be weighed against the specific circumstances that you envision for the SaaS services. Each company will have different levels of needs and justifications that will determine whether it is the right solution for them or not.