All Blog Posts

Serverless Computing vs. Cloud Computing: What’s the Difference?

esther carlson
esther carlson

When IT pros first see or hear the phrase serverless computing, their minds go in multiple directions. Is it true – a world without servers? Can I go back to just being a developer and writing code to solve business problems? The answers are: no, servers are not going away and yes, mostly – adopting serverless computing will be instrumental in getting developers back to their primary focus on building and deploying new products. One of the first questions that may come up is “what’s the difference when it comes to serverless computing vs. cloud computing?”

Serverless computing shifts server provisioning and compute management away from developers, operations, or DevOps teams to a cloud provider. Servers will continue to be used; but unlike cloud computing, the resources will be allocated on-demand and billed on a pay-as-you-go basis.

The adoption of serverless is growing quickly. A worldwide IDC survey of more than 3,000 developers, 55.7% of respondents indicated they are currently using or have solid plans to implement serverless computing on public cloud infrastructure.

To fully address serverless computing vs. cloud computing we’ll start with a review of cloud computing that covers the four main types of solutions, including serverless.

What is Cloud Computing?

A quick search for the definition of cloud computing produces several variations that include these two definitions:

First, here’s a dictionary definition that keeps it fairly simple:

“The practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than a local server or a personal computer.”

A longer definition from Microsoft Azure provides more detail:

“Simply put, cloud computing is the delivery of computing services — servers, storage, databases, networking, software, analytics, intelligence and moreover the Internet (“the cloud”) to offer faster innovation, flexible resources, and economies of scale. You typically pay only for cloud services you use, helping lower your operating costs, run your infrastructure more efficiently, and scale as your business needs change.”

Cloud computing can support companies of all sizes and workloads that have been designed to run in the cloud or originated as traditional client-server workloads that were operated on-premises and then migrated to the cloud.

Abstract Image of Cloud Computing

Image by Gerd Altmann, Pixabay

Types of Cloud Computing Solutions

There are four main types of cloud computing services that address specific compute requirements and are sometimes referred to as a stack since they focus on specific functions within cloud computing.

  1. IaaS, Infrastructure as a Service, is used by companies to rent servers and virtual machines (VMs) along with other infrastructure related to storage, networks, and operating systems.

The cloud provider manages scalability, initial provisioning of the system, and connectivity while the client owns the responsibility to monitor and manage the system, its maintenance and firewall aspects.

  1. PaaS, Platform as a Service, is used by companies to build, deploy, and manage applications and services that are delivered via the internet and accessed by users via a web browser.

As demand grows, businesses can simply scale their contracted resources with the cloud provider.

  1. SaaS, Software as a Service, offers companies the ability to essentially rent the use of an app, such as an email application, for their users who connect to it over the Internet, usually with a web browser. 

There’s no hardware or software to install and manage, and the cloud provider is responsible for ensuring the availability and security of the app and associated data.

  1. Serverless is the newest type of cloud computing in this stack. While the term could easily convey the ability to “compute without servers”, that’s not quite the case. 

Serverless computing provides a solution for companies looking for a way to run code without managing the complex, always-on, server infrastructure.

The adoption of serverless is growing quickly. A worldwide IDC survey of more than 3,000 developers, 55.7% of respondents indicated they are currently using or have solid plans to implement serverless computing on public cloud infrastructure.

Server-side applications are separated into separate functions. Each function performs a specific task and can be launched on-demand and scaled individually.

Instead, companies can focus on getting business done – which, of course, includes the development, testing, and deployment of new software and services.

More about serverless computing vs. cloud computing to follow further into this post.

Cloud Deployment Models

Several deployment models are common to Cloud Computing and address specific business use cases. 

Public Cloud was the original deployment model for cloud computing. It includes many providers and services that can be used for both application and infrastructure hosting. Three of the most recognized providers are Amazon Web Services, Microsoft Azure, and Google Cloud Platform.

Private Cloud refers to a cloud computing environment that runs on-premise. It is used primarily by enterprise companies in industries such as financial services or healthcare, with strict privacy or security concerns and stringent compliance requirements. 

