Serverless Computing - A way for scalable and cost-effective application

Chander Sharma, Head IT, Accutest Research Laboratories | Monday, 05 June 2017, 12:41 IST

Cloud computing has been a game changer in a number of ways and the emergence of serverless computing/ architectures is just another example of what cloud tech (and in particular AWS) has been able to achieve. Serverless computing has been a talk of the town from past few months, it is the next generation cloud computing technology that is also popular as Function-as-a-Ser­vice (FaaS).

Serverless is about abstracting users away from servers, infrastruc­ture, and having to deal with low-level configuration or the core op­erating system. Instead, developers make use of single purpose services and elastic compute platforms to ex­ecute code. By composing and com­bining different services together in a loose orchestration, develop­ers can now build complex systems very quickly and spend most of their time focusing on their core business problem. These serverless systems can scale, grow and evolve without developers or solution architects having to worry about remembering to patch that web server yet again.

In the cloud evolution, this is go­ing to be significant. While server virtualization has rationalized the server sprawl in many enterprises, you still have servers ‘on-prem’. Here is where ‘Serverless Comput­ing’ comes into play. In this form of computing, the server resides with the cloud service provider in which developers run their applications off-premises.

In traditional cloud computing, an organization is charged with a fix and periodic amount to run their website and application either they use all instances or not. However, with serverless computing, services or instances are charged only if they are used. No charges for downtime and idle time. Serverless computing is expected to be a significant trend as we move forward.

Server-less computing is also the co-hosting of processing, storage and I/O onto a single device. The end user benefit being the elimina­tion of dedicated application servers by co-opting excess compute power that reside in many storage servers to host compute-intensive work­loads. One can build everything from mobile back-ends to stream­ing data processors using serverless computing.

Serverless Architectures

Serverless architectures refer to ap­plications that significantly depend on third-party services (knows as Backend as a Service or "BaaS") or on custom code that's run in ephem­eral containers (Function as a Ser­vice or "FaaS").

Another area where serverless computing conveys a powerful ad­vantage is in operations. DevOps brings a different focus in the serverless world, with more atten­tion being paid to the deployment of functions and organization of envi­ronments, rather than infrastructure management. From a purely server­less perspective, there is no longer need to worry about infrastructure, operating systems, or network con­figuration, since all of those tasks are outsourced to a vendor.

But this doesn’t mean that DevOps suddenly ceases to exist. Devel­opers still have a need to build, test, pack­age, release, and mon­itor applications, and optimize for resilien­cy and availability.

Serverless will force DevOps to transform. Operations is not going to suddenly disappear, but serverless will drive an even greater focus on auto­mation. Deploying functions by hand and organizing environments manually is untenable. Thankfully, frameworks such as the Serverless Framework and Apex are available to assist with the organization and deployment of functions.

All of the major public cloud ven­dors are now on board with server­less including Amazon, Google, Mi­crosoft, and IBM. Each company is building its own ‘FaaS’ offering and working on services (authentication databases, storage, notifications, messaging, queuing) that develop­ers can use. And there are plenty of other, smaller companies that have fantastic, reli­able services that devel­opers can leverage.

It is likely that many developers and organi­zations will try out serverless technologies and architectures due to the benefits they provide. Devel­opers will use them to build web, mobile, game, and IoT back ends; to process data and to create powerful pipelines that perform complex op­erations.

Never the less, magical infra­structure increases the risk of inte­gration problems and lack of control over server apps requires re-think­ing around sessions and authoriza­tion. Configuration becomes a lot more complex. Any technology that solves one set of problems introduces another; it’s just a question of what kind of problems you want to deal with. Serverless platforms, such as Lambda, Whisk, Azure Functions or Google Cloud Functions, are a major step towards leaving infrastructure problems to companies that are much better positioned to deal with them than most other people out there. It’s very exciting to know all the possibil­ities that these platforms open up to smaller teams. Technically it may not be anything especially new, but you no longer need the budget of an in­vestment bank to get all the benefits of tiny modules in isolated containers for achieving your big organization goals as well as for a start up.