Labelled by the Gartner consultancy firm as one of the big trends in infrastructure and operations, serverless computing has the wind in its sails and is the talk of the town. The race to win shares of this valuable market is raging between the IT giants. How does serverless computing work? What is the impact of this architecture for users and developers? What are the concepts to be known and mastered? We explain these different aspects in this article.
What is serverless computing?
Serverless computing consists in the use of an external infrastructure to develop and run applications. Contrary to what the name implies, serverless computing does use servers, but the management and operation of these servers is delegated to a third party.
Serverless computing operates on an on-demand server model. It is referred to as Function as a Service (FaaS), although this concept covers only part of what serverless computing allows and the term is not yet fully generalised. While many people confuse the two concepts, most specialists insist that serverless computing and FaaS are two very different things. We will not discuss these technicalities in this article.
Serverless computing greatly facilitates the work of developers in that it removes from the equation all the challenges related to server management, security, and scalability. The cost advantages are considerable, especially if you are not part of a large company.
As Gartner points out: "Serverless computing allows developers to focus on what they should be doing - in this case writing code and optimising application design - and paves the way for business flexibility. According to the consultancy firm, more than 50% of companies will be using serverless computing by 2025.
For more details on what serverless computing is and the advantages and disadvantages of serverless computing, we refer you to our in-depth article on the subject: Serverless, a cloud infrastructure.
How does serverless computing work?
Companies that use serverless computing outsource their backend components. This includes databases, calculations, storage, or the processing of data flows. The user therefore concentrates on the design. Some people use the term Backend as a Service (BaaS).
This dynamic can be compared very simply to that of a large restaurant. You are responsible for the menu title, the décor, the atmosphere and the creation of the dishes and their presentation, but you delegate all the work in the kitchen. Another team takes care of peeling the potatoes, making sure the products are fresh and available, raising the sauce and cooking your entrecote or vegetarian steak to perfection. The icing on the cake is that you pay them by the hour and only when they are working.
Presented in this way, serverless computing makes you want to lick your lips and we understand that its use is bound to grow. The major constraint to bear in mind is that you are entering into a relationship of dependence with a third-party company. By delegating, you increase the range of possibilities, but you also lose some of your autonomy. Serverless computing also has its limitations when thinking about complex applications. Imagining an architecture based solely on serverless computing remains very risky and difficult to implement in 2020.
Serverless computing operates on an event driven basis, i.e. when an event occurs, a function is executed. It differs in this sense from the use of Virtual Machines (VMs) or PaaS models (Platform as a Service) for example. The designer or developer rents a kind of space to perform a function and only pays when the function is actually used. The underlying concept is therefore that the user does not pay for the server as such but for the service it offers. The developer must therefore create the application code and the associated stateless (or neutral) functions.
At present, serverless computing mainly concerns applications that are still very simple. The following examples can be cited:
- Integration of a chatbot;
- Real-time processing of structured or unstructured data;
- Automatic execution of tasks, especially for Machine to Machine, M2M communications;
- Availability of data in different formats.
These few illustrations represent only a small fraction of what serverless computing can achieve. In practice, serverless computing represents a form of evolution of the PaaS model and is ideally suited to any application with volatile or cyclical workloads. Serverless computing allows costs to be rationalised while the PaaS model remains more rigid.
Many large companies are currently using serverless computing. The percentage is 40% according to a study conducted by O'Reilly, a publishing house specialising in IT. Well-known names such as Coca-Cola or Autodesk are often cited as examples of users. Netflix is another concrete example. The company uses AWS Lambda to adapt and resize its images in relation to the interface. This function is performed on demand, which avoids storing an astronomical number of media files.
The serverless computing market in brief
In 2020, a few players largely dominate the serverless computing segment. These are AWS Lambda (Amazon), Microsoft Azure, IBM Cloud Functions and Google Cloud Platform. Amazon was one of the pioneers in the field and is clearly still the reference provider today. Nevertheless, the market is growing rapidly, and its competitors hope to become a major player in the years to come. The company Technavio has estimated the market's annual growth rate at 26% for the period 2019-2023.
Ryax and serverless computing
Ryax prides itself on constantly improving its data engineering platform. Our framework uses the latest serverless technologies to allow fast and reliable deployment of any code, script, or container in production.
We take care of scalability and security. Our platform is compatible with a large number of programming languages and is highly adaptive.
La Ryax Team.