Hosting a private cloud allows companies some of the advantages of a public cloud while retaining full control of data and mission-critical operations. IT teams can deliver a specific cloud environment such as IaaS or PaaS by using virtualization plus automated provisioning.

Hybrid Cloud deployments typically exist when a company is operating a private cloud and also using a public cloud. It’s common for private and public clouds to be integrated into a hybrid cloud environment when data and applications need to be shared between the two computing environments.

Multi-cloud deployment models offer the most flexibility since they can include any combination of private, public and hybrid clouds. Businesses may have multiple public and private clouds or multiple hybrid clouds that may or not be connected.

A survey of IT leaders in large companies (more than 500 employees) by operations management provider OpsRamp, found that three-quarters of respondents said they expect to work with different cloud providers to meet their business needs.

Image of OpsRamp Statistic in Content - 75% will use multiple cloud providers

Multi-cloud offerings are becoming the deployment of choice for several reasons:

  • Avoiding vendor lock-in 
  • Enabling scalability across multiple providers 
  • Preventing data loss or downtime due to an outage or failure by a single provider

However, the sheer complexity of multi-cloud can be a show-stopper for many companies. “The biggest cause for hesitation around multi-cloud adoption is that deploying cloud platforms and services from multiple vendors is complicated, especially when it comes to pulling them together in a way that doesn’t hinder productivity or innovation,” says Stephan Fabel, director of products at open-source software company Canonical.

The Upside and Downside of Cloud Computing

There are advantages and disadvantages that IT teams must evaluate as they contemplate the move to cloud computing. First the upside:

Cost-Effective: One of the key reasons companies shift to the cloud is to lower their IT infrastructure costs by eliminating upfront investments for hardware and only being charged for allocated resources.

Ease of Implementation and Access – The same applications and business processes are used – minus the headache of dealing with backend technical details. Enterprise IT teams can easily and quickly access their cloud infrastructure via the Internet.

Scalable – As companies experience significant growth, their cloud infrastructure can be scaled rapidly and efficiently to meet the increased demand.

Secure: Earlier concerns about security with cloud computing have been addressed and now companies view the cloud as potentially more secure than their on-prem infrastructure. 

A survey published by Clutch found that enterprises listed cloud security as a key benefit of using the cloud (cited by 45 percent of respondents). 

Now let’s look at what IT Ops Teams need to be aware of as possible downsides to cloud computing. 

Less control – Although IT Ops Teams do have full control of applications, data, and services, they are reliant on the provider to manage their back-end infrastructure. 

Security – While this was also listed as a perceived advantage, it does linger as a concern for companies with significant privacy and compliance requirements. 

That said, if data breaches continue to plague large enterprises – it may accelerate enterprise adoption of public cloud computing.

The good news about security concerns comes from RightScale survey respondents who confirmed that significant concerns in the earlier years of cloud computing have consistently decreased over time. 

Keep in mind that any of these concerns can be addressed upfront by performing due diligence that results in selecting a cloud computing provider with a proven track record.

Research on cloud computing continues to validate the accelerated growth of cloud computing. The 2019 RightScale® State of the Cloud Report from Flexera reported:

  • 94 percent of respondents use the cloud.
  • Public cloud adoption is 91 percent and private cloud adoption is 72 percent.
  • 69 percent of respondents use at least one public and one private cloud.

Finally, Gartner predicts that by 2025, 80% of enterprises will move entirely away from on-prem data centers, in contrast to 10% today.

Abstract Imagery to Support Serverless Computing Content

Image by Gerd Altmann, Pixabay

More about Serverless Computing

As mentioned earlier, serverless means that developers in particular, no longer have to deal with the infrastructure required for building an application. Yes, the application still runs on a server, but it’s now up to the provider to provision, scale and maintain the servers. 

Since developers no longer have to think about servers this equates to operating in a serverless environment.

The beauty of serverless computing is that it disrupts the pricing model of cloud computing. Instead of paying for pre-defined computing capacity and storage, companies only pay for the resources consumed by their application – down to a millisecond – or 100th of a second. Some providers also charge for the number of requests – in addition to the duration.

