In the previous post – Cloud Computing – A Beginner’s introduction, we gave a very easy to understand introduction to cloud computing. Let us now see the various categories of cloud computing services.
Most cloud computing services fall into four broad categories: infrastructure as a service (IaaS), platform as a service (PaaS), software as a service (SaaS) and serverless. These are sometimes called the cloud computing stack because they build on top of one another. Knowing what they are and how they are different makes it easier to accomplish your business goals.
Infrastructure as a service (IaaS)
The most basic category of cloud services. With IaaS, you rent IT infrastructure—servers and virtual machines (VMs), storage, networks, operating systems—from a cloud provider on a pay-as-you-go basis.
Migrating your organisation’s infrastructure to an IaaS solution helps you reduce maintenance of on-premises data centres, save money on hardware costs and gain real-time business insights. IaaS solutions give you the flexibility to scale your IT resources up and down with demand. They also help you quickly provision new applications and increase the reliability of your underlying infrastructure.
IaaS lets you bypass the cost and complexity of buying and managing physical servers and datacentre infrastructure. Each resource is offered as a separate service component and you only pay for a particular resource for as long as you need it. A cloud computing service provider like Azure or AWS manages the infrastructure, while you purchase, install, configure and manage your own software—including operating systems, middleware and applications.
IaaS providers also supply a range of services to accompany those infrastructure components. These can include the following:
- detailed billing;
- log access;
- load balancing;
- clustering; and
- storage resiliency, such as backup, replication and recovery.
These services are increasingly policy-driven, enabling IaaS users to implement greater levels of automation and orchestration for important infrastructure tasks. For example, a user can implement policies to drive load balancing to maintain application availability and performance.
Common IaaS business scenarios:
The common scenarios where businesses use Infrastructure cloud services are:
This is the fastest and least expensive method of migrating an application or workload to the cloud. Without refactoring your underlying architecture, you can increase the scale and performance, enhance the security and reduce the costs of running an application or workload.
Test and development:
Your team can quickly set up and dismantle test and development environments, bringing new applications to market faster. IaaS makes it quick and economical to scale dev/test environments up and down.
Storage, backup, and recovery:
Your organisation avoids the capital outlay for storage and the complexity of storage management, which typically requires a skilled staff to manage data and meet legal and compliance requirements. IaaS is useful for handling unpredictable demand and steadily growing storage needs. It also can simplify planning and management of backup and recovery systems.
IaaS provides all the infrastructure to support web apps, including storage, web and application servers and networking resources. Your organisation can quickly deploy web apps on IaaS and easily scale infrastructure up and down when demand for the apps is unpredictable.
High-performance computing on supercomputers, computer grids or computer clusters helps solve complex problems involving millions of variables or calculations. Examples include protein folding and earthquake simulations, climate and weather predictions, financial modelling and product design evaluations.
Advantages of IaaS:
Reduces capital expenditures and optimises costs:
IaaS cloud services eliminate the cost of configuring and managing a physical datacentre, which make them a cost-effective choice for migrating to the cloud. The pay-as-you-go subscription models used by IaaS providers help you reduce hardware costs and maintenance and enable your IT team to focus on core business.
Increases scale and performance of IT workloads:
IaaS lets you scale globally and accommodate spikes in resource demand. That way, you can deliver IT resources to employees from anywhere in the world faster and enhance application performance.
Increases stability, reliability and supportability:
With IaaS, there is no need to maintain and upgrade software and hardware or troubleshoot equipment problems. With the appropriate agreement in place, the service provider assures that your infrastructure is reliable and meets service-level agreements (SLAs).
Improves business continuity and disaster recovery:
Achieving high availability, business continuity and disaster recovery is expensive because it requires a significant amount of technology and staff. But with the right SLA in place, IaaS helps to reduce this cost. It also helps you access applications and data as usual during a disaster or outage.
With the appropriate service agreement, a cloud service provider can offer better security for your applications and data than the security you would attain in house.
Helps you innovate and get new apps to users faster:
With IaaS, once you have decided to launch a new product or initiative, the necessary computing infrastructure can be ready in minutes or hours, rather than in days or weeks. And because you don’t need to set up the underlying infrastructure, IaaS lets you deliver your apps to users faster.
Platform as a service (PaaS)
Platform as a service refers to cloud computing services that supply an on-demand environment for developing, testing, delivering, and managing software applications. PaaS is designed to make it easier for developers to quickly create web or mobile apps, without worrying about setting up or managing the underlying infrastructure of servers, storage, network, and databases needed for development.
Like IaaS, PaaS includes infrastructure—servers, storage and networking—but also middleware, development tools, business intelligence (BI) services, database management systems and more. PaaS is designed to support the complete web application lifecycle: building, testing, deploying, managing and updating.
PaaS allows you to avoid the expense and complexity of buying and managing software licenses, the underlying application infrastructure and middleware, container orchestrators such as Kubernetes or the development tools and other resources. You manage the applications and services you develop and the cloud service provider typically manages everything else.
Common PaaS scenarios:
Organisations typically use PaaS cloud services for these scenarios:
PaaS provides a framework that developers can build upon to develop or customise cloud-based applications. Similar to the way you create an Excel macro, PaaS lets developers create applications using built-in software components. Cloud features such as scalability, high-availability and multi-tenant capability are included, reducing the amount of coding that developers must do.
Analytics or business intelligence:
Tools provided as a service with PaaS allow organisations to analyse and mine their data, finding insights and patterns and predicting outcomes to improve forecasting, product design decisions, investment returns and other business decisions.
PaaS providers may offer other services that enhance applications, such as workflow, directory, security and scheduling.
Advantages of PaaS:
By delivering infrastructure as a service, PaaS offers the same advantages as IaaS. But its additional features—middleware, development tools and other business tools—give you more advantages:
Cut coding time:
PaaS development tools can cut the time it takes to code new apps with pre-coded application components built into the platform, such as workflow, directory services, security features, search and so on.
Add development capabilities without adding staff:
Platform as a Service components can give your development team new capabilities without your needing to add staff having the required skills.
Develop for multiple platforms—including mobile—more easily:
Some service providers give you development options for multiple platforms, such as computers, mobile devices and browsers making cross-platform apps quicker and easier to develop.
Use sophisticated tools affordably:
A pay-as-you-go model makes it possible for individuals or organisations to use sophisticated development software and business intelligence and analytics tools that they could not afford to purchase outright.
Support geographically distributed development teams:
Because the development environment is accessed over the Internet, development teams can work together on projects even when team members are in remote locations.
Efficiently manage the application lifecycle:
PaaS provides all of the capabilities that you need to support the complete web application lifecycle: building, testing, deploying, managing and updating within the same integrated environment.
Software as a service (SaaS)
Software as a service is a method for delivering software applications over the Internet, on demand and typically on a subscription basis. With SaaS, cloud providers host and manage the software application and underlying infrastructure, and handle any maintenance, like software upgrades and security patching. Users connect to the application over the Internet, usually with a web browser on their phone, tablet, or PC. Common examples are email, calendaring and office tools (such as Microsoft Office 365).
SaaS provides a complete software solution which you purchase on a pay-as-you-go basis from a cloud service provider. You rent the use of an app for your organisation and your users connect to it over the Internet, usually with a web browser. All of the underlying infrastructure, middleware, app software and app data are located in the service provider’s data center. The service provider manages the hardware and software and with the appropriate service agreement, will ensure the availability and the security of the app and your data as well. SaaS allows your organisation to get quickly up and running with an app at minimal upfront cost.
Common SaaS scenarios:
If you have used a web-based email service such as Outlook, Hotmail or Yahoo! Mail, then you have already used a form of SaaS. With these services, you log into your account over the Internet, often from a web browser. The email software is located on the service provider’s network and your messages are stored there as well. You can access your email and stored messages from a web browser on any computer or Internet-connected device.
The previous examples are free services for personal use. For organisational use, you can rent productivity apps, such as email, collaboration and calendaring; and sophisticated business applications such as customer relationship management (CRM), enterprise resource planning (ERP) and document management. You pay for the use of these apps by subscription or according to the level of use.
Advantages of SaaS:
Gain access to sophisticated applications:
To provide SaaS apps to users, you don’t need to purchase, install, update or maintain any hardware, middleware or software. SaaS makes even sophisticated enterprise applications, such as ERP and CRM, affordable for organisations that lack the resources to buy, deploy and manage the required infrastructure and software themselves.
Pay only for what you use:
You also save money because the SaaS service automatically scales up and down according to the level of usage.
Use free client software:
Users can run most SaaS apps directly from their web browser without needing to download and install any software, although some apps require plugins. This means that you don’t need to purchase and install special software for your users.
Mobilise your workforce easily:
SaaS makes it easy to “mobilise” your workforce because users can access SaaS apps and data from any Internet-connected computer or mobile device. You don’t need to worry about developing apps to run on different types of computers and devices because the service provider has already done so. In addition, you don’t need to bring special expertise onboard to manage the security issues inherent in mobile computing. A carefully chosen service provider will ensure the security of your data, regardless of the type of device consuming it.
Access app data from anywhere:
With data stored in the cloud, users can access their information from any Internet-connected computer or mobile device. And when app data is stored in the cloud, no data is lost if a user’s computer or device fails.
Overlapping with PaaS, serverless computing focuses on building app functionality without spending time continually managing the servers and infrastructure required to do so. The cloud provider handles the setup, capacity planning, and server management for you. Serverless architectures are highly scalable and event-driven, only using resources when a specific function or trigger occurs.
Serverless cloud services enable developers to build applications faster by eliminating the need for them to manage infrastructure. With serverless applications, the cloud service provider automatically provisions, scales and manages the infrastructure required to run the code.
In understanding the definition of serverless computing, it is important to note that servers are still running the code. The serverless name comes from the fact that the tasks associated with infrastructure provisioning and management are invisible to the developer. This approach enables developers to increase their focus on the business logic and deliver more value to the core of the business. Serverless computing helps teams increase their productivity and bring products to market faster and it allows organisations to better optimise resources and stay focused on innovation.
Advantages of Serverless:
No infrastructure management:
Using fully managed services enables developers to avoid administrative tasks and focus on core business logic. With a serverless platform, you simply deploy your code and it runs with high availability.
With serverless computing, the infrastructure dynamically scales up and down within seconds to match the demands of any workload.
Faster time to market:
Serverless applications reduce the operations dependencies on each development cycle, increasing development teams’ agility to deliver more functionality in less time.
More efficient use of resources:
Shifting to serverless technologies helps organisations reduce TCO and reallocate resources to accelerate the pace of innovation.
Vivek is a Senior Embedded Engineer at Robert Bosch. He has been working on Embedded Systems for the past 10 years. He loves to share his knowledge and train those who are interested. Nerdyelectronics.com was started out of this interest.