XcellHost | Blog

What Is Server-less Computing?

Written by Abhishek Nimbalkar | Sep 7, 2020 12:02:40 PM

The computer industry has a tradition of hiding complexity to simplify and make it easier for consumers. Now we see it again with a term known as server-less computing.

Recall when the industry wanted to stop physical servers? Overnight, virtualization saw businesses move from acquiring physical tin to software-based virtual machines in the cloud instead. Then containers wiped out virtual machines(VM's) to make it even more effective, stripping off the full copy of the operating system needed by each VM and requiring lots of containers to share the same underlying OS kernel instead. Now server-less computing means completely removing a server that is running continuously.

Also known as Functions as a Service ( FaaS), server-less computing finally realizes a long-promised cloud computing feature: you should pay only for what you are using. If you were to run your own cloud-based service like a currency converter in the past, you would have to keep it running on a virtual server even though you just used it occasionally. That meant that you still had to pay for the up-time of that server when it was not doing anything.

All that changes to server-less computing. It doesn't start the service that you run until some other programme asks you to use it. Then, it kicks off that function to serve the request somewhere in the cloud (the idea is that you don't really care where). Then again, it shuts down the service. The result is a lower computing cost in many cases because server-less environments can do what cloud engineers call 'scaling to zero,' where nothing runs until it is needed.

To run in a server-less environment it requires the right kind of programme. Your legacy monolithic ERP software is not well suited to this operating model, with its many moving parts. Some part of the application is always needed for something, and you can't just run that small part of the code; you have to run the whole application all the time.

Where server-less computing makes sense is for microservices, where developers have broken down their apps into several small services, doing only one thing each. Using an event framework, you can cause requests for these services which relays events between them. If one service takes a foreign payment, say, it will tell the event system, which will then wake up the currency conversion service only long enough to satisfy the order. However, you will have to design your software to support all of that, which means an upfront investment for later cost and computing efficiency now.

The other problem is lock-in and control of vendors. Server-less computing is a cloud technology and numerous cloud service providers have their own solutions to sell. AWS has Lambda, an architecture for server-less computing that operates with its own data storage, application integration, and developer tooling. Google has features in the Cloud. Microsoft is venturing its own 'end-to - end' Azure server-less platform that covers storage, configuration management, database technology and DevOps. None of these sites have been designed to speak to each other, meaning you could find it hard to turn later if you put one service provider in your bunch.

Cloud providers running these systems often come with vendor restrictions, such as limits on how long and how many of them can run simultaneously for a server-less application. When you abstract infrastructure and stop worrying about it, that's part of the issue-you also give up power of it and someone else gets to make the rules.

We hope this lock-in and control level will improve over time, however, thanks to growing support for open-source technology. These include Knative, which allows server-less functions to be handled by the widely accepted open source Kubernetes container management system.

Companies who want complete control of their own server-less functions are given choices. This can be achieved in on-site environments, along with open-source systems such as IronFunctions, as can Cloud Run, Google's server-less platform based on Knative. But self-hosted server-less would be a steep learning curve for small businesses with minimal IT expertise.

Cloud-based server-less environments are a cheap way to test your theories and potentially construct more effective computing models if you're building a proof-of - concept or pilot framework. Only be sure that you have a long-term design strategy that helps you to make good decisions about what to build with these frames. Now you should not save time and resources later on at the cost of independence and autonomy.