RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2
2024/09/03 09:06:31

Serverless Computing

Serverless computing is a strategy for organizing platform cloud services in which the cloud automatically and dynamically controls the allocation of computing resources based on user load. The main task of such a strategy is to implement a function-as-a-service template, in which a separate container or virtual machine is created to execute each request (call to a function), which is destroyed after execution.

Content

The main advantage of serverless computing is its ability to deploy an event-driven architecture.

In serverless computing, functions such as scaling, performance planning, and operation maintenance are performed automatically. This is usually done by public cloud providers. Therefore, theoretically, developers can devote themselves only to writing or integrating code to solve business problems.

The name is due to the fact that users in this strategy do not need to deal with the allocation and configuration of "servers" (both infrastructure units - virtual machines, containers, and software servers - database servers, application servers, instances of runtime environments): all settings and planning of computing resources necessary to run code on demand or on an event are hidden from users and controlled by the cloud. Serverless code can be part of applications built on traditional architecture, such as microservices.

Amazon Web Services is considered a leader in this area. Less popular are Microsoft Azure and Google Cloud Platform.

The strategy is implemented in the main FaaS platforms: AWS Lambda, Google Cloud Functions, Apache OpenWhisk and the IBM Cloud service based on it, Azure Functions in the Microsoft cloud, Oracle's Fn service. In addition, in the late 2010s, the strategy became widespread in cloud [DBMS] implementations, such as, for example, Microsoft Azure Data Lake (works in Microsoft Azure and dynamically allocates and frees up computing resources, working with data in a persistent storage service), Snowflake (works with data in S3 and creates computing instances as it loads), FaunaDB.

The Benefits of Serverless Computing

Serverless computing refers to an architecture in which applications (or parts of applications) run on demand in specialized environments. They are usually located in the cloud, although serverless computing can also work in a local environment[1].

The main potential benefits of serverless computing are:

  • serverless computing deprives the user of the need to maintain a complete operating system environment to run serverless code (hence the term "serverless"). All they need is to download the code, configure the conditions that trigger its launch, and then the rest of the work will be performed by the serverless system;
  • using cloud-based serverless environments, the user pays only for the time when his code actually works. This is more beneficial than the traditional pricing model for cloud virtual machines (VMs), where it must constantly pay to keep virtual servers up and running, even if they are idle for a while;
  • serverless code starts very quickly, making it easy to deploy more instances if you want to scale specific tasks. Thus, Serverless is great for situations where high performance or scalability are priorities.

In theory, the benefits of a serverless system come down to making application deployment faster, more flexible, more cost-effective, and more scalable.

Serverless Constraints

Unfortunately, Serverless has never been able to reach its full potential. There is no doubt that serverless execution models can make code more scalable, making it easier for the user to manage them. In some cases, they increase cost efficiency. However, these advantages are offset by a number of limitations, which reduces the importance of this technology.

1. Serverless only supports specific programming languages

Most serverless frameworks allow you to deploy functions written only in specific languages. True, they support most of the main languages. Some of them, such as AWS Lambda and Azure Functions, also provide the so-called "wrapper function," which allows you to run functions written in unsupported languages. However, this affects performance, and additional system configuration is required to enable features.

The lack of universal direct support for serverless functions written in any language imposes significant restrictions on the use of serverless computing. As a result, when choosing a serverless deployment option, the developer depends on the presence of code in the language required for it, but the latter may not be among the supported ones. Further complicating the situation is the fact that serverless platforms support different sets of languages, which in some cases makes it difficult to migrate between them.

2. Serverless frameworks of each manufacturer have their own specifics

In the vast majority, serverless platforms are proprietary, that is, they have their own specifics, which depend on the manufacturer. This situation developed as developers paid little attention to creating standards for writing, deploying, and managing features, especially compared to other cloud technologies such as containers (which benefited from the development and widespread adoption of strong standards promoted by the developer community).

Because of this, specific ways to create, deploy, update, and monitor serverless features for different platforms are different. This limitation, in addition to the additional cost of learning serverless functions, further complicates migration to Serverless by an order of magnitude. Thus, if serverless calculations have maneuverability and flexibility, then so far only in theory.

3. "Cold" serverless features reduce performance

A fundamental limitation of serverless architectures is that the launch of "cold" functions, that is, those that have not been launched for a long time, takes additional time. Cold start times can only be a few seconds, but in high-performance environments, when the count goes by milliseconds, it's eternity. There is no reliable way to get around this problem. One of them is to periodically run functions - this ensures that they remain "warm," but at the same time this leads to unnecessary costs and negates one of the main advantages of a serverless system - to charge a fee only when there is a real need to run working code. Of course, the launch time of the function can be optimized, but this is clearly not enough. In other words, cold start problems mean that the high performance offered by serverless computing is achievable only under certain conditions.

