As a relatively new, and potentially less well-known architecture, serverless might require some defining. Indeed, three years ago, this whole area of technology did not exist. Serverless means, from a developer’s point of view, that there is no need to setup or manage server infrastructure running your applications. This doesn’t mean that servers aren’t involved of course – they are, but with serverless computing developers are shielded from various server management decisions and capacity planning decisions. Without having to factor servers into their task load or having the burden of managing and maintaining an infrastructure, developers can focus on what they do best.
What’s more - in the past, they have had to learn how to configure many different services and frameworks including apache, nginx, postfix or php – just to a name a few. Now, serverless has liberated developers by allowing them to focus on coding in the languages they best understand. The net effect is that developers have more time to focus on innovation, instead of managing the servers that run their code.
Speed, ease & cost efficiency
So, how is this new tech paradigm being applied? Generally speaking, due to the fact that serverless is relatively new, it lends itself to modern cloud native or microservice applications as opposed to legacy apps. Serverless computing is most suited to low-performance computing workloads due to the limits on resource imposed by cloud providers.
A particularly compelling use case for serverless is for building APIs due to increased speed. APIs are the software intermediaries that allow two applications to talk to each other. With serverless, developers can build APIs without having to manage any back-end infrastructure. If you’re a front end java script developer for example, now you can build an API much quicker as you don’t have to focus on lower level infrastructure operations and understand multiple coding languages.
In addition to developing APIs more quickly and easily, the use cases for serverless computing extends to traffic flow. APIs might get busy every day, but the peaks can be hard to predict. Let’s take the example of a ticketing company – they will need to cope with huge spikes in traffic when a new show is announced. They will not necessarily need this level of server capacity at all times, but will still need to be prepared for it. With serverless, greater cost efficiency can be achieved as you only pay when requests are coming in and when your code is running.
For start-ups & for large scale enterprises
With lower upfront costs, serverless is great for start-ups – because they only really start paying when they begin to get traffic. Beyond start-ups, enterprises of any size that are looking to develop APIs will find that the benefits are clear – not only is serverless better value for money, it is quick, easy to use, and doesn’t involve taking on a huge amount of risk.
Software developers SiteSpirit are a good example of how serverless architecture can help solve a business challenge by optimising processes. SiteSpirit helps clients create picture-perfect marketing material with a serverless media-library-as-a-service. In highly visual industries such as travel and real estate, marketers need quick and easy access to the right images to design compelling campaigns. With this cloud based service, the pain of storing, tagging, retrieving and manipulating thousands of images is removed —and is built on a serverless architecture to keep costs low.
Open-source platforms open up innovation
However, concerns remain around proprietary lock-in as code written and deployed in the cloud becomes inextricably linked with the cloud provider at that point in time. This means that applications become optimised for a specific cloud environment, and moving cloud provider could sacrifice performance and responsiveness of an application. This is why many developers are now looking to open source solutions. IBM Cloud Functions is based on Apache OpenWhisk, a serverless, open source cloud platform which gives developers to an entire ecosystem that allows them to execute code in response to events at any scale while OpenWhisk handles the infrastructure and servers.
Other open source tools for serverless development are becoming available such as IBM’s Composer tool, which works in tandem with OpenWhisk and helps developers to orchestrate disparate serverless functions. This enables them to develop and scale applications at speed, spending more time on innovation and less time on configuring infrastructure. Deploying this kind of higher order tool, as opposed to running numerous functions that run in parallel will be crucial to optimising time spent on actual coding and building game-changing technology in the cloud.
Serverless: Serving the developer community
As serverless architectures are improved and the parameters are broadened, they are likely to become increasingly popular with developers looking to save time, reduce costs and focus on what they do best. Within a couple of years, serverless is likely to become a default mode for the development of cloud-based technologies, liberating developers from back-end infrastructure maintenance and opening up programming to the many not the few. In this way, serverless has the potential to provide a whole new way of working for developers; one in which innovation is at the fore.
James Thomas, Developer Advocate, IBM’s Cloud division
Image source: Shutterstock/violetkaipa