For app development, infrastructure is usually cloud-based or server-centric. But developers do have another option — one that can help them significantly decrease their go-to-market time. It’s called serverless, and it’s what the Cloud Native Computing Foundation (CNCF) considers to be the next step in cloud-native computing.
Despite the name, serverless doesn’t mean that there’s no need for servers to host and run code. It simply means that developers don't have to provision them or manage infrastructure scaling.
How Serverless Works
With serverless, the OS, storage, networking, and other systems are abstracted away. A cloud provider runs the server. An event triggers an application code to run. The cloud provider then dynamically allocates resources for that code.Freed from dealing with the infrastructure required for app development, developers can devote their time to writing code. Operations engineers can focus on more business-critical tasks. Code can be pushed to production faster.
That’s a big deal for organizations that want to decrease their go-to-market time and build lightweight, flexible apps that can be expanded or updated quickly. It also benefits those that want to push some or all of their application functions close to end users for reduced latency since serverless moves some processes out of the origin server.
More Serverless Benefits
We’ve already noted that while serverless computing takes place on servers, developers never deal with them. There’s also a cost-saving factor. With a standard IaaS model, users often pay for “always-on” server components to run their apps. With serverless, the user stops paying once the code finishes executing. Pricing is based on the actual amount of resources consumed by an app, rather than on pre-purchased units of capacity.
In addition, serverless architectures can reduce costs for apps that see inconsistent usage, with peak periods alternating with times of little to no traffic. Paying for constantly running, always available servers that aren’t continually in use is a waste. A serverless setup will respond instantly when needed and will not incur costs when at rest.
Yet another benefit: apps built with a serverless infrastructure scale automatically. If a function must be run in multiple instances, the servers start up, run, and stop as needed, often using containers. There’s no need to upload code to servers or perform a complex backend configuration in order to release a working version of an app. This makes it possible to quickly update, patch, fix, or add new features to an app.
Use Cases for Serverless
While serverless may not make sense for every situation, there’s a growing number of use cases where it’s ideal. Generally, it works well for workloads that are asynchronous, concurrent, infrequent, in sporadic demand, unpredictable in scaling requirements, stateless, ephemeral, and highly dynamic.
The following are some of the most popular use cases:
- Auto-scaling Websites and APIs. Write and deploy websites and apps without the front-work of setting up infrastructure. The serverless backend scales automatically with demand, so there’s no need to worry about crashing because of traffic surges.
- Continuous Integration and Continuous Deployment (CI/CD). CI/CD pipelines facilitate shipping code in small increments, so that bug fixes and other updates can be shipped daily. Serverless can automate many of these processes.
- Event streaming. Get elastic, scalable event pipelines without having to maintain complicated clusters, courtesy of serverless compute triggered from pub/subtopics or event logs. Event streaming pipelines can feed monitoring systems, or power analytics systems and update secondary data stores and caches.
- Multi-language Applications. With serverless, apps can be multilingual. There’s no need to get locked into using the same language indefinitely. New languages can be used for new services and still talk to legacy services as needed.
- Processing Events and SaaS. Many apps rely on software from third-party SaaS providers like Twilio and Stripe to deliver functionality. They don’t allow functions to run on their systems, but they do emit events. With serverless, you can subscribe functions to those events, regardless of where the functions are hosted.
- Video and Image Manipulation. Use serverless to build performance-enhancing image and video services for any app, whether it’s dynamically resizing images or changing video transcoding for different target devices.
ClearScale’s Take on Serverless
Serverless increasingly plays a role in our cloud-native app development, largely because you don’t have to provision or maintain any servers or install and maintain software. Apps can be scaled automatically or by adjusting capacity through toggling the units of consumption rather than units of individual servers. There’s also no need to architect for availability or fault tolerance because the services running the application provide them by default.
For serverless computing capabilities and resources, we’ve found that AWS provides some of the best. Among them:
- AWS Lambda lets users run code without provisioning or managing servers and pay only for the compute time consumed.
- AWS CodePipeline can be used with the AWS Serverless Application Model to automate building, testing, and deploying serverless applications.
- AWS CodeBuild integrates with it to provide automated builds. AWS CodeDeploy can be used to roll out and test new Lambda function versions.
- Amazon RDS Proxy, a highly available database proxy, manages thousands of concurrent connections to relational databases.
- Amazon EventBridge, a serverless event bus service that makes it easy to access application data from a variety of sources and send it into your AWS environment.
We could go on and on about how great serverless is. What’s more important, however, is whether or not it really delivers. Our case studies demonstrate that it does. You can read a few of them using these links:
- Building Scalable and Safe Analytics Reporting Service by Leveraging Serverless Architecture
- The Salvation Army Creates a Red Kettle Mobile Donation application on AWS
- The Big Data Infrastructure That Powers the Globe and Mail’s Article Recommendation Engine
- Conserve with Us Tries a New Approach to Data Pipeline Based on AWS Step Functions
Is Serverless Right for You?
If you’re interested in learning more about serverless — including if it’s right for your next project, contact us today.
For a great overview of app modernization, including the use of serverless, download our free eBook, Modern Cloud and App Development.
Get in touch today to speak with a cloud expert and discuss how we can help: