Despite the fact that technology itself was available for a while, cloud services and related SaaS platform development only relatively recently entered our business and daily lives. Cloud boom a couple of years ago saw many companies moving their whole IT infrastructures to the cloud. At the same time, consumer cloud products, such as cloud storages, became very popular. Nowadays, using cloud computing technology is a pre-requisite for many developers who wish to create applications that will stay competitive in the modern market, while at the same time a huge number of IT companies, including some of the largest in the world, make resources of their own datacenters available to the consumer via cloud technology. It also triggers a rapid growth of the market of SaaS development services.
However, the big cloud boom that brought us to this stage of cloud acceptance didn’t pass without collateral damage. As it often happens when something new and exciting enters public consciousness, marketing departments around the world hijacked the term and run with it. Therefore, even now there are a lot of confusion as to the meaning of the term “cloud services”, what types of cloud services exist, what SaaS platform development actually produces, and what is the differences between PaaS vs SaaS vs IaaS. Further down we will try to explore these questions and find the right answers, as well as providing various SaaS, IaaS, PaaS examples. First, let’s start with defining what a cloud computing actually is.
The term cloud computing refers to a specific type of a service model. In general, it can be described as a scalable on-demand service provided over the internet. While there are many various types of cloud services, all of them share the following similar characteristics:
- On-demand service – service is available as soon as you need it
- Broad network access – service is fully available over the internet
- Resource pooling – resources are pooled across multiple customers
- Rapid elasticity – service can be scaled according to the demand
- Measured service – usage is measured and service is priced as a utility
All of these characteristics are defined by National Institute of Standards and Technology (NIST) and serve not only to help us define what is and what isn’t a cloud service, but also to help developers and providers create services that are effective and meet customers’ expectations.
Core technology at the base of any current cloud computing service is virtualization. It allows to fully separate physical hardware layer from the provided service, taking any need to purchase and maintain physical hardware away from the customer. At the same time, virtualization allows cloud provider to efficiently use resources of their own datacenters and quickly provision more computing power to the customer as needed.
Virtualization technology allows to deliver a number of services via cloud computing. These services can be roughly split into three big groups – infrastructure as a service or IaaS, platform as a service, or PaaS, and software as a service, or SaaS. These three groups are what comprises a proverbial cloud computing stack. In traditional on-premises model, infrastructure, platform and application are all build on top of each other to provide functional environment where end-users can perform their tasks. There are substantial differences between this model and between IaaS vs SaaS vs PaaS.
Three layers of cloud stack allow customers to choose how much of the traditional process they want to manage. IaaS provides customers with computing power and leaves operating system, middleware and application management to them, while provider maintains the physical software and provisions more computing resources as needed. In PaaS model, provider manages everything up to middleware, allowing clients to worry about code and deployment of applications. In SaaS model everything including applications is managed by a service provider, leaving customers to simply use presented solution.
In order to better understand the cloud stack and differences between SaaS vs PaaS vs IaaS, let’s take a closer look at each of the three offers.
Software as a service or SaaS can be defined as a software delivery model where centrally hosted applications are made available on-demand via the internet. SaaS examples include Google Apps and Microsoft Office 365. As mentioned above, in SaaS, applications are fully managed by a provider, without the need for user to worry about setting them up and maintaining them.
SaaS model brings customers a number of distinct benefits:
Automatic updates and maintenance
Customers don’t need to worry about setting up, configuring and updating software, nor they should worry about backing up their sensitive data. All of this is done automatically by the provider, ensuring that customers always use the latest and most secure version of the software.
Remote access from various devices
SaaS applications are usually cross platform and can be accessed via the internet from any device using a simple web browser.
Scalability and spreading costs over time
Application resources, such as storage, are provisioned automatically as soon as they are needed. At the same time, pay-as-you-go or subscription pricing models, employed by most SaaS vendors allows customers to spread cost of software over time, instead of paying large sum upfront for on-premises solutions. This gives companies more flexibility with their budget and protects them from risks in the long run.
Clear benefits of SaaS products sparked high demand, which in turn, prompted many developers to create their own solutions using this delivery model. But it worth noting, that while going SaaS can be more challenging than developing on-premises solutions, it has its own set of advantages for developers beyond just meeting customer expectations:
- Gaining competitive advantage for standardized services – it can be hard to gain a competitive edge when creating solutions where core functionality is standardized and barely differs from competition (for example, e-mail services). In this case, convenient delivery model and lower prices can help developers get competitive advantage.
- Building applications with extensive online features – many application relay on the web access for a number of their core features. In this case, it may be simpler and cheaper in the long run to simply move the whole application into cloud.
- Providing extensive remote access – cloud computing allows developers to easily make their app available from any web browser at any time without the need to develop separate versions for each specific platform.
- Saving money on development – SaaS delivery model ensures that every customer has the latest model of the software, freeing developers from the need to support legacy versions and ensuring that critical security patches are delivered automatically to every user. This in turn, can save developers money in the long run.
Nowadays, both demand for SaaS solutions among customers and popularity of SaaS among developers keep growing. Many businesses leaving expensive and cumbersome on-premises systems behind and switching to SaaS. SaaS proved to be a very popular choice for CRM, ERP, finance, tax, as well as sales management solutions and many others.
Famous SaaS examples include online services, such as Gmail and Google Drive, as well as numerous other similar solutions. In enterprise world, there are many systems, currently distributed via SaaS model. The most popular are probably various office suits, such as Office 365 from Microsoft, as well as Google Docs and Google Spreadsheets.
Platform as a service, or PaaS, can be defined as a middleware, provided on demand via the internet. PaaS is oriented mainly on developers and software vendors and provides them with an environment to develop, test, deploy, host and maintain their applications. PaaS allows companies to focus on creating and deploying applications without the need to think about physical hardware, virtualization, operating system or middleware. It provides a complete set of programming tools and computing resources necessary to start working immediately.
Benefits of PaaS model for customers include:
Web-based creation tools
There is no need to separately license, install and maintain a set of tools for creating applications. PaaS services already provide you with the necessary environment. Web-based tools allow developers to work from any place with a wide array of devices.
Fully managed development environment
There is no need to manage development environment or worry about backing up your data. Service provider will managing everything for you, leaving you to focus on your development efforts.
Integration with other services and built-in scalability for deployed software
PaaS provides a built-in native scalability for any software you create and deploy within it. It allows to easily integrate your software with other services, either third party, or provided by the PaaS provider, by introducing a single common standard through which all of these solutions can interact.
PaaS provide a number of powerful collaboration tools allowing geographically dispersed development team to focus their efforts on creating and delivering a single piece of software.
Many cloud companies embrace PaaS as a way to allow developers to integrate with their own proprietary software without leaving the company ecosystem. This helps companies to create development communities around their products without going completely open source. However, such practices also rise very valid concerns of locking into your current PaaS provider. It is impossible to migrate an application, created with a custom tools and integrated with a proprietary solution, making developers dependent on PaaS services staying up and providers staying in business.
However, despite such concerns, PaaS offers keep gaining popularity. Extensive collaboration tools, ability to spread out costs over time and the fact that there is no need to worry about setting up and managing middleware is what makes developers use PaaS.
There are numerous PaaS examples out there that can be divided into several categories depending on their focus and specifics of distribution method they use.
We have public (Heroku), private (Apprenda, OpenShift, Cloud Foundry), and hybrid (IBM Bluemix) PaaS solutions. There are also mobile PaaS solutions, specifically designed to provide capabilities for developing mobile applications. There are also PaaS systems, specifically aimed to allow rapid development. The most famous among those are Mendix and Sales Force.
Apart from that, there are also open source based PaaS solutions, designed to allow applications to run in an open source environment, rather than hosting them. A famous example of such platform is Google App engine.
Infrastructure as a service or IaaS can be defined as a virtual scalable infrastructure, provided by demand over the internet. Provider manages the physical hardware and delivers only computing power to the user, leaving them with setting up and managing all the software. Such service provides a number of advantages to the customer:
Instead of buying infrastructure upfront, IaaS allows customers to spread that spending over time. Moreover, you save all additional expenses regarding hardware maintenance, including the cost of having dedicated personnel just to maintain the hardware.
Security and reliability
by abstracting software from the actual physical infrastructure, you making it much more secure and reliable. There is no need to worry about hardware reliability, about physically securing the hardware, or about your software affecting the hardware. All of this is managed by the service provider. Of course, dependence on IaaS means that if service provider ever goes offline, your infrastructure will go offline with it. However, practice shows, that any such mishaps happen very rarely and are quickly dealt with.
Computing resources are provisioned on demand and can be easily scaled as needed. It means that you can not only increase consumption, but also decrease it, when resources are no longer necessary, allowing you to use your money in the most effective way possible.
Biggest restrictions on the use of IaaS are performance requirements and compliance regulations. Internet speeds are a big limiting factor for IaaS performance and if a very fast response is required, IaaS may be not an option. Also, some countries have regulations on preventing certain types of data, such as financial information, to be hosted outside the country, in which case, IaaS may also not be an option.
Where IaaS works great is when a company needs to save money, or if a company experiences spikes in demand for hardware resources. It allows smaller companies to grow without large upfront investments, and allows to quickly provision infrastructure for growing companies without the need to invest large sums of money. It also allows to save costs by scaling down existing physical infrastructure and transferring parts of it in the cloud. Spikes in demand and need for temporary infrastructure are probably the most obvious cases where IaaS will be extremely beneficial, allowing to quickly provision additional resources and then scale them back.
From the provider standpoint, IaaS is all about the economy of scale. Multiple users share the same physical machine, allowing providers to fully utilize resources of their data centres and maximize return from every piece of hardware.
The most widely popular IaaS examples include Amazon Web Services (ASW), Microsoft Azure and Google Compute Engine. These services are managed by the biggest companies in the world effectively maintaining huge data centers in various corners of the globe in order to offer very inexpensive infrastructure with large potential for scalability.
Other examples of IaaS include Bluelock, Rackspace, CSC, GoGrid, Linode, DigitalOcean, to name a few.
We hope that definitions and examples above made the differences between IaaS vs PaaS vs SaaS and where they fit into cloud computing stack much clearer. Ultimately, the philosophy behind cloud computing is to manage only the things you directly working on, without the need to handle all the additional stuff that goes with it, and distinct offer of PaaS vs SaaS vs IaaS allows customers to choose exactly what they need. At Apriorit, we provide SaaS development services for our clients and know firsthand how popular SaaS model really is. If you were still considering whether it is worth it to go cloud computing, we hope that the information, provided in our comparison helped you to make your mind and embrace this popular and convenient delivery model.