4. You cannot make a serverless application entirely serverless

Another drawback of the serverless model is that in most cases it does not allow the full deployment of the application. Running everything in a serverless environment is impractical or economically unprofitable, so this model assumes a way to run certain parts of the application in it that constantly require high performance and significant computing resources. Serverless is not like containers or virtual machines that offer holistic ways to deploy an application to a target platform. This is rather an extension that works together with containers or virtual machines. We can say that a serverless solution is a way to complement other types of application architectures. Thus, Serverless is not a universal architecture, which limits its application options.

Russia

2024: Why Russia's serverless revolution has stalled - TA opinions

Serverless computing has several advantages that promised the architecture a successful future. In Russia, such technologies have not yet received wide recognition, and for that there are several reasons. Market participants told TAdviser about them in early September 2024.

Serverless technologies are a cloud-based tool that allows a developer to abstract from server management and configuration. It is enough for him to go to a service that provides server-free computing services, enter the code into the system, and it will independently deploy all the necessary components for its work. All this happens in containers, on request, and therefore allows you to pay for this service very flexibly. For example, the company created a chatbot that is very rarely used. If it runs on serverless technology, then you can pay only for its single launches, which greatly saves money compared to the long-term lease of infrastructure, which will be idle most of the time.

Yandex.Cloud and other players in the Russian market are actively developing their offers, which may lead to an increase in the popularity of serverless technologies in the future

According to Andrey Malov, Product Director of TransTeleCom Regional, the main problem follows from the main advantage of serverless solutions: this is a simple technology that can only be minimally customized and, therefore, it is applicable only for simple things.

Linx Cloud Product Manager Stanislav Bratchikov, speaking about the problems of serverless platforms, attributed to them restrictions on execution time, RAM, processor power and storage size. Also, according to the expert, the architecture is characterized by a delay in cold start, when the function of a serverless application is called for the first time after a period of inactivity.

Another problem is the inability to fully control the environment in which the code is launched, says Elena Kuts, head of the expert and analytical department of the manufacturer of system-wide and application POALMI Partner. This can affect the choice of programming languages, dependencies, configurations and performance. It is necessary to carefully study the documentation of cloud providers, as well as test and monitor the performance of applications in order to quickly identify and fix possible problems, she added.

Kirill Semion, General Director of the National Competence Center for Holding Information Management Systems (NCC ISU), named two reasons that, in his opinion, are the main barriers to the development of serverless computing in Russia: inconvenient tariffs and companies' unwillingness to predict the financial cost model. According to the expert, the use of serverless technologies is the practice of IT giants such as Microsoft and Oracle, which have left the Russian market.

According to the general director of Mad Brains Oleg Chebulaev, the reason for the impasse of the serverless revolution in the Russian Federation is the fear of market participants: they are afraid that the service will stop working at some point, including due to sanctions, restrictions on access from the Russian side or due to the curtailment of the project as a whole. Chebulaev attributed the price increase to other fears of business.

File:Aquote1.png
Take Yandex: most recently, mail on the domain was free, and now you need to pay for each, - complained the head of Mad Brains.
File:Aquote2.png

The spread of serverless solutions is also hampered by business concerns about information security risks, says Evgeny Makaryin, head of the Linx Cloud product and solution development group. Companies do not always trust cloud providers in whose infrastructure the program code should be launched, he said.

The founder of the DNA Team service development studio Anton Tarasenko says that when using heartless technologies, it is much more difficult to monitor applications and debug procedures, since there are no traditional server logs or runtime environments. Under certain scenarios, they may even be more expensive than classic solutions, for example, if an application requires high computing resources, he said.

Many experts interviewed by TAdviser point to the compatibility problem between different products. Due to architectural differences in the software of various vendors, it is difficult to transfer a serverless application from the platform of one vendor to the platform of another, says Oleg Chumakov, Development Director of Arbait.

At the same time, Arkady Karev, Vice President for Strategic Projects of the Borlas Group, expressed confidence that by 2024 the Russian market is at the beginning of the development of the direction of using infrastructure as a service (IaaS), and serverless technologies will be the next step in the development of technology for providing hardware as a cloud service.

The general director of the development company CRM- the system Megaplan"" Sergei Kozlov does not agree at all with the thesis about the failure of the serverless revolution in Russia.

File:Aquote1.png
I know that Yandex with a serverless architecture is doing well: take it and use it. This type of solution is well suited for small and medium-sized applications that have unpredictable and undulating loads, "he said.
File:Aquote2.png

In Russia, there are domestic cloud platforms that offer serverless solutions: these are Yandex.Cloud, SberCloud, etc. However, in terms of functionality and usability, these products can be inferior to their Western counterparts, which slows down the introduction of technologies on the market, says Stanislav Bratchikov from Linx Cloud.

Notes