5 reasons why you have to look into ‘serverless computing’

When your developers are continuously busy managing servers and upgrading operating systems, they have no time to work on your product and you loose competitive power. Besides time ‘serverless computing’ also gives you other advantages.

The idea of 'serverless computing' - or 'serverless' - is quickly gaining popularity since Amazon Web Services (AWS) launched the AWS Lambda service in 2014. Since then the interest in serverless is steadily growing and all large cloud vendors have a serverless solution. Microsoft offers Azure Functions and Google calls it Cloud Functions. The Google Trends graph below gives a nice idea about the quickly growing interest in serverless.

 

What is ‘serverless’?

Serverless refers to a special software architecture style where the application logics is executed in an environment without visible processes, operating system, servers or virtual machines. They are obviously there, but the responsibility for the provisioning and management of this infrastructure lies completely with the cloud provider. In such an environment developers can fully concentrate on writing code. Traditionally the code is wrapped up in services which work with each other and third-party services in a distributed system, while the team is also responsible for installation, monitoring, scaling and updating all those services, including the servers, virtual machines or docker containers on which those services are installed. In a serverless world the cloud provider accepts all those responsibilities. 

Serverless is new ... or is it not?

Serverless in itself is not new. In 2015 we published a blog on the use of web services via APIs to add extra functionality to applications. You may want to read our blog post 'Standing on the shoulders of giants: six APIs for instant SaaS success' for a few concrete examples This is ‘serverless’. By integrating with third-party APIs you add functionality to your application, without being personally responsible for the infrastructure, the servers, the OS. In short, serverless. Today you can choose among a whole range of BaaS, 'Backend-as-a-Service' providers: for instance, analytics-as-a-service (Keen.io) or logging-as-a-service (loggly.com) or payments-as-a-service (stripe.com or the Belgian twikey.com). 

Newer applications are Functions-as-a-Service, in short FaaS. Until AWS Lambda was launched, you were required to develop your own application logic (either or not supported by BaaS providers), but you also had to make sure that your application was scalable and secure. You were responsible for a whole range of things which were not in itself differentiating for your business, but necessary nevertheless. Examples include setting up and managing servers, virtual machines, operating systems and corresponding patches, your runtime environment (e.g. a Python, PHP, Java, Ruby environment to run your code in). Also setting up (auto) scaling, monitoring, load balancing, updating - preferably automatically - of your own applications without downtime, all this was in your hands. Thanks to FaaS it is possible to share your applications as individual functions, which you then push to your cloud provider. Your cloud provider does the rest. 

5 advantages of serverless for your business

  1. Shorter time-to-market: within the serverless paradigm developers are only concerned with matters that are unique to your own application. All the rest (OS, servers …) is left to the cloud provider. This can significantly reduce your time-to-market. Because there is little or no system administration, no time is lost by developers waiting for sysadmins and vice versa.

  2. Lower operational costs: FaaS providers always only count the time that your functions are effectively running. A function which runs only a few times per day for a few seconds shall only be charged for that time. In a traditional setup a server easily has to run continuously and will therefore also be charged for that time. Furthermore, a serverless architecture requires a lot less system administration. This also saves costs.

  3. Scalability: in a serverless architecture scalability is taken care of by the cloud provider. You don’t have to do much for this yourself. This also saves time and effort.

  4. Agile: all FaaS providers offer tooling (in the form of APIs) in order to deploy your code, often without downtime. This allows you to release new matters easily. This last feature is one of the cornerstones of agile software development.

  5. Functions such as glue-code: cloud providers are increasingly using FaaS as glue-code: you want some logic to be applied when an e-mail comes in? Put that logic into a lambda function. When a user uploads a photo to an AWS S3 bucket, do you want to make a thumbnail of it? Put that logic into a lambad function and connect it to the S3 bucket. Do you want to run a script every 15 minutes to perform a data ETL task? Put that logic into a lambda function and let your cloud performer execute that function. 

Conclusion

All major cloud providers are fully investing in serverless. Serverless, the combination of BaaS and FaaS, gives developers the freedom to fully focus on the development of functionality that is unique to the actual application and leaves a lot of 'undifferentiated heavy lifting' to the cloud providers. This way it will be possible to build applications which can be taken to the market quickly, while also being scalable, and require minor system administration. Music to your ears, isn’t it? 

In the weeks ahead I will share my experience with building (small) serverless applications with you. In the meantime I am eager to find out how you are looking upon serverless. Questions, remarks or experiences you want to share? Feel free to contact us!