In the last 10 years, there has been a paradigm shift in cloud computing
The major focus is on providing business agility and increasing the cost-effectiveness. If we talk about cloud computing, the unit of computing are becoming smaller and smaller. From on-premise, cloud, virtual machines, containers to serverless. This hype is turning into a reality.
In conjunction, the pricing models have also evolved. In traditional systems, the ratio at which the computing power was wasted was really high. For example, you were required to pay to the vendor regardless of the fact that your servers were used or not. However, in serverless computing, the pricing is calculated based on the execution time and the number of times your function is invoked. Since there are no upfront costs, the adoption of FaaS has accelerated.
Apart from the major serverless providers like Amazon Web Service, Microsoft Azure and Google Cloud Functions, there are many others who have jumped on the bandwagon, for example, OpenFaaS, Nuclio, Apache Openwhisk, etc. Let’s understand more about the current ecosystem of serverless.
Current Serverless Ecosystem
According to the research conducted by Gartner, Serverless has been one of the hottest cloud-related technology for a couple of years. AWS Lambda, FaaS offering from AWS, was launched in 2014 and since then the ecosystem is expanding at a rapid pace. Mainly because the providers are constantly improving their services or expanding their feature list.
Recently, RightScale 2018 State of the Cloud reported a 75% growth rate in serverless computing, retaining its position to #1. Also, reduction in cost is one of the major benefits that come with serverless technology as reported by Currents 2018.
Serverless architecture is redefining the way we develop our software products. This change is prerequisite due to various factors. For example, functions works in a decoupled manner and a high level of granularity.
If we speak about it in general terms, serverless predominantly changing the way software network, compute and share the database we’ve been incorporating so far. Let’s understand each point in brief:
API Gateway as a Communication Layer
Unlike the monolithic systems, communication layer between the frontend and backend is facilitated with the help of APIs. APIs work as a ‘front door’ for the serverless applications to access data and execute the business logic from the backend services. It connects the REST API endpoint with the business logic which carries out the requested task.
APIs let you create HTTP and HTTPs endpoints both. Most of the APIs accept various payloads. Some of these data formats are query string parameters, XML, JSON, etc. You can also declare any content type for your API’s response. Later, you can use the transform templates so that you can change the backend response into the desired format.
Computing Business Logic through Functions
FaaS works in a more decoupled and granular way. This means, unlike creating a single code base, FaaS required fragmented code block with unique functionalities. These code blocks when orchestrated together, work as a single application.
Instead of using VM or an instance to run your single code base, functions itself executes the code. However, you need to configure the memory size as per the requirement of the code block. There are few other abstractions as well, though, they are provider specific.
BaaS abstracts Database & Authentication Layer
To protect app’s security and make sure that the data is accessible to only trusted users, authentication plays a major role. In traditional systems, this role was executed through DBAs. In serverless architecture, this is facilitated through Backend as a Service.
Backend as a Service is typically a cloud-based distributed NoSQL database which removes the DBAs overhead. BaaS includes cloud infrastructure, push notifications, server code, user & file management, social network integrations and much more. All these services have their own APIs which allows an easy integration. This is a new way of managing a backend data which does not require developers to create new backend each time a new feature is added to the application.
In this age of constant innovation, winners will be those who will adopt the new technology and integrate them into their current solutions. Serverless is one of them!
Serverless is indeed on an evolutionary phase and new players are added every day. However, according to the current reports, the development graph seems to be exponential than parabolic. Adoption of a new technology like serverless is always difficult for established organizations. But with the understanding of use cases, you can significantly reduce the learning curve.
About the Author
Rohit Akiwatkar is the cloud technology consultant at Simform. Rohit’s expertise on cloud technologies and serverless in particular enables organizations to translate their vision into powerful software solutions. He has been using serverless technology since 2016 (with launch of AWS Lambda) and has helped many organizations in building scalable cloud solutions.