Serverless-Computing
Serverless Computing: Breaking Up With Backend
mm
Lead Developer
Posted on: September 20, 2018
Development
Tags: AWS Lambda chatbots FaaS Internet of Thing iot Serverless Computing virtual assistants
Tags: AWS Lambda chatbots FaaS Internet of Thing iot Serverless Computing virtual assistants

Serverless computing offers a shortcut to better, more enterprise-friendly software – with a few drawbacks.

For a long time servers were a limiting factor in app development. Building, configuring, and maintaining them took time and money, and getting apps out quickly was nearly impossible. Cloud computing started to change all that.

The rising trend of “serverless” architecture is pushing the envelope even further further. Services like AWS Lambda offer companies a shortcut to release day, and some of the biggest names in the game are jumping on board.

What is Serverless Computing?

Serverless computing takes the work of building, maintaining, and configuring servers off developers’ hands. The term “serverless” is a little misleading since there are servers involved, but they’re functionally invisible from the client side since the vendor takes care of them.

The serverless model is a few steps past the better-known cloud architecture model. Under cloud architecture companies build on cloud storage, but there are still servers that have to be accessed and monitored. Serverless removes that requirement.

Developers simply choose an environment, upload a codefile, and the system automatically deploys. The provider manages everything related to server function.

Sometimes serverless computing, which is also called “function as a service” (FaaS) gets confused for “platform as a service” (PaaS). The two concepts have a lot in common with one important distinction.

  • PaaS is always running to be prepared for incoming requests.
  • FaaS is event-driven. It breaks applications down into individual functions and only runs them as they’re needed.

Benefits of FaaS

The obvious advantage of going serverless is scaling. FaaS offers highly responsive horizontal scaling that handles fluctuating demand with ease. User experience remains high even during the surges in traffic that follow viral posts or product releases.

Serverless computing is budget-friendly, too. Because functions are “dormant” in between function calls, clients are only billed for what they actually use. They don’t have to pay for idle resources.

Development, deployment, and maintenance costs are also lower for many of the same reasons as other BaaS and PaaS solutions. Better yet, developers can work in smaller teams since they don’t need to set up or maintain servers.

All of this adds up to the most important benefit of FaaS solutions. They’re enterprise-oriented by design. The list of advantages reads like a checklist of business priorities:

  • Budget: Initial investments are smaller (with lower ongoing operating costs when labor is taken into account).
  • User experience: FaaS offers high availability and low latency. Plus, developers can focus on making a high-quality app rather than worrying about servers.
  • Scalability: Serverless computing is easy to expand and upgrade as needed, meaning it fits well into microservice architectures.
  • Fast development: Using FaaS shortens the time to market by cutting down on the developer’s workload.

Cautions and Limitations of FaaS

Of course, the nature of serverless computing gives it some less appealing traits as well. FaaS is geared towards providing smaller services at scale.

There are hard limits on temporary local storage, hard execution timeouts, and limits to memory and CPU usage per execution. In simpler terms, it’s perfect for updating a web form but less practical for uploading a video.

Trying to test or debug FaaS applications gets complicated. There are some solutions being developed, but the technology is too new for any to be considered mature yet.

There’s also the unavoidable reality of vendor lock-in. When a third party is in charge of server management, migration is both hard and expensive.

Developers should be careful to choose reputable, stable companies like AWS Lambda or Microsoft Azure to reduce the possibility of vendor-related disruptions.

Making the Call

When is serverless computing the right choice?

Serverless computing has some great use cases that dovetail with modern business priorities.

  • Chatbots and virtual assistants
  • Internet of Thing (IoT) applications
  • Sharing static content (especially image-rich content)
  • Extending monolithic architecture by pulling out high-demand functions

For CPU or memory intensive applications, it’s not the best choice. Latency issues when handling those kinds of tasks damages user experience, leading to lower retention rates.

There may also be legal concerns that make serverless computing risky for companies bound by HIPAA guidelines and other strict regulations.

These are issues that need to be worked out with an experienced developer before choosing FaaS.

Like any technology, serverless computing delivers the best results when used within its design scope. Sit down with our highly-trained team of developers to find out whether FaaS is right for your next enterprise application.

Request a Consultation

mm

Lead Developer

A Lead Developer at Concepta is responsible for outlining software projects, planning the software architecture, and overseeing the work done by other developers.