What is Serverless Computing?
Serverless computing explained
As you launch new applications, roll out upgrades, or run successful marketing campaigns the demand on your servers changes. If you’re operating on a tight budget with limited resources, that can cause potential issues. Sudden uplifts in activity can mean you need to spend more time - and money - upgrading your servers to meet the demand.
Instead, you could partner with a cloud vendor that will take care of the infrastructure for you. Giving you capacity when you need it and taking it away when you don’t, saving you a tonne of money and giving your developers more time to focus on their code. All through the power of serverless technology.
How does serverless work?
Serverless computing is a method of providing backend services on an as-used basis. A serverless provider allows users to write and set up code without the hassle of worrying about the underlying infrastructure.
In the serverless model, these sorts of back-end functions are disparate pieces of code that sit dormant until needed. When a user completes an action to trigger the code, the serverless vendor kicks in and allocates space - allowing for a seamless transition. By using serverless technologies, platforms can be dynamically adjusted, ensuring usage and costs are perfectly aligned to demand.
As enterprises continue to implement cloud-first strategies, serverless architectures are becoming increasingly popular. Especially since every major cloud service provider - including AWS & Microsoft Azure - now offers serverless computing.
Does serverless mean no servers?
The term serverless can be a little misleading. If there’s data, there’ll always be servers in some form or another. Instead, think of serverless computing as “out of sight and out of mind”.
Serverless still relies on physical servers, but they are taken care of by your vendor.
Watch our serverless jargon buster video and get the lowdown on serverless in less than 2 minutes: Say Hello to Serverless Computing | Nasstar
What are the benefits of serverless?
Move from idea to market faster
Serverless architecture takes the burden of server management away from engineers. Therefore, they can concentrate solely on their code to build better applications.
Going serverless also eliminates operational overhead, allowing your teams to release, get feedback and iterate quickly – helping you get to market faster.
Lower your costs
Serverless works on a pay-as-you-use model, meaning - not surprisingly - you only pay for what you use. When demand is high your vendor will allocate more capacity and then remove it when demand drops, auto-scaling to meet your requirements.
Serverless can also lower your overall Total Cost of Ownership (TCO) since the networking, security, and DevOps management tasks are included in the cost of the service.
Adapt at scale
Serverless will help you adapt to customer needs by automatically scaling from zero to peak when demand is high. This creates a smoother, more consistent user experience no matter the demand.
Build better applications, easier
Instead of needing a complicated deployment process to roll out bug fixes and new features, developers can add and modify code on a piecemeal basis.
Any other benefits of going serverless…?
Along with those listed above, other benefits include improved employee productivity; greater adaptability to dynamic marketplace changes; and fault tolerance and redundancy of the underlying architecture are all covered by the cloud service provider.
With serverless computing, developers can create and run code directly from within the cloud without any additional hardware or software – saving money and reducing development time.
Function as a Service
One of the most popular serverless components is Function as a Service (FaaS). A platform allowing developers to write modular pieces of code when needed that can be executed in response to specific events or requests. AWS Lambda is one of the most widely used FaaS platforms and can be integrated with over 200 AWS services.
FaaS enables developers to run code or software containers without specifying or managing the infrastructure required to run the code.
FaaS is central to serverless, and the two terms are often used interchangeably. However, in addition to FaaS, serverless also offers:
- Serverless databases and storage: Databases (SQL and NoSQL) and storage (particularly object storage) are the foundation of the data layer. A serverless approach to these technologies involves transitioning away from provisioning “instances” with defined capacity, connection, and query limits and moving toward models that scale linearly with demand in both infrastructure and pricing.
- Event streaming and messaging: Serverless architectures are well-suited for event-driven and stream-processing workloads most notably the open-source Apache Kafka event streaming platform.
- API gateways: API gateways act as proxies to web actions and provide HTTP method routing, client ID and secrets, rate limits, CORS, viewing API usage, viewing response logs and API sharing policies.
Another serverless compute option is AWS Fargate. With Fargate, you don’t need to provision and manage servers or clusters, making it easier to run containers.
AWS Fargate is compatible with Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS).
Serverless Computing vs Cloud Computing
Many cloud-based services share attributes with serverless computing, including:
- BaaS - Backend as a Service allows developers to outsource the administration of back-end functions.
- PaaS - Platform as a Service enables you to develop and set up products within the cloud environment.
- IaaS - Infrastructure as a Service allows you to do almost everything involving a website or app within the cloud environment.
Serverless computing differs from these other cloud computing models. With serverless, the vendor is responsible for managing both the scaling of apps and the infrastructure itself. The only thing customers need to concern themselves with is their code because serverless apps are deployed in containers that automatically launch and scale on demand.
In most cases, you'll need to either talk with your BaaS, PaaS, or IaaS vendor or scale up capacity yourself when you need more space. For example, with a typical IaaS cloud computing model, users prepurchase units of capacity. They pay a cloud provider for always-on server components to run their apps. Making it the user’s responsibility to scale up server capacity during times of high demand and to scale down when necessary.
With serverless architecture, apps are launched only as needed. When an event triggers, the cloud vendor allocates resources for the associated code. Customers will stop paying when the code finishes executing.
Pros and cons of serverless
|Lower costs||Potential security risks|
|Simplified scalability||Reduced overall control|
|Improved application quality||Architectural complexity|
|Faster time to market||Vendor lock-in|
The Challenges of Serverless
Issues with infrastructure
Serverless offers many advantages, having a vendor take care of server infrastructure is one of them. However, if your chosen vendor suffers from a hardware fault or a data centre outage, your products and applications will too.
Cold starts are also a concern. They happen when functions are spun up after long periods of inactivity, adding several precious seconds of latency to code execution.
There’s a possibility that your cloud provider will run code from many of their customers on the same server at the same time. If the cloud provider hasn’t configured that shared server properly, it might leave your application exposed.
Handing over control of your server stack could also make you vulnerable to vendor lock-in. It’s certainly possible to mix and match elements from several vendors, but a lot of the services on offer are designed to integrate with those of the same provider.
Say you do decide to stick to one vendor. If you ever wanted to switch to another, the costs might be substantial.
Making the right choice
The good news is that AWS, Microsoft, and other vendors continue to build on their serverless offerings. For many businesses looking to increase developer productivity and reduce operational costs, the advantages of going serverless greatly outweigh these potential challenges.
Use Cases for Serverless Computing
Serverless is incredibly flexible and can be used to address a wide variety of application problems. Developers who want to decrease their go-to-market time and build lightweight, flexible applications that can be expanded or updated quickly may benefit greatly from serverless computing.
According to the Cloud Native Computing Foundation (CNCF), the top 10 serverless examples include:
|Multimedia processing||Implementing functions that execute a transformational process in response to a file upload.|
|Database changes or change data capture||Auditing or ensuring changes meet quality standards.|
|IoT sensor input messages||The ability to respond to Internet of Things (IoT) messages and scale in response.|
|Stream processing at scale||Processing data within a potentially infinite stream of messages.|
|Chatbots||Scaling automatically for peak demands.|
|Batch jobs scheduled tasks||Jobs that require intense parallel computation, IO or network access.|
|HTTP REST APIs and web apps||Traditional request and response workloads.|
|Mobile back ends||Ability to build on the REST API backend workload above the Mobile-Backend-as-a-Service (MBaaS) APIs.|
|Business logic||The orchestration of microservice workloads that execute a series of steps.|
|Continuous integration pipelines||The ability to remove the need for pre-provisioned hosts.|
As technology pioneers, we believe that every application should be challenged - at least in part - to consider if it can be re-architected and modernised to leverage serverless architecture. That’s because the benefits are so compelling.
Jaguar Land Rover Case Study
Nasstar helped one of Britain’s leading manufacturers of luxury vehicles and sport utility vehicles, Jaguar Land Rover (JLR), collect and analyse vehicle data via a ground-breaking cloud-native connected car platform.
Using serverless computing, a scalable and cost-efficient solution was delivered to derive actionable insights, drive competitiveness, and maximise efficiency. Learn more in the full case study here.
Serverless Computing at Nasstar
With our maturity, breadth, and depth of experience working with this technology, Nasstar is best placed to design, deliver, and manage your serverless solution while incorporating end-to-end telemetry and cost guardrails.
Speak to one of our team and start your serverless journey today.