Despite the advantages of cloud services, such as Amazon Web Services and Microsoft Azure, they still come with overhead. Whether its virtual servers, object storage buckets or SQL databases, you must provision resources before using them. While that seems like an obvious requirement, it does add cost, time and friction to the cloud experience. But what if the system could automatically provision services and execute jobs in response to events, such as a message from another application? That’s the principle behind serverless applications, also referred to as cloud functions.
Serverless computing offers a way to more easily deploy and manage complex enterprise apps. In this article, I detail two popular options, AWS Lambda and Azure Functions, including how they differ in terms of pricing, triggers and containers. These services, sometimes called functions-as-a-service, along with similar offerings from Google Cloud and IBM Bluemix can change how developers approach application design for event-driven needs since functions only execute in response to defined triggers such as changes in storage containers, activity on a message queue or access from an exposed HTTP API. Furthermore, triggering events aren’t confined to activity on AWS or Azure, but can come from a third-party or on-premises system.
Functions have become a standard feature of the major infrastructure as a service providers, but they’re a new and rapidly evolving category. Watch for developments as providers add features, language support and integration with development environments and continuous delivery tools. One area of change will likely be the configuration dashboards, which can be confusing, given the number of event sources and function mappings. See the rest of the article for details on specific features and how Lambda and Azure Functions compare, including a pricing example.