
“Serverless computing” is really a misnomer.
The technology still involves the use of servers, but it is referred to as “serverless” because the end-user no longer has to manage a dedicated server for specific applications, functions, and storage. Instead, third-party servers are employed only when a specific function or event takes place, with subsequent savings for the user.
This is especially useful for IoT applications that sit idle until an event is triggered. A helpful example from NetworkWorld involves a home security system. The application sits idle until a certain event occurs – when motion is detected – and then reports the footage to a cloud service. The cloud service, in turn, sends an alert to the end user’s smartphone.
Unless you’re unfortunate enough to live or work in an area where your building is regularly broken into, most security camera apps will spend most of their time inactive. Therefore, it doesn’t make sense for the maker of the app to have a dedicated network and storage server sitting idle between events.
This expense can be avoided by using a serverless computing service, which uses resources only when an event is triggered.
App developers can choose from a library of functions offered by serverless computing platforms including some of the biggest players in this space, Google’s Cloud Functions, Amazon’s AWS Lambda, and Microsoft’s Azure Functions.
What are the Benefits of Serverless Computing?
Reduced Costs
Serverless setups do not incur costs when inactive; only being charged for server space used per event will bring costs down, comparable with a pay-as-you-go cellphone plan. Charges can even be broken down into 100-millisecond increments.
No Server Management/Maintenance
Developers do not have to deal with servers and will no longer have to worry about server capacity as serverless computing is inherently scalable. In the past, developers had to purchase enough server capacity to cope with projected maximum usage.
Simplified App Design
Developers can build apps without having to worry about infrastructure such as how many servers will be needed, storage requirements, and where the servers are physically located. Serverless computing will mean the development of apps becomes much more cost-effective, particularly for event-driven IOT sensors.
For industrial companies, this should bring down the purchase price of apps associated with event-driven sensors on your production line.
What are the Drawbacks of Serverless Computing?
App Development Changes
Apps must be written differently, which can be difficult within the constraints of software design. With serverless computing, developers no longer have visibility into backend processes, which makes testing and debugging more challenging.
Not Suitable for Large Applications
High-performance computing or applications with constant, predictable workloads are less appropriate for the serverless computing pay-as-you-go model and will usually be less expensive with a traditional setup.
Security Concerns
Cloudflare points out the concern with ‘multitenancy,’ where a cloud provider will run the code from several customers on a single server. This can not only affect application performance but could lead to data exposure unless functions are correctly sandboxed. This would be a major concern if two competing manufacturers became aware their code was running on the same server.
Risk of Vendor Lock-in
Partnering with a single cloud provider for all backend services can increase reliance to the point where it becomes difficult to switch vendors. This may present an issue for industrial companies wishing to change or diversify their technology supply base.
Is Serverless Computing Really Going to Replace Servers?
So, will servers become a thing of the past?
The answer is yes… and no.
While users will no longer need to worry about hosting dedicated servers, cloud providers will still manage the allocation of server resources on their behalf and charge users only for the resources used per event. For now, serverless computing is appropriate for businesses that do not run high-performance or applications with constant workloads. Serverless computing is ideal for flexible and lightweight applications that have inconsistent usage and need to be scaled up or down when necessary.