Article Preview
Top1. Introduction
Serverless computing is part of the cloud computing paradigm, which is based on the microservice architecture. It focuses on providing resources in a fine granular and flexible manner in order to further utilize the benefits of cloud computing (Völker, 2018). Serverless computing aims to save companies significant amounts of time, money and resources by hosting, running, and managing the applications and core functions of a business. Using this model, a company is freed from the efforts and processes of running and maintaining server applications (Hardin, 2018). As an instance of such processes, traditional server architectures involve a server process, typically listening to a TCP socket, waiting for clients to connect and send requests (Sadaqat, Colomo-Palacios, & Emil Skrimstad Knudsen, 2018).
The serverless environments are delegating the job of running service functions to cloud providers, thereby allowing them to decide how to manage execution. The cloud vendors such as Amazon Web Services (AWS), Microsoft Azure, Google, IBM, and Iron.io are all incarnations of this idea in various stages of development and adoption where application logic is split into functions and executed in response to an event (McGrath & Brenner, 2017). With services such as AWS Lambda, Microsoft Azure Functions, Google Cloud Functions, and IBM OpenWhisk, users have the ability to write desired applications. These applications are collections of stateless functions that are event-triggered, short-lived, and fully managed by the cloud provider and function deploy directly to a serverless framework instead of running tasks on traditional virtual machines with pre-allocated resources (Klimovic et al., 2018). Moreover, serverless computing as normal cloud computing effectively eliminates the time consuming and expensive traditional approach of purchasing hardware/software, installing servers, configuring, and troubleshooting. This idea makes serverless services more attractive for IT and business industry (Sadaqat et al., 2018).
There are several reasons for the rapid emergence of serverless computing mentioned in the literature (Erwin van Eyk, Iosup, Abad, Grohmann, & Eismann, 2018). For example, the cloud users are relieved of the need to manage resources, designing auto scaling procedures, and other operational logic. This allows them to focus on their business logic, reducing the costs of development, removing the need for huge distributed systems expertise and improving the time-to-market for applications.
Despite the above-mentioned facts, it is quite tricky and challenging for companies to select the most suitable cloud vendor, related to their requirement of application and demand of customers (Vázquez, Ramki Krishnan, & John, 2014). One way to develop and deploy services in a profitable manner and resources, companies look at the variety of options provided by cloud vendors in the form of pricing, performance, load-balancing, programming language and other sets of features. Therefore, it becomes increasingly important for potential cloud users to have deep and clear knowledge to work in an efficient way (Qu, Wang, & Orgun, 2013).
In this scenario, benchmarking is widely used for the evaluation of computer systems. The benchmarks exist for a variety of levels of abstraction, from the CPU and the database software, to complete enterprise systems (Cooper, Silberstein, Tam, Ramakrishnan, & Sears, 2010). However, there is a cloud user need for serverless benchmarks of a technical and suitability perspective. In this study, we focus on Amazon and Microsoft Azure platforms because these two platforms are very close competent players of cloud according to (Scale, 2018). The benchmark of serverless would help the developer and cloud users to differentiate the services provided by the cloud vendors, Amazon and Microsoft Azure. We believe that having a serverless service benchmark would also provide a unique opportunity for software engineering researchers and IT industry. The comparison would be helpful for not only the IT industry but also for the new users of serverless computing to understand the underlying features and important aspects of the serverless platform including developer experience.