Cloud computing has revolutionized software development and deployment for businesses large and small. Software as a Service is a software license and deployment model where software is sold and installed on a subscription-based basis, and is centrally located. Earlier, it was commonly known as “off-site software” or “custom software on demand.” With the widespread availability of mobile computing, small and mid-size businesses have been able to leverage SaaS to save cost and implement flexible business processes that are faster and more accurate than traditional software development. Today, more organizations are adopting software as a service than ever before. However, despite the popularity of this model, there are several common misconceptions about it, as well as correct definitions of the different terms being used.
Software as a Service (SaaS) is not software. The reason this term is sometimes used interchangeably with cloud computing is because SaaS is actually an application. You can think of an email or a Web browsing app being SaaS. This is one way in which software vendors are redefining software delivery models. While some organizations still think of SaaS as comprising applications that are downloaded and accessed, this is simply not true anymore.
Instead of having to build an app from the ground up, or hire someone to do it, SaaS gives you the infrastructure, the app and the access to the world wide web, all via the cloud. The infrastructure is highly scalable, as well, which means that a single app, hosted on one server can serve millions of customers simultaneously. One of the great benefits of cloud computing is its highly scalable nature. There are typically very few limits to what can be built – if anything, it’s just that fewer people can build it, hence there will be less complexity, and consequently fewer bugs.
Another reason cloud computing is so attractive is because of vendor lock-in. One of the biggest pains in the heels of enterprise IT departments everywhere is vendor lock-in. Vendor lock-in occurs when a vendor develops a new product in precisely the programming language (for example C++ or Java) that has been used heavily within an organization. Once that product is released into the open, every piece of software that uses those same functions will become dependent upon the specific language in order to run.
Vendors, especially those who are new to the software market, often make assumptions about how apps should be written. Unfortunately, these assumptions don’t always pan out. One common assumption is that, because the language is well known, there shouldn’t be any special security requirements. Yet this is where many vendors run into trouble. Many of them, when they introduce new platforms, include language features that are strongly considered by users and developers, and then lock them out of the APIs.
In the current era, we have seen several large-scale attempts at public cloud services. Amazon’s AWS is currently one of the largest cloud vendors. Google has been working on an initiative called Project Zero, which aims to eliminate all the middleware and storage middleware that vendors like Citrix and Microsoft have used for years to keep their data security in check. Google wants to eliminate the need for IT managers to install and run any software on the physical infrastructure. While Google is still early with its endeavors in the public cloud services arena, there are other companies that are aggressively pursuing cloud security and agility too.
In addition to attempting to eliminate the necessity for IT managers to install any software on the server, cloud vendors are beginning to implement integrations more effectively. Integrations are a great way for two different organizations to work together, and are usually a feature of a software utility. By combining a vendor’s functionality with an on-premise app, the two parties can share data, infrastructure, and even work practices. One example of this integration is Microsoft’s Office 365.
With more companies relying on cloud computing to deliver critical applications and data, the need for enterprise app developers and system integrators is clearly necessary. Businesses must find a way to separate their on-premise systems from their cloud storage and must also develop systems that can quickly and efficiently communicate between legacy systems and cloud-based apps. Only by adopting a disciplined approach can businesses ensure that they don’t lose control over their most valuable assets: their people.