Serverless Computing for Dummies

3

JUNE, 2022

by Eric Goebelbecker

What Is Serverless Computing?

Serverless computing is a cloud architecture where you don’t have to worry about buying, building, provisioning, or maintaining servers. In return for structuring your code around their APIs, your cloud provider takes care of that for you. Let’s go over some of the more common serverless computing offerings.

Functions As a Service

Many people immediately think of Functions as a Service (FaaS) when they think of serverless computing. It’s the most widely used implementation of this type of architecture, and it’s popular for several practical reasons.

With FaaS, you upload your code to your cloud provider, and they run it for you. Depending on how you configure your function, they’ll scale it based on how many clients request it simultaneously, and you pay based on how many times your code runs.

This power doesn’t come for free; you have to write your code like a function. Each cloud provider publishes an API, usually in several different programming languages, with rules about what arguments users will pass to your code and what you need to return. There are limitations to what a function can do, which we’ll cover below.

Popular examples of FaaS are Amazon’s AWS Lambda, Google’s Cloud Function, and Microsoft Azure Functions.

Database As a Service

Database as a service (DBaaS) is aptly named. Instead of maintaining a database server, either on-premises or on a cloud virtual machine, the cloud vendor supports the database server for you.

You pay for DBaaS based on how much data you store and how often you access it. This may be less expensive than paying for dedicated cloud servers and storage you need to run a reliable database cluster, especially when you factor in the effort required to build and maintain them.

Amazon’s AWS offers several different DBaaS products, including RDS and Aurora. Google offers Cloud databases, while Microsoft has Azure SQL Database.

Storage As a Service

Storage as a service (SaaS) is on-demand cloud storage. Like the computing model in FaaS and DBaaS, you pay for the storage you need as long as you use it and each time it’s accessed.

Unlike the storage you buy when you set up cloud servers, you can use this storage anywhere. You can limit it to your cloud resources, or you and your clients can access it from the Internet. You can also specify what kind of redundancy or backups you need.

Amazon’s Simple Storage Service (S3) is one of the most widely used SaaS products. Azure Storage and Google Cloud Storage are two more examples.

Why Use Serverless?

Pay As You Go

In contrast to cloud servers and standard cloud storage, serverless services bill you for what you use.

With virtual machines, you pay for resources allocated to each virtual machine. So if you think your server’s peak memory usage will be 32GB, you have to build it with that much memory in advance. The situation is the same with CPU and disk utilization. You must estimate what your system needs and pay for maximum load, regardless of how often your servers reach it.

With serverless, your costs start at zero and go up based on usage. So with storage as a service, you pay for the storage you use. As storage goes up, you pay more; if it goes back down, you pay less. With DBaaS, you pay for storage and usage. For FaaS, you pay for how often your functions run.

With serverless, your costs start at zero and go up based on usage

Serverless Means Less Time Spent on Servers

The cost savings with serverless doesn’t stop with how much you pay for the services. How much money do you save by not having to maintain servers?

Whether running them in the cloud or on-premises, servers must be created and maintained. They need software patches, and you have to monitor them. Database servers require highly specialized staff.

In other words, they require engineering staff that’s taking care of servers instead of focusing on your business issues and clients.

Serverless eliminates these tasks, which means that you need fewer engineering staff, and the team you do have is working on your business applications.

Serverless Means More Time Spent on Your Business

One of cloud computing’s success stories is how it’s helped businesses spend less time on infrastructure and more time on business problems. Serverless computing is a logical step in that process.

If your engineering staff doesn’t have to keep infrastructure running, they have more time to focus on your customers.

The change in focus applies to your development staff too. They can focus their design and implementation efforts on solving your business problems and improving your customer’s experience. FaaS APIs are relatively simple, so the bulk of their work is spent developing functions that apply to your business and getting them to work together.

Serverless Means Scalability and Reliability

Even though we’ve mentioned scalability and reliability a few times above, they’re worth mentioning again.

When you use FaaS, your cloud provider runs your functions on their servers. Keeping those servers running is their problem, and they’ve proven their ability to run reliable systems.

When you provision a function, you set a budget. Based on how much you’re willing to spend, the provider will run more or fewer functions based on demand.

DBaaS and SaaS come with scalability and reliability baked in too. Again, you may have to pay more, but you don’t have to design or maintain it either.

Why Not Use Serverless?

