Cloud providers such as Microsoft, Amazon, Google and others offer cloud services through their data centers to their customers via thin clients and other existing legacy apps. Cloud customers don’t need to have servers installed on-premises and can just sign up with the provider to get all the services alternatively from the provider’s servers in their data centers located globally. Majority of these cloud services can be grouped into three service models: Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). These are primarily the basic build blocks of cloud computing and all granular services, offered by the cloud providers, are mapped to one of these models. As an example if you are using Google Docs, which is part of G Suite, you are utilizing the Software as a Service (SaaS) model. All the Cloud services are subscription based where you pay a monthly fee depending on the service and usage of that particular service. This is completely different than the traditional model of paying for software licenses and services upfront.

While SaaS, PaaS are SaaS are the three original and primary service models with majority of granular cloud services associated with them, there are other service models which are worth mentioning here too including DataBase as a Service (DBaaS) and Disaster Recovery as a Service (DRaaS). DBaaS provides the ability for users to provision and use databases which are setup in the Cloud. Examples of DBaaS include Microsft’s Azure SQL database service and Amazon’s RDS. DRaaS is the replication and hosting of physical or virtual servers by a third-party to provide fail-over in the event of a man-made or natural catastrophe. You can check out AWS’s Disaster recovery services over here.

SaaS (Software As a Service)

Anyone who uses a computer uses some software to perform a certain task, such as utilizing a word processor program to create your resume. Fifteen years back we required CD media to install this kind of software on top of your operating system. With the age of Cloud Computing we are moving away from CD and floppy disks (if you are as old as I am and remember those things). Almost all software is now available online from Cloud SaaS providers, on subscription basis, and you don’t need physical media to install and start using your software of choice. As an example, Software as a Service model is being utilized when you using office productivity software such as Microsoft’s Office 365 or Google’s G Suite.

Basic advantages of using SaaS includes the automatic upgrades to the software and you getting the latest and the greatest version of the software at all times. You don’t have to worry about the upgrades and having your IT department plan it for weeks and months in advance for it. You get the latest version automatically when your Cloud provider upgrades the software on their servers in their data centers. Cloud SaaS providers also offer different plans for businesses of all sizes along with for home users and students. For an example Microsoft offers Office 365 plans for home users, students, small to mid size businesses and large enterprises. Along with free life long upgrades most of the SaaS Cloud providers offer free or monthly fee-based technical support options.

PaaS (Platform as a Service)

PaaS is a great option for developers who want to setup a standard Web or Mobile app and don’t need control of the underlying operating system or the virtual machine. So basically the developers who opt for this service model are just looking for the availability of the development platform and don’t really care about the underlying environment. One example would be a developer just looking to create and manage a Web site and not wanting to worry about the operating system or the server underneath the application platform. PaaS compared to IaaS has limited customization or configuration options but you don’t need to manage and maintain the underlying operating system and the machine. The Cloud provider is responsible for this maintenance. The developer just chooses the proper PaaS service, connects their favorite IDE to that service and they are on their way to building and managing their app in the cloud.

Both Microsoft and Amazon, the top two cloud providers have PaaS options for developers regardless of their programming platform. Microsoft offers Azure App services whereas Amazon competes with AWS Elastic Beanstalk. Both support popular programming languages including Java, Ruby, Node.js, PHP, Python and C#. This page from Microsoft Azure does a good job on describing some common scenarios to help developers who may be confused about deciding between either to use Azure VM or Azure App services for building their apps. Same reasoning can be applied if you were deciding between AWS’s virtual machine service called Elastic Compute Cloud (EC2) or their app service called AWS Elastic Beanstalk.

IaaS (Infrastructure as a Service)

If you are an IT professional wanting to setup a customized server or a developer with a highly customized app then you are going to subscribe to the IaaS services from your Cloud provider. IaaS provides you network, storage, virtual machines or physical machines in your Cloud provider’s data center. Basically you have the ability to setup your infrastructure in the Cloud with server and client machines and depending on your provider can also extend your on-premise network to your cloud infrastructure. Azure Stack from Microsoft is an example of a service available which can be used to extend your on-premise network to the Cloud. If you are an open source enthusiast then you may want to look into using OpenStack instead for similar capability.

At its basic level IaaS offers you the ability to setup a bare-metal machine or a virtual machine in the cloud. Microsoft calls this service Azure VM whereas Amazon calls it Elastic Compute Cloud (EC2). Both these services are the most popular and most consumed services from the respective providers. These services provide you with a virtual machine with the operating system of your choice installed on it. Different versions of Microsoft Windows and various popular distributions of Linux are available from you to choose to install on your virtual machine(s). Depending on your needs and the workload you want to run, you also have the option to choose the size of the virtual machine.

Setting up such virtual machines is typically a preferred choice for developers who may want to create or run a customized app on these virtual servers. Developers and IT professionals, who opt for these IaaS services, have full control of the virtual machines and are also responsible for the updates and patching of these virtual machines. In other words, though you have more control and ability to customize and configure the virtual machine, it does increase the maintenance burden on you. While you pay a set monthly fee for the virtual machine, depending on the size, your actual monthly cost will also depend on the workload you are running on top of it.

About the author

Fawad Khan administrator

I have 20+ years of experience in Information Technology, training, startups and strategy with last ten year's emphasis on Cloud Computing technologies and services. Topics of interest for me include Digital Transformation, Cloud, AI, ML, IoT, Blockchain, Emerging Technologies, Education, Training, Leadership and other related topics. I am always very interested and eager to hear/discuss different opinions, feedback and perspectives.