Serverless computing frameworks are starting to gain traction because they provide another layer of abstraction that make IT infrastructure resources dynamically available whenever needed. For many developers that capability represents something akin to IT nirvana because, in theory at least, it means IT administrators no longer need to get between them and their code.
To a certain degree that’s true. Serverless computing frameworks are based on event-driven architectures that eliminate the need for developers to be concerned about any potential resource limitations. That doesn’t mean there aren’t any servers. It just means that provisioning of additional resources occurs instantly and transparently to the developer.
The most widely employed serverless computing framework is AWS Lambda. But it’s hardly the only one. Every major cloud provider today offers a serverless computing framework and before too long serverless computing frameworks will be a natural extension of any application development and deployment framework.
The primary reason developers are embracing serverless computing is that it enables a more granular approach to construct microservices. Stateless elements of the application that don’t need to constantly run can now lie dormant until needed. Any time an event occurs that requires that microservice, an alert is passed to the serverless framework, which in turn makes compute resources instantly available. As the stateless elements of an application are shifted onto a serverless computing framework, the application becomes smaller and less costly to run. Best of all, the application environment becomes more flexible, which in turn results in more applications being developed at a faster rate.
While that approach works great for a stateless workload, in the real world of IT most enterprise applications make extensive use of stateful workloads that require access to persistent storage. Stateful workloads don’t lend themselves to serverless computing frameworks. As application development continues to evolve, long-running stateful applications will continue to run on existing frameworks that will be augmented by serverless computing frameworks to process stateless workloads. Those stateless workloads are essentially child processes to the primary application workload.
The real challenge going forward is making it simpler for developers to invoke a serverless computing framework within the context of the platform they are using build and deploy their enterprise application. Serverless computing frameworks today are a bleeding edge pattern for processing certain classes of workloads using an arcane functional programming model that is difficult for developers to master. And serverless frameworks only lend themselves to stateless workloads that tend to spike within the application. Long-running workloads are going to run more cost-effective on existing application development and deployment frameworks based on containers or virtual machines that can be deployed either on-premises or in a public cloud.
Other factors that will limit usage of serverless computing frameworks include a lack of robust management tools and the fact that monitoring and debugging serverless computing environments requires a high degree of expertise. Unless an organization has application development and deployment processes that are mature, adding a serverless computing framework represents a complicated challenge for the average enterprise IT organization. Serverless is far from painless.
It’s also worth noting that serverless computing frameworks are from anything approaching an industry standard. Organizations such as the Cloud Native Computing Foundation (CNCF) are working to create a set of interfaces that would enable multiple serverless computing frameworks to be invoked as a natural extension of a Kubernetes cluster. But for the moment, serverless computing frameworks such as AWS Lambda are proprietary platforms that lock IT organizations into a specific cloud service. In time, however, as the interfaces for invoking serverless computing frameworks become defined, the faster public cloud computing services will become a commodity. Before too long, if an IT organization desires, cloud service providers might even bid to process workloads that might only cost pennies per second of CPU cycle time. Not every IT organization is going to be ready for a cost model with millisecond granularity and would benefit more from the cost stability of a PaaS. What’s important is being able to maintain flexibility across multiple types and classes of abstractions inside and out of the cloud.
Serverless computing frameworks will inevitably experience the same hype cycle that has afflicted every other emerging technology. Irrational exuberance will be quickly followed by disillusionment. There’s no doubt serverless computing frameworks will play a crucial role in future of IT — but they are only one of many types of abstractions that include virtual machines, containers, and, just as significantly, PaaS environments. In fact, it will arguably be through PaaS environments through which most of the benefits of serverless computing frameworks will ultimately be realized as an extension to any comprehensive multicloud computing strategy.
The Cloud Native Computing Foundation is a sponsor of The New Stack.
Feature image via Pixabay.