Serverless computing feels like it’s been a “hot trend” forever. Even before AWS Lambda first introduced the concept in 2014, it’s been hailed as both a saviour and a curse, finding its way onto countless lists of IT and software development trends. So, what’s the truth, where is it going, and why are we still talking about it?
The reality is that serverless computing is old news, it’s just that very few people did it right. Businesses, now, are going back to restructure their adoption of serverless computing in order to deploy it in ways that actually work. The real reason that everyone keeps talking about serverless is that many businesses are still in the process of trying to leverage its true potential.
Put simply, the future of serverless computing is one where serverless is taken off its pedestal and viewed as just one option among many. Too often, serverless either ends up dismissed as hype or touted as a solution to everything without context about how and why it should be deployed. Here, we are going to demystify serverless computing by explaining where it’s beneficial and where it creates problems. Let’s get started.
What is serverless computing, really?
Serverless computing is a bit of a misnomer because you’re still using servers, you’re just making the management of those servers someone else’s problem — it’s serverless… from your point of view. In reality, serverless computing is just a type of cloud computing. And, for some reason, everyone just decided to bin the “as-a-service” acronym for this layer of the cloud stack. Understanding where serverless fits in is easiest with a diagram.
So, serverless is one layer down from SaaS. Your teams are still responsible for developing application functionality, but everything else is basically handed to you as-a-service. This configuration enables developers to focus on adding features and functionality to applications and optimising code — aka, what they do best — without having to worry about the infrastructure and how to scale in response to demand.
Note: Serverless also gets used to talking about the move from a monolithic architecture to microservices. Realistically, this has more to do with the fact that microservices just work really well in a serverless (and cloud) environment — more on that later.
Advantages of serverless computing
For those businesses looking for a faster path to product delivery, serverless computing offers the following benefits.
- Transparent costs: Using the cloud minimises upfront equipment costs and ongoing maintenance challenges. Depending on your use case, this can dramatically reduce total cost of ownership. However, what it will do for certain is provide you with cost transparency and (depending on your SLAs) guarantee that you only pay for what you use.
- Productivity boosts: Developers can build serverless applications faster because they do not need to worry about server administration. Fewer resources are required to launch a minimal viable product that can be quickly updated with added functionality, while avoiding common minimum value problems. When updating an application, developers can upload changes and let the cloud make adjustments as needed.
- Simpler scalability: Being able to scale as workloads change means developers do not have to worry about capacity. Cloud infrastructure allows for rapid deployment of added resources. It also releases resources when no longer needed. During high-traffic times, end-users do not experience delays in response time because the technology automatically adjusts.
What’s gone wrong with serverless adoption to date?
The big problem that businesses have had with serverless is the same issue they’ve had with the cloud more generally. Rather than thinking about the benefits of the infrastructure and deploying it selectively, wholesale moves have been made that bring applications into the cloud that weren’t really built with the cloud in mind. At best, this creates inefficient applications that can’t really take advantage of the infrastructure. At worst, this can break application functionality.
Realistically, there are four common mistakes that we see businesses make all of the time. Sometimes, these are legacy decisions that organisations are still trying to resolve, sometimes they are poor choices that are in the process of being made today. In all cases, they are things that you want to avoid and are the main things you need to know about serverless.
Mistake 1: Thinking it’s all or nothing
We’ve already addressed this, but it’s the number one problem. Companies often believe that if they move to serverless, everything should move — this, simply, isn’t true. It’s very possible to manage and run a hybrid and multi-cloud infrastructure. And, there are many reasons to do this:
- Legacy architecture: The big one is moving legacy applications into the cloud — for example, your old ERP system you’ve been using forever. Non-cloud-native applications aren’t built to take advantage of cloud-based scalability, limiting the value of moving to the cloud. They also aren’t always built with the latency or on-demand requirements of the cloud in mind. This can lead to end-user issues, or simply end up costing more than is necessary.
- Latency: Related to the last point, applications do not run continuously in a serverless environment. Instead, they are powered down between requests. When a request is received, the provider activates the resources to respond. Spinning up dormant code takes time. If applications require fast response times, latency could pose a problem.
- Security and privacy: The cloud is secure, but you are operating on shared infrastructure. When it comes to really sensitive data, sometimes you want to keep in on-premise
Remember, serverless isn’t the only type of cloud. So, not only is this a question of cloud vs. on-prem, it’s also a question about different types of clouds. For example, having serverless applications definitely shouldn’t stop you from using SaaS. Fundamentally, just use serverless where it makes sense. This will also help with adoption by massively lowering the barrier to getting started.
Mistake 2: Choosing a platform too early
Deciding on a serverless platform before knowing what applications will be built is like laying a foundation before knowing what will be constructed. Platform providers such as Google Cloud, AWS, or Azure are not created equal. Each has its strengths and weaknesses, and each is designed to maximise the use of its product offerings. For example…
- Microsoft’s Azure works well with companion products such as .NET. Plus, support teams are available to help customers get the most out of their investment.
- If an implementation requires interfacing with multiple systems, Google Cloud has numerous APIs to simplify integration.
Deployment can be more of a plug-and-play solution, making for faster-to-market deliveries. Knowing what capabilities are needed should be the first step in finding the best cloud provider. You also need to make sure to avoid vendor lock-in.1 At the very least, if you do get locked in, make sure it’s with the right vendor.
Mistake 3: Thinking serverless is always cheaper
The cloud is generally cost-effective. However, the pay-as-you-go pricing model may not always be the cheapest. For organisations with unpredictable workloads, providers may require an over-provisioning of resources to address moderate fluctuations in demand. In some instances, organisations are still paying for unused resources.
Execution costs may increase if multiple instances are required to meet performance demands. Higher per-hour costs may result even though resource usage declines. Deciding on a platform before knowing the resource requirements can actually make the serverless solution cost-prohibitive.
Mistake 4: Migrating the wrong applications
As we addressed in mistake one, some applications work well on distributed architectures using event-driven triggers like serverless, others do not. Again, the biggest issue here is legacy programs that weren’t built for the cloud. For example, monolithic architecture generally doesn’t work as well in the cloud as microservices. However, there are two other big things to keep in mind when it comes to which applications will work in the cloud.
- Performance limitations: Cloud providers may restrict resources, setting a limit on how many resources are consumed. If you need high-performance computing, serverless operations may not be a viable option. Even if you don’t see resource limitations as an issue, you should consider provider limitation policies.
- Monitoring and debugging challenges: Debugging serverless code can be challenging. The environment is not ideal for rapid identification of possible flaws because detailed reporting is not always available. What’s more, monitoring in a serverless system operates differently from a process on a local server. IT staff and developers should evaluate monitoring requirements to ensure they match the environment. Monitoring can provide more data on how functions are performing, but personnel must know how to access the information.
Fundamentally, you need to select applications that can manage latency, operate on demand, and take advantage of the scalability offered by the cloud. For legacy applications, significant updates are often required to make them work, which isn’t always the most cost-effective solution.
The future of serverless computing is already here
Serverless is a great option for many organisations. It limits the number of things your teams need to think about while still freeing them to develop whatever custom application functionality you need. Serverless just shouldn’t be thought of as the only solution. It needs to be applied selectively and within contexts where it makes sense.
The good news is that selective adoption of serverless should actually make it easier to get started. Rather than thinking about how you can move your entire application ecosystem to a serverless environment, instead consider which applications would benefit from serverless architecture. Fundamentally, the future of serverless is bright. The adoption of the architecture has grown since its inception in 2014.2 Today…
- Increased demand for media and digital content is driving serverless growth for the telecommunications and information technology sectors, with a market share of over 20%.
- The financial sector uses the architecture to deliver real-time applications that scale. The CAGR for serverless computing in this sector is expected to exceed 25%.
- Widespread use of IoT is fuelling demand for serverless infrastructures, especially in North America, where it is expected to have 45% of the market by 2026.3
Pairing an application with the best architecture enables organisations to develop a high-performing operation made up of the most innovative infrastructures. Serverless computing should be one of those options. Still not sure what you think about serverless computing for your business? Get in touch with us today and we’ll help you devise a strategy that allows you to scale your business successfully — serverless or not.