10 Compelling Serverless Use Cases
The Webapper development team continues its journey with serverless computing using AWS and Lambda. In addition to our CloudSee Drive SaaS solution for AWS, we’ve built some custom FaaS (functions as a service) solutions for development clients. As we help customers expand their cloud computing capabilities in AWS, we also find ourselves educating organizations not only in what is possible but also more efficient. To illustrate why serverless is gaining popularity in AWS and rival cloud platforms, we wanted to share 10 compelling serverless use cases that demonstrate the simplicity and cost savings it provides.
1. Host a Serverless Website
A serverless website runs on web servers, but most server management tasks become the cloud provider’s responsibility. As your site grows, you’ll spend less time provisioning, managing, or upgrading your server to ensure it runs smoothly. Serverless websites are ideal because they can be asynchronous, stateless and started instantaneously. It works well for either infrequent demand or unpredictable spikes.
2. Transform Media
One of the first requests we received was triggering a function to convert and process inbound media when uploaded to the cloud. For example, when a user uploads a 1200px x 800px PNG image, automatically create JPG copy and create 300px x 200px thumbnails. Amazon S3 supports triggers on changes to objects, so adding a Lambda to do this is straightforward.
3. Trigger Actions based on Document Changes
Similar to media transformation, FaaS can also be triggered on a change. For example, if an object is modified, an email or SMS alert can be sent.
4. Transform Data
Another common request for FaaS is processing inbound data. When a file is uploaded, we trigger a function to process the included data (e.g., take a CSV and move & process it into a database). The processing is asynchronous and event-driven at arbitrary times.
5. Scheduled Jobs
For tasks like CRON jobs, FaaS is also quite useful. For example, you may want to run automated backups on a specialized schedule. But the function you call can be almost anything you create. We can write AWS Lambdas in any number of languages (we love Node.js, but we could use others like Java, C#, or Python). Although there are some practical limits to FaaS, we also have so much room to imagine & create solutions.
6. Deliver Real-Time Notifications
Amazon Simple Notification Service (SNS) enables sending push notifications between distributed systems, microservices, and serverless applications. For example, you can send messages to your customers with SMS texts, push notifications, and email based on events in your workflows.
7. Integrate External Services
Many applications request services from an external provider. Waiting for an external response can often cause delays in web-based services. Wrapping a request as an AWS Lambda enables the application to continue other tasks while it waits for the Lambda response, thus avoiding any waiting. Customers simply see the application proceeding, with asynchronous data arriving as part of it.
8. Analyze Log Files
Lambda can also be used to search in CloudTrail or CloudWatch logs for events or entries to trigger notifications or other events. We can also use CloudTrail to get logs of API calls, and then we can use this data to gain visibility into user activity or troubleshoot operational incidents, providing notifications in key areas.
9. Orchestrating Microservices Using a Series of Steps
AWS Step Functions enable implementing business processes using a series of steps to build the workflow. Individual steps can invoke Lambda functions or containers with business logic, update a database, or send a message when a step or the workflow completes.
10. Supporting IoT
Internet of Things (IoT) devices that connect to the internet to read and write data demonstrate a prime use case for serverless. Serverless is being adopted in home automation and many custom-built solutions. Amazon Alexa is a well-known example of serverless with IoT.
Serverless Use Cases
Serverless adoption will continue to evolve, and Webapper engineers will be along for the ride. As evident from these serverless use cases, it’s feasible to use small increments — hello, microservices architecture — in creative ways to extend and augment other workflows. We’re in a perpetual cloud integration, learning new uses as we go, but reaping many rewards in efficiency, performance, reliability, and user experience. Serverless delivers in all those ways.