As we continue to review the buzzwords that were echoing out of all the tech and dev trend forecasts, we take a closer look at Serverless Computing.
Serverless computing isn’t a brand-new concept, and it started gaining momentum about 7 years ago, with the release of AWS Lambda, recently hailed by Amazon CTO Werner Vogels as “the last crucial piece” in the promise of the cloud. Now – nearly all cloud providers offer serverless capabilities for their customers: Microsoft offers Azure Functions, IBM made its open source Bluemix OpenWhisk serverless computing platform available in December on the BlueMix PaaS; and let’s not forget that Google is in the running with Google Cloud Functions.
All those big names certainly confirm that this is a white-hot trend, but what exactly is serverless computing, anyway?
While all the above services differ, they all enable developers to upload snippets of code, maintained independently, that are called into action at runtime, triggered to behave a certain way in response to certain inputs. This setup allows developers to focus on coding rather than back-end operations.
The term serverless computing refers to a programming model and architecture where code snippets are executed in the cloud. Developers leave most common operational issues and overhead, like: resource provisioning, monitoring, maintenance, scalability, and fault-tolerance to the cloud provider. Serverless offers a “slimmer” programming model based on stateless functions. Serverless platforms can ideally provide new capabilities that make writing scalable microservices less complex and more cost effective, positioning themselves as the next step in the evolution of cloud computing architectures.
As cloud service providers and gurus continue to praise serverless computing and celebrate the cloud reaching the next level, we put together a quick list of the tangible benefits enterprises and organizations can get from serverless computing.
#2 Serverless computing can verify and validate. In today’s world of big data, this benefit is extensive. Netflix, for example, use AWS Lambda: Netflix programs event-based triggers to automate the encoding process of media files and the validation of backup procedures. As soon as a backup file is written to an object storage bucket, it can be verified to ensure accuracy. You can also use log files generated by the applications and infrastructure that is processed in real-time to find inconsistencies and unusual usage patterns.
#3 Serverless computing accounts for unpredictable spikes in demand. Resource management is something all of us should be thinking about, especially in today’s social media environment. When DJ Khaled posts a viral video on snapchat, he attracts 3 to 4 million viewers in no time. These are spontaneous posts, and there is no way of knowing when these spikes in network data are going to occur. A trigger-based programming model can be very useful in these cases. Code can be activated very quickly and respond to events without having to specify the resources needed from the cloud provider. This provides teams with seamlessly scalable resources, at a lower cost than with traditional hosting.
#4 Serverless computing is cheaper. This works for both the business and the customer: For the business, the serverless code runs on demand rather than continuously, so you only pay for the computing time that you are using. For customers, serverless functions can be taken up or down in fractions of a second, so you can charge a customer based on usage rather than incrementally – by the hour, week, or year.
#5 Serverless computing will continue to grow, boosted by open source components: In this article from GeekWire, Alan Ho, a product marketing manager for Google, reveals that there are a lot of improvements that can still be made and that Google hopes to work with the open-source community to develop serverless tools instead of building its own Google Cloud Functions-oriented tools.
#6 Serverless computing allows companies to scale. The vast scaling properties of serverless computers will help companies well when expanding the business. One great example is iRobot – that chose serverless computing to help focus on business logic and scaling applications. With 15 million home robots in the world, and only 40% of them in the US, iRobot uses serverless computing to secure robots when they connect to the cloud, and to identify and send out firmware updates in batches. Looking at future development, iRobot is starting to think about how these 15 million home robot fleets can start talking with other home automation products or share data to the internet in new ways.
Whether it’s for scale, cost, speed, or freedom from infrastructure overhead, more and more companies are beginning to look at leveraging the advantages of serverless, and the industry is responding with innovative solutions to enable serverless models.