Video: IBM's new tool to develop serverless applications
OK, so we'll always need some servers.
But with the rise of virtual machines (VM)s and container technologies such as Docker, combined with DevOps and cloud orchestration to automatically manage ever-larger numbers of server applications, serverless computing is becoming real.
We're a long, long way from the idea that you need one server to run one application.
Serverless computing refers to the concept of building and running applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment.
CNCF created the WG to "explore the intersection of cloud native and serverless technology." The first output of the group was a summary of serverless computing projects. These include Apache OpenWhisk, AWS Lambda, Google Cloud Functions, and Azure Cloud Functions. In short, all the major public cloud players are investing in serverless architectures. The vast majority of these are using Kubernetes to orchestrate their activities.
It's an idea that is gaining fans. In a survey at KubeCon Austin, the most recent of an international series of conferences for Kubernetes users, the CNCF found 41 percent of respondents are already using serverless technology. An additional 28 percent are planning on using it within the next 12 to 18 months. Of the respondents currently using serverless technology, 70 percent are using AWS Lambda, followed by much smaller numbers deploying with Google Cloud Functions, Apache OpenWhisk, and Azure Functions.
Why are they investing in this approach? According to the recently released CNCF WG-Serverless Whitepaper, "Serverless computing does not mean that we no longer use servers to host and run code; nor does it mean that operations engineers are no longer required." But "consumers of serverless computing no longer need to spend time and resources on server provisioning, maintenance, updates, scaling, and capacity planning. Instead, all of these tasks and capabilities are handled by a serverless platform and are completely abstracted away from the developers and IT/operations teams. As a result, developers focus on writing their applications' business logic. Operations engineers are able to elevate their focus to more business critical tasks."
What this means to your executive suite is you'll be spending less on operations and getting more productive work from your IT staff.
In practice, this approach can work in two different ways:
- Functions-as-a-Service (FaaS) typically provides event-driven computing. Developers run and manage application code with functions that are triggered by events or HTTP requests. Developers deploy small units of code to the FaaS, which are executed as needed as discrete actions, scaling without the need to manage servers or any other underlying infrastructure.
- Backend-as-a-Service (BaaS) are third-party API-based services that replace core subsets of functionality in an application. Because those APIs are provided as a service that auto-scales and operates transparently, this appears to the developer to be serverless.
By the CNCF WG's analysis, this delivers the following benefits to developers:
- Zero Server Ops: Serverless dramatically changes the cost model of running software applications through eliminating the overhead involved in the maintenance of server resources. Without provisioning, updating, or managing server infrastructure, a company can save significant overhead costs. In addition, since a serverless FaaS or BaaS can instantly and precisely scale to handle each individual incoming request, the serverless approach automatically scales down the compute resources so that there is never idle capacity.
- No Compute Cost When Idle: One of the greatest benefits of the serverless approach from a consumer perspective is that there are no costs resulting from idle capacity. For example, serverless compute services do not charge for idle VM or containers. When there's no work being done, there are no charges being racked up.
Even more important to the immediate bottom-line savings though, wrote Satwikeshwar Reddy, an AWS architect, is "the biggest advantage of Serverless Architecture (SA) and often over-shadowed by the operational cost savings is the developer time. More accurately, time it takes from an idea to a production ready feature."
That all sounds grand, but does it work?
Serverless computing, while new as a broadly accepted concept, isn't new in production. This "pay as you go" model can be traced back to 2006's short-lived Zimki company. Later, Iron.io, with its Worker container-based distributed work-on-demand platform, enabled customers to realize profits from a serverless approach. Since then, other companies have adopted this approach successfully.
Will a serverless approach work for your company? It's time to find out and an excellent place to start is with the CNCF white paper. And, who knows, maybe you will be able to say, "Servers? We don't need no stinkin' servers!" in your next IT planning meeting.