Serverless Computing

What is Serverless Computing?

Serverless computing is a type of cloud computing model in which resources are dynamically managed by third-party cloud service providers.

Serverless Computing

Serverless computing does not mean that there are no servers involved. Instead, it means that a cloud provider handles all the server provisioning, and deals with things like machine resource allocation. This allows companies to achieve utility-like costing in their server hosting, which traditionally can be very costly.

Why Does Serverless Computing Matter?

Serverless computing might seem like it offers little value, but it’s actually the reverse. Because all the machine resource allocation takes place in the cloud, and because the client company does not need an in-house server, significant cost reductions are able to be achieved. It goes farther than eliminating the need for an in-house server, though.

Developers don’t need to worry about virtual servers, either. It’s one more step towards a completely hands-off environment, in which developers are able to do what they do best, without worrying about the minutia that can eat into their development time.

The Misnomer

In order to really understand the benefits of serverless computing, you need to first realize that it’s not a totally accurate description. Servers are still needed. Operators are also still needed. The change here is on who focuses on the servers and operations. Rather than requiring developers to patch servers and handle resource allocation, which takes time away from development, those tasks are handled by the provider. They take place “under the hood” so to speak, and are not visible to those working with app development. So, “serverless” is a little misleading, as servers will always be required.

How Does Serverless Computing Work?

Perhaps the best way to explain serverless computing is to resurrect a slightly older method that resembles it. This would be microservices. In microservice development, tiny, single-purpose services are used to create an app. This is in direct contrast to the monolithic method of app development that has been common for years. However, serverless computing does differ from microservices in many ways.

One of those ways is that serverless computing, functions are used. These are even smaller than services. In fact, a service could include multiple functions. So, serverless is actually more granular, while being less hands-on.

The real beauty of serverless computing is this: developers use functions to build services on their own. They can snag those functions from existing libraries, such as AWS Lambda or Iron.io. They’re able to use these functions and build services without having to worry about server architecture, because the provider handles all of the scaling, allocation and other minutiae on their end.

Potential Drawbacks to Serverless Computing

While serverless computing offers dramatic time savings for developers, by eliminating the need to worry about anything related to the server infrastructure, including ongoing patching, there are potential issues here.

Perhaps the most important to understand is that it may not be the right solution for all options. For instance, legacy systems using the public cloud may not be compatible with serverless architecture. With that being said, the technology continues to evolve and develop. Eventually, those challenges may disappear.