What is serverless computing?
Serverless computing, also known as Functions as a Server(FaaS), is the concept that machine resources are hosted by a cloud provider, effectively eliminating the need for many of the traditional necessities in running an application. An application has a server component, and that server component needs to be maintained. These servers need to be created and setup, software and hardware needs to be maintained, and there needs to be a setup that allows for scalability. Many of these issues are solved by serverless computing, which also means a faster time to market for a new application.
In serverless computing, an application in broken down in to microservices, which is further broken down in to smaller elements called functions. This is where FaaS comes from. Serverless is stateless, and only runs in response to a triggered event.
Why go serverless?
There are many benefits to using serverless. Of course one of the primary benefits is that you don’t have to manage your own servers. Managing your backend servers means managing operating systems, hardware and software, applying security updates just to name a few. Hosting your application on a clouds allows you to change your focus to only working on your code. The hosting service requires you to only upload your code and they manage the rest. Another benefit is cost. You are only charged per request in small time increments, which means only being charged for the time that code is run. It automatically scales as well in response to each trigger. This eliminates any need for scalability as the cloud server handles that. All your code just runs on the cloud.
Drawbacks of serverless computing
While serverless computing is a relatively new concept, it builds on previous ideas such as PaaS, or Platform as a Service. Platform as a Service differs in that although still hosted by a third party, an application is still always running while with FaaS, an application may only be run when called upon. Serverless computing has many drawbacks and advantages and may best designed for certain instances. Going serverless may be ideal for new startup companies who are working with newer languages and where dealing with servers is time consuming and distracting from working on the actual application. On the other hand, for well established companies, or companies working with older languages it may not be in their best interest as the migration to serverless may not be worth the time or cost. Despite these drawbacks it seems as though it would be more efficient from a business as well as developer standpoint. With this being said, serverless computing is still very young and there is a large possibility for improvement in the future.