Serverless computing: the next cloud revolution
Applications can be developed more easily, faster and cheaper
Develop applications without having to worry about the management of the underlying infrastructure - like servers and load balancers - independent of scale and usage. That is the promise of "serverless computing", the cloud trend of 2016 that follows the evolutions of the past decade: from physical hardware to virtualization, IaaS and PaaS cloud services. With 'serverless', the focus lies entirely with the development of functionalities and no longer with dependencies on underlying infrastructure.
Serverless computing is based on the FaaS-concept: Function as a Service. You develop a micro service (such as scaling an image or the processing of user data) and upload this to a cloud service, such as AWS Lambda or Azure Functions. Together, the different services form a logical entity.
A serverless architecture offers a number of advantages. The architecture fits naturally within a continuous delivery approach to implement changes rapidly in components of the application. Obviously, isolated functionalities are easier to adapt than when they are part of a monolithic application code-base. Additionally - if set up correctly - the functions can easily be reused in other applications or their components.
In regards to costs for serverless: if the code is not called, you do not pay anything. Additional advantage: the costs become highly specified, per functionality, and thus transparent, offering new options for charging end users.
Consider the following: developing applications based on serverless computing demands knowledge of functional programming, but also software engineers that are multilingual in several development languages. This may – temporarily – be a barrier, yet functional programming results ultimately in reusable, sturdier, and often more comprehensible code.
Another aspect: the relations between microservices have to be well documented or to be made comprehensible by other tools, because a coherent understanding can become increasingly complicated with a greater number of functions.
Will serverless therefore be the holy grail for all applications to be developed in the future? No, definitely not. Severless suits event-driven architectures that are dynamic in nature, as they can be scaled in accordance with the usage. In situations with extreme high-performance requirements and/or a stable load, serverless isn't always the solution. However, for many applications serverless is a great alternative with corresponding advantages: applications are easier and faster to develop, and can be exploited against – substantially – lower costs. The time to experiment and to prepare for the next phase in modern application development is now.