Serverless Computing: Big Potential – with a Few ‘If’s’
Serverless computing has become one of enterprise technology’s hottest buzzwords, even though the term is a bit of a misnomer. No, servers aren’t going away. But serverless computing, also known as Function as a Service (FaaS), represents a dramatic change in how applications are run.
Despite the increased agility that today’s heavily containerized environment has given developers, they also have to be concerned with underlying infrastructure considerations, such as number of servers, amount of storage and such. This is the Ops part of DevOps that relatively few developers are proficient in or enthusiastic about. Why? Because it slows them down; and most just want to write code, not deal with infrastructure chores.
But in serverless computing, those tasks are essentially outsourced to a third-party cloud provider. Developers upload their application code to the serverless platforms; the provider executes functions only when needed and charges only when the code is consumed.
This means organizations are spared one of their biggest pain points – paying for a number of servers when an application is deployed, as well as other chores in managing, scaling and provisioning servers.
The pay-as-you-go concept first rose to prominence in the early 2000s amid the exponential growth in the bandwidth of the internet, which enabled businesses to cost-efficiently leverage computer resources as and when they were needed. Does anybody remember “utility computing”?
The appeal of serverless is understandable: It appears to be more cost effective than paying for a fixed number of servers, and greatly reduces the time that resources are left idle. It also gives busy enterprises one less thing to fret about; the cloud provider alone is responsible for capacity planning and ensuring that demand is met.
In 2014, Amazon Web Services was the first public cloud vendor to introduce an abstract serverless computing offering, when it launched AWS Lambda. Google Cloud and Microsoft Azure soon followed suit with Google Cloud Functions and Azure Functions.
Over the last decade, development in IT has seen various layers of abstraction on top of hardware to enable innovation at scale. These include virtualization to run multiple different apps on a single platform, cloud to virtualize the network storage, and containers to spray applications across different clouds without worrying about how things are connected and managed.
Think of serverless as the ultimate layer of abstraction – write code, define a function, execute, and get a return.
All sounds great, right? As with most emerging trends, the promised advantages are appealing. But they come with caveats.
While using a third-party, such as AWS Lambda, lends speed to developing a function, not everyone is ready for it. Embracing serverless requires businesses to adopt a much different way of thinking, because it’s effectively outsourcing whole pieces of infrastructure – in fact, everything apart from the app itself.
Are large organizations “there” yet in terms of trusting a third party to this extent? On the answer to this question rests the extent to which serverless will gain market traction. My hunch is that the many benefits that serverless offers will overcome the doubts, just as cloud computing passed a tipping point once organizations believed it was not only a credible but an extremely valuable alternative.
There are also questions about the economics of serverless. While on the face of it, the model should reduce the amount of waste in a system, it doesn’t offer much in terms of economies of scale, as this is where the cloud providers make their money.
As with cloud computing, some large-scale users may find that the workloads can be more economically run in-house. For this very reason, some on-premises serverless providers, such as Galactic Fog, are winning customers.
Building infrastructure that works and building infrastructure that really makes a difference to the business are two entirely different things and a distinction that the most successful organizations understand.
The crux of the matter is that serverless computing allows developers to focus on writing software rather than worry about cost or scalability issues. This means real business problems can be addressed, and that’s why I think serverless has the potential to significantly impact the industry.
It’s going to be very interesting to see how the serverless computing trend plays out. If the questions about it get answered to large enterprises’ satisfaction, it could become standard operating procedure in the years to come.
Mark Baker is field product manager at Canonical.