According to IT experts in different companies, serverless technology will become the base of every technology incoming 5-10 years and everything that can be automated must be automated in an efficient way.
Google, Microsoft, and Amazon are dedicating a separate page for “serverless” that shows, it is not something that is going to fade, it will stay. Serverless means to build and run applications without thinking about servers. It provides a level of abstraction of servers, operating systems, and infrastructure while building serverless applications so one can take the mind off while developing.
The five key characteristics that need to be satisfied while making a serverless technology are:
- There is no need to manage the server
- There is no need to worry about scaling when the request arises, it is a highly available and high tolerance for faults
- There is no idle capacity
- Micro billing i.e., if the code is not executed there is no payment. Usually, the bills are calculated according to memory consumption, and time is taken while execution.
Basic functions that are satisfied by the core technologies are:
- A basic platform that executes a code
- A stable environment that complies with different pieces of code
- A scalable system that is used for routine engines.
There are some core vendors that provide different services that involve serverless technology i.e., Google, Microsoft, and Amazon. Each vendor is using serverless technology in one way or another using the basic characteristics to provide different technologies.
Microsoft | Amazon | |
Azure Functions and Logic | Amazon Lambda | Cloud Functions |
Azure Event and Grid | Amazon Step Functions | Cloud Pub/Sub |
Microsoft
Microsoft Azure function and Microsoft Azure Logic can be used in a business together and separately. In Microsoft Azure Logic there is a logical container that contains a workflow in form of triggers and actions. The workflow starts from a trigger and then follows a set of actions. For example, a trigger can trigger the request per hour and the activities involve getting data from the server. It runs on an infrastructure of the Azure region that is abstracted and not visible to anyone taking the service. It is scalable as the number of requests increases the instances also increase.
It consists of different components:
- Logic Apps RP: reads the workflow and divides it into activities and tasks
- Logic Apps runtime: distributed computations are synchronized to complete a task
- Connection Manager: manages the connection and token refreshment
- Connector Runtime: provides API abstraction
Azure functions are used in web, mobile applications by the programmer and are part of the Azure Web and Mobile suite. It consists of small meaningful code that can be designed, reused, and are shared across the server. It can be built using different programming languages; Java, C#, F#, Node js, Python, and Php. It can be used from scripting languages like Bash, PowerShell, and Command Line Interface (CLI). These functions serve a single purpose and are designed to serve the services in a connected way. These are different on the basis of developer experience and deployment.
Azure Event Grid allows building applications that use event-based architecture in which the Azure resource is selected and then an endpoint is provided that is needed to send the event to. Event Grid has support for custom events and also Azure Events like resource group and storage blob. Events can be filtered according to need i.e.; a single event can be sent to different endpoints; events can be multi-casted which means multiple events can be sent to multiple endpoints and the sender can ensure reliable delivery.
Amazon
Amazon Lambda provides a service to run the code on the server without managing servers, creating clusters of workloads, and having zero knowledge about backend and administration. With Lambda, it is very easy to implement code, one just has to upload the ZIP file on the server and forget about everything else.
Amazon Step Functions provides an interface to run and create a series check listed events and workflows to maintain the state of the application. It orchestrates the events and applications, manages retries and failures and it can be challenging. With the advancement of the applications, its code also becomes complex and it requires a lot of effort to manage it, but Amazon Lambda provides an operational control module in which retry logic, sequencing, error handling, and the state which remove the extra burden from the team.
Amazon Simple Notification Service (Amazon SNS) is used a message service in which messages can be sent to Application to Application (A2A) and Application to Person (A2P). it provides high throughput for messages that are pushed based, many to many in distributed and server-driven systems. It provides to send messages to a very large number of subscriber systems that includes AWS Lambda functions, Amazon SQS queues, and HTTP endpoint for parallel processing.
Google Cloud Functions let to run the code on the server on a pay-as-you-go basis, Function as a Service (FaaS). It just requires the developer to write a code and Google cloud manages the operational infrastructure. It helps in developing the code fast as the developer develops small code snippets for responding to events. It prevents the lock-in capability across the distributed environment.
Cloud Pub/Sub is similar to Amazon Simple Notification, it provides massages for event-driven systems and analytics. Google cloud gives $300 for 90 new customers and all users get 10 GB per month free of charge for delivery of messages. Its aim is to provide low-cost event ingestions and puts the vendor in control of the management.
In the past few months (8-10 months) the vendors are focusing on implementing serverless technology in different applications however it still lags some maturity when it comes to building management and developer tools. All these vendors are focusing to come up with a solution to address intelligent server management and monitoring. It is very difficult to choose among these vendors because their functionalities are a lot look alike. Once a solution is selected and implemented, it is very hard to convert it to the solution from another vendor.