A Brief Guide on the Different Types of Cloud Services

There are three key types of cloud services that are of interest to modern organisations:

  • Software-as-a-service (SaaS)
  • Platform-as-a-service (PaaS)
  • Infrastructure-as-a-service (IaaS)

In this article, we will look at each individual type of cloud service and also compare them to each other.

Software-As-A-Service (SaaS)

Software-as-a-service (SaaS) is a method of centrally cloud-hosting and licensing software on a subscription model rather than an “old-fashioned” one-off license payment for installed software.

Until recently, it was common for a software vendor to sell their software packages on discs or as downloads that needed to be installed on specific computers. This was problematic for a number of reasons. First, it meant that users were responsible for installing their own upgrades (which they would often not do) which meant that support for the vendor was difficult as they would be dealing with multiple versions of the same product.

Secondly, the pricing for this model was frequently unattractive for some customers as it required large, one-off capital expenditure. Thirdly, the customer would be required to provide the infrastructure on which the software would run which was an administrative burden. Finally, the software would usually be limited to work on a small number of operating systems (e.g. it would only work on Window 10 or on a Mac etc).

SaaS solves this problem by providing the software as a web browser based product, centrally hosted by the vendor with a cloud provider (such as Microsoft Azure). This means that all upgrades are managed centrally by the vendor so that all customers are on the same version. The customer also requires only a web browser to run the software and does not need a server-based IT infrastructure of their own. The SaaS software usually works in all major web browsers which means that users of Macs, Windows PCs, Linux, iPhones, iPads, Android devices etc can all use the software.

Finally, the financial model of monthly (or annual) subscription payments rather than a one-off license payment is more appealing to smaller customers which expands the market size for the vendor. It also has the effect of smoothing out the cashflow of the vendor too, giving a more stable and reliable cash flow.

Platform-As-A-Service (PaaS)

Platform-as-a-service (PaaS) is a method of delivering a platform for application development via the cloud. Platform-as-a-service is primarily aimed at computer programmers, but some instances can be used by non-programmers to achieve simple automation objectives.

Platform-as-a-service typically provides the software that computer programmers use to build software. This could include databases (such as Azure SQL Server), runtimes (such as .Net Core or Java), Web Servers (such as IIS or Apache), API Management components etc. Historically, software vendors would have purchased then installed, managed and upgraded this myriad of software components themselves. This was often time-consuming and not particularly innovative.

In addition, a great (and frequently inaccurate) effort was made to size the target application and purchases the correct license for the product. For example, for a SQL database, one would estimate the number of transactions required, the amount of CPU resources required, the memory required etc and try to find a matching database license. Over-estimating consumption would mean that too much money was spent on licensing, whereas underestimating would limit throughout and/or require expensive upgrades.

Platform-as-a-service solves these problems by providing an elastic cloud-based approach to providing these components. A cloud provider (such as Microsoft Azure) will install, upgrade and maintain components so that the burden of doing so is removed from the developer. An elastic system of simple upgrades/downgrades is provided via a console application which would allow (manually or automatically) developers to scale up or down components as demand changes. The licensing of PaaS is usually a monthly/annual subscription model which eliminates the need to purchase expensive one-off licenses and instead pay a much smaller periodic subscription.

Infrastructure-As-A-Service (IaaS)

Infrastructure-as-a-service (IaaS) deals with providing a low-level IT infrastructure via the cloud. In the past, organisations would create and manage their own servers and server-racks. They would have to change failing hardware components (such as hard discs) themselves, as well as managing updates and security upgrades. The IT department would usually also have to provide extensive firewall and anti-virus security around the infrastructure to keep it safe from thieves and attackers. Periodically hardware would be renewed as it wore out, or become obsolete, or incompatible with newer software. Estimating infrastructure size (e.g. memory requirements, disk space requirements etc) was also fraught with problems, as it was a one-off exercise that was difficult to modify as the business environment changed.

The one-off costs associated with purchasing IT infrastructure were also significant, not just in terms of server purchase, but the establishment of power, cooling and a clean environment to keep the infrastructure in good working order.

Cloud providers give Infrastructure-as-a-service to organisations by centrally hosting large data centres all over the world. The purchase, maintenance, repair and operations of the IT infrastructure is carried out exclusively by the cloud provider. Typically, customers will have a “virtual” IT infrastructure within the cloud providers data centre.

For example, a server provided by an IaaS service is usually a virtual server that is hosted on more than one real, physical server. This means that if the physical hardware fails, the virtual server will transparently and immediately move over to another physical server with little or no downtime. Network, storage, memory, CPU time etc can all be managed from an IaaS console by the customer without ever having to see the real hardware.

The elastic model of IaaS means that the virtual IT infrastructure can be scaled up and down quickly and easily in order to meet changing demand. In addition, the cloud subscription model means that large one-off capital expenditures are not require to purchase servers or infrastructure. A smaller monthly or annual payment based on usage is typically charged instead.

Comparison

The various forms of service form a pyramid. Infrastructure-as-a-service forms a base layer upon which the other services sit. On top of this sits Platform-as-a-service to simplify the development and deployment of specific applications. On top of this, applications are delivered as Software-as-a-service.

All of these services share an elastic model in which services can be scaled up or down as needed. All of them also provide a small monthly fee instead of a single, large one-off payment. All cloud services achieve their objectives by providing a layer of abstraction to hide the expensive, complex and messy implementation details from the end customer. The key benefit of all of these services is therefore that they all free up resources that were previously spent on maintaining an IT infrastructure so that the customer can focus on their innovative ideas instead.

For more information about cloud services and solutions, please contact us at McKenna Consultants. We have a long history of providing such services for numerous clients and pride ourselves on our catalogue of case studies. Alternatively, for more information on the types of cloud computing and the Microsoft Azure IoT Hub in particular, please keep reading our blog.

Nick McKenna
Since 2004, Nick McKenna, BSc, MBCS Biography has been the CEO of McKenna Consultants. McKenna Consultants is a bespoke software development based in North Yorkshire, specialising in Cloud development, mobile App development, progressive web App development, systems integration and the Internet of Things development. Nick also holds a First Class Degree in Computer Science (BSc) and wrote his first computer program at the age of nine, on a BBC Micro Model B computer. For the last 21 years, Nick has been a professional computer programmer and software architecture. Nick’s technical expertise includes; Net Core, C#, Microsoft Azure, Asp.Net, RESTful web services, eProcurement, Swift, iOS mobile development, Java, Android mobile development, C++, Internet Of Things and more. In addition, Nick is experienced in Agile coaching, training and consultancy, applying modern Agile management techniques to marketing and running McKenna Consultants, as well as the development of software for clients. Nick is a Certified Enterprise Coach (Scrum Alliance), SAFe Program Consultant (SAI), Certified LeSS Practitioner (LeSS) and Certified Scrum@Scale Practitioner. Outside the office, Nick is a professional scuba diver and he holds the rank of Black Belt 5th Dan in Karate.