This raises the question of when an application would run for seconds or milliseconds versus minutes or hours. Serverless computing introduces the use of functions, which are small pieces of code designed to complete specific requests – independently. Here’s one simple example of how this works:

The Seattle Times, with its 7 million unique visitors per month, knew they needed a faster way to get their images resized – especially for breaking news stories. They discovered it was possible to implement a serverless function for the sole purpose of resizing images. The serverless function completes this process simultaneously versus the previous process of converting images one at a time, to a uniform format and the required sizes, based on pre-set specifications.  

In this example, the function is only operating on-demand instead of indefinitely. The function spins up to complete a user request or in response to a specific event (such as an image upload), and winds down immediately when the task is complete. Completing a task may only require the function to run a few seconds or milliseconds. 

It’s important to note that managing and deploying functions is referred to as function-as-a-service (FaaS) and considered by some to be synonymous with serverless computing. 

Finally, serverless computing is not limited by industry or use case. In addition to improving the development process overall, serverless computing can also be useful for enhancing the end-user experience of applications and accelerating various forms of analysis for data scientists and researchers.

Serverless Computing Advantages and Potential Concerns

Similar to cloud computing, serverless computing comes with its own set of pros and cons. First the pros:

  • Server Management – There is no need for client developers or operations teams to manage or interact with a server which reduces the amount of configuration required outside the application.
  • Cost – Computing resources are supplied as needed to scale a site automatically. Clients only pay for the resources that are consumed – to the millisecond.
  • Scalability – Resources are allocated precisely according to the requirements built into functions and applications.
  • Faster time to market – Developers and businesses are free to focus solely on product development, deploying new features more frequently.

These advantages can be extended to why serverless computing may be a better alternative to cloud computing. Again, it depends on specific use cases.

There are potential concerns associated with serverless computing.

  • More complexity – Many separate functions are being orchestrated across a distributed serverless system. 
  • High latency – Cold starts occur more frequently in serverless as functions are initialized on-demand and in effect, need to wake up. 
  • Increased monitoring is a must – A high volume of discrete pieces of code or functions running independently makes IT operations teams need comprehensive monitoring tools to identify problems in production sooner rather than later. 
  • Costs vary – Since serverless computing costs are based on actual usage, the serverless hosting bill will vary month to month

Vendor lock-in is a legitimate concern for both cloud computing and serverless computing. Cloud service providers each have different required formats and deployment methods. This will make the prospect of changing vendors a potentially painful one.  

When possible, companies should focus on finding and committing to a platform that offers them the most benefits and integrations across provider services. If multi-cloud is the deployment model of choice, expect to put in extra effort to prepare for implementation and monitoring.

Finally, open-source solutions are being released that can aid in simplifying implementations that involve more than a single cloud provider.

Wrapping up

Understanding serverless computing vs. cloud computing is important. There are pros and cons to selecting any of the types of cloud computing and deployment models.  Remember, serverless is just another tool in the stack of cloud computing — to be implemented for specific use cases. For companies that are committed to delivering software better, then serverless needs to be part of the equation. Serverless should complement existing cloud or on-prem solutions versus using it to replace every other application host.

To learn more about the next generation of serverless computing, Contact Us for an introduction to Dis.co, the simple and secure serverless computing system that helps you avoid vendor-lock and more.

esther carlson
esther carlson

Most recent articles

What Technology Tools Can Help Data Scientists?

To say the field of Data Science is exploding is truly an understatement. It only takes one statistic to be…

esther carlson
esther carlson

Serverless Computing vs. Cloud Computing: What’s the Difference?

When IT pros first see or hear the phrase serverless computing, their minds go in multiple directions. Is it true…

esther carlson
esther carlson

What is Serverless Computing?

How many developers would prefer spending more of their time building new products that create value rather than configuring and…

esther carlson
esther carlson

What is DevOps and Why You Should Care

Customers have set the bar high when it comes to their expectations for speed and responsiveness, on-demand availability, easy access…

esther carlson
esther carlson