Serverless computing, also referred to as function as a service, is the latest technology that has the cloud community talking. While it doesn’t truly get rid of servers, it does make it easier and more cost-effective to deploy and manage complex applications.
Cloud providers saw the growing interest in serverless computing and rolled out their own services to support it. Amazon Web Services (AWS) was the first to market with AWS Lambda, while Azure Functions and Google Cloud Functions came a few years later. All three services make serverless technology more accessible to enterprises.
Review these five recent SearchCloudComputing tips to see if a serverless model could benefit you.
Serverless computing helps enterprises reduce cloud resource worries
Serverless computing has made its way into the enterprise because it simplifies deployment and allows developers to focus more on application features than on tasks such as provisioning VMs. Emerging uses for serverless technology include image processing, task management, workflows and notifications.
For some companies, such as security vendor FireEye Inc., serverless computing models also yield cost savings compared to traditional, on-demand instances, said Joseph Kordish, an operations engineer at the company, which uses AWS Lambda.
Still, it is important to remember that the reliability, flexibility and cost efficiency that serverless provides may not apply to all applications. Review your workloads to see if they will benefit from serverless technology.
Evolve your cloud cost management strategy for serverless computing
Cost management is important in all cloud deployments, including serverless computing. Unlike the public cloud model, where even idle applications still incur a CPU or VM cost, serverless only requires you to pay each time you execute an application component.
Still, a heavy workload can end up costing you more than you thought.
The first step is to look at provider prices. Generally, they base these prices on the number of executed application events, as well as how many resources those events use and how long they run. Take note of any additional features, such as databases, your serverless application will need, since providers will charge you for them.
Next, review your serverless applications, and know how many components they have and how often those components run. Serverless is more cost-effective for smaller workloads that are highly variable. Test your serverless applications first to estimate costs.
How serverless computing affects a cloud operations team
Some new technologies shake up cloud operations teams and force them to rethink their processes — and serverless computing is one of them.
Serverless computing is event-based, which means that an event triggers an application to run. This changes cloud cost management practices, as mentioned above. Also, cloud operations teams need to change their scaling practices. It’s not possible to scale all serverless apps and their individual components on demand, and it’s important to ensure that, when you do spin up new components to handle load spikes, the performance of core business apps doesn’t suffer.
Cloud operation teams also need to use the right tools to manage serverless applications. Remember to look beyond price, and evaluate a provider’s tool set and its operational data. These tools, rather than traditional cloud operations tools for VM performance, will be critical to manage serverless apps.
Get the most from a serverless application in public cloud
Developers and cloud admins need to prepare for changes that serverless computing can cause.
Developers, for example, have to adapt to the structure of serverless applications and how they exchange data. Unlike traditional, monolithic applications, serverless applications break up software into numerous independent functions. Cloud admins have to manage each function and track performance, usage and cost. Luckily, there are monitoring tools available from most cloud providers.
Admins should also share management information with developers on a regular basis to enable continuous development and optimize performance and cost. Also, since functions aren’t portable between public cloud providers, admins should beware of vendor lock-in risks.
Ensure your serverless apps can scale with these deployment tips
Scalability is one of the biggest benefits of cloud, but there are some challenges when it comes to serverless technology. With so many functions firing and as you run more to support increased load, distributed load-balancing services are essential. Follow best practices that apply to stateless applications, such as writing app programs with a toolkit, like Apache ZooKeeper, that can manage distributed application copies.
When it comes to deployment, control is key to achieve scalability. Keep the amount of application copies to a minimum, and scale back when there is no more demand. In addition, enforce strict conditions under which end users can make new application copies.