Usability means many things to different people. From a UI perspective, it's getting the user from task concept to task completion as quickly and efficiently as possible. For a developer, it's much the same - although when it comes to serverless computing, the environment is not the UI but all the non-essential clutter that surrounds the task of manifesting a creative idea in code.
In the serverless world of microservices having multiple functions, APIs and data streams to deal with might not seem like the ideal route to maximise usability. But the ability to build, test and deploy app components quickly, going serverless in fact makes the overall task of building exciting new apps easier, much more so than the task of modifying, testing and re-deploying existing monolithic applications once change - never easy - becomes forced upon you.
That said, there are a number of trade-offs which mean that, right now, serverless computing as a concept is not suited to all tasks - we explore use cases in another blog in this series. But the key benefits which contribute to enhanced usability of your infrastructure include the lack of a need to manage hardware or software estates, and the ability to spin up and spin down functions as required at very low cost. You can connect and extend all cloud services - whether Google's or those from third-party - and build applications that scale from zero to planet-scale without provisioning or managing a single server. No management overhead.
This lack of management overhead feeds through to function deployment. Compared to containers, deploying a serverless function needs no provisioning; availability levels and system policies are irrelevant, and scalability is automatic. In other words, if you have invented a neat way of cleaning up or otherwise manipulating a data stream, for example, that code needs only to be wrapped in a function and deployed.
This the key to the usability of serverless functions. You can simply focus on the code without dealing with the infrastructure.
This ease of use carries on through to the tools you use. You need no special framework or language. With popular development languages and tools, you stay productive and agile and, with zero server management or configuration deployments, you can focus on building highly scalable applications. Languages you can use include Java, PHP, Node.js, Python, C#, .Net, Ruby and Go - or you can bring your own language run-times and frameworks if you choose.
You can start quickly with zero configuration deployments, manage resources from the command line, debug source code in production, and run API back-ends easily using popular tools such as IntelliJ IDEA, Visual Studio and Powershell - as well of course as Google's own in-built tools such as Cloud SDK and Cloud Source Repositories.
From a developer perspective, ease of use means the ability to focus on taking a concept from idea to reality, using the tools and languages with which you are already familiar. And this makes serverless computing a slam-dunk.