Serverless sounds like a breakthrough in cloud architecture and a game-changer for building a scalable, reliable, and cost-efficient architecture. But it’s not for everyone, and there are some downsides.

FaaS Design

A FaaS application isn’t really an application. It’s a function in the programming sense. You call it with a set of inputs, and it responds with a result. Each time you call the function with that set of inputs, the result must be the same, or there’s something wrong with the function.

Functions can’t rely on storing information in memory since they can be stopped and started at any time by the cloud provider. That’s how they’re able to offer you scalability on demand. Your functions can store information in a database or file storage, though. Functions also have time limits, so they can’t spend too much time communicating with external resources.

Client applications can’t rely on being connected to a single instance of a function either, for the same reason. That function might not be there anymore since the cloud infrastructure creates and destroys them on the fly. Any application state has to be stored in the client application or in data stores that your functions can quickly access.

Moving an app to FaaS, or designing a new one for it, means decomposing it into functions. Each one of these functions needs to be fast and essentially stateless. This kind of architecture was common even before the rise of FaaS, but any legacy applications aren’t a good fit and need to be rewritten from the ground up.

Vendor Lock-In

Cloud infrastructure always comes with the risk of vendor lock-in. Cloud vendors have different ideas on how things should work, and they don’t want you to leave their infrastructure for another.

Cloud infrastructure always comes with the risk of vendor lock-in.

SaaS services have unique APIs and their own quirks. While many DBaaS services use standard database services under the covers, they all have specific ways of managing connections and authentication.

FaaS implementations have their own APIs and limitations on which back-end services function can access and how they are reached.

Serverless Computing Is Here to Stay

We’ve covered what serverless computing is, what some different serverless offerings look like, and how you can use them to improve your IT infrastructure. It can help you save money and shift your focus to what makes your business special. It’s time to look at how serverless can help you take your IT to the next level.

 

Next Steps – Enhance your IT Environment Management

Want to see how you can uplift your IT & Test Environment Management, including serverless.

Why not ask us about our IT & Test Environment Management solution.

Helping you manage your Production & Non-Production Environments through System Modelling, Planning & Coordination, Booking & Contention Management, Service Support, Runsheeting, DevOps Automation and centralized Status Accounting & Reporting.

Innovate with Enov8, the IT Environment & Data Company.

Specializing in the Governance, Operation & Orchestration of your IT systems and data.

Delivering outcomes like

  • Improved visibility of your IT Fabric,
  • Streamlined Delivery of IT Projects,
  • Operational Standardization,
  • Security & Availability,
  • DevOps / DataOps Automation,
  • Real-Time insights supporting decision making & continuous optimization.

Our Key solutions include

 

Post Author


Eric Goebelbecker
Eric has worked in the financial markets in New York City for 25 years, developing infrastructure for market data and financial information exchange (FIX) protocol networks. He loves to talk about what makes teams effective (or not so effective!).

Relevant Articles

Technology Roadmapping

Technology Roadmapping

In today's rapidly evolving digital landscape, businesses must plan carefully to stay ahead of technological shifts. A Technology Roadmap is a critical tool for organizations looking to make informed decisions about their technological investments and align their IT...

What is Test Data Management? An In-Depth Explanation

What is Test Data Management? An In-Depth Explanation

Test data is one of the most important components of software development. That’s because without accurate test data, it’s not possible to build applications that align with today’s customers’ exact needs and expectations. Test data ensures greater software security,...

PreProd Environment Done Right: The Definitive Guide

PreProd Environment Done Right: The Definitive Guide

Before you deploy your code to production, it has to undergo several steps. We often refer to these steps as preproduction. Although you might expect these additional steps to slow down your development process, they help speed up the time to production. When you set...

Introduction to Application Dependency Mapping

Introduction to Application Dependency Mapping

In today's complex IT environments, understanding how applications interact with each other and the underlying infrastructure is crucial. Application Dependency Mapping (ADM) provides this insight, making it an essential tool for IT professionals. This guide explores...

What is Smoke Testing? A Detailed Explanation

What is Smoke Testing? A Detailed Explanation

In the realm of software development, ensuring the reliability and functionality of applications is of paramount importance. Central to this process is software testing, which helps identify bugs, glitches, and other issues that could mar the user experience. A...

What is a QA Environment? A Beginners Guide

What is a QA Environment? A Beginners Guide

Software development is a complex process that involves multiple stages and teams working together to create high-quality software products. One critical aspect of software development is testing, which helps ensure that the software functions correctly and meets the...