everythingpossible - Fotolia
Infrastructure management and server maintenance can bog down IT teams and pull their focus away from more critical and complex tasks. Serverless computing removes those hurdles by shifting infrastructure management responsibilities to the cloud provider.
Serverless computing -- also referred to as function as a service (FaaS) -- is an event-driven model in which functions are units of code that execute in response to predefined or on-demand triggers. Serverless functions can be used to run code, build mobile and web applications, manage containers and handle other cloud computing tasks.
Public cloud providers offer a range of serverless tools and services that relieve cloud users of infrastructure management tasks. Evaluate the main serverless compute offerings from AWS, Google and Microsoft and decide which tool best fits your needs.
AWS Lambda: Developers can use this event-driven cloud computing service to run functions in the AWS cloud without having to manage or provision resources, such as servers and storage. With AWS Lambda, AWS manages the infrastructure and developers write the code. This service supports Node.js, Python, Java and C#, among other languages.
AWS Lambda executes via Lambda functions, which carry out specific, programmatic tasks in response to events from other Amazon cloud services -- such as Amazon S3, Amazon Simple Notification Service and CloudWatch. Lambda can also be orchestrated into workflows with AWS Step Functions.
Users can update and monitor Lambda functions via the AWS Lambda dashboard, command-line interface or software development kit. AWS Lambda can be used to process data, build web applications and various other capabilities in the AWS cloud. Lambda functions are priced on a pay-per-use basis.
AWS [email protected]: Developers use AWS [email protected] to run Lambda functions at the edge of AWS' global content delivery network. This serverless compute feature runs code geographically closer to end users to reduce latency. With [email protected], IT teams do not need to manage and provision infrastructure in multiple locations. Amazon CloudFront generates events that trigger [email protected] to run and deliver location-specific code.
AWS Fargate: AWS Fargate is a serverless compute engine for containers in the AWS cloud. This service works with Amazon Elastic Container Service and Amazon Elastic Kubernetes Service. AWS users can build and run Kubernetes applications in AWS without provisioning and managing pods.
With Fargate, developers control the parameters and access policies of their containerized applications while Amazon manages the underlying infrastructure. Fargate automatically scales to run containers in highly available environments. This service can launch thousands of containers simultaneously. Users can opt for Fargate Spot, a discounted version of the service built for interruption-tolerant applications.
Google Cloud Functions: Google Cloud Functions is the platform's serverless, event-driven computing service. Similar to AWS Lambda, Google Cloud Functions abstracts away the underlying infrastructure management and enables developers to focus on writing code and other tasks. With Google Cloud Functions, small programmatic code segments execute functions into a cloud environment in response to specific events.
This service can be trigged by resources within or outside of Google Cloud Platform (GCP). Google Cloud Functions connect with other GCP services along with other third-party services. GCP's serverless compute tool can trigger log analysis and data backups and carry out redundant tasks on data sets, among other tasks. Users pay for the number of functions they use.
Google App Engine: App Engine is a serverless PaaS product from Google where developers can build mobile and web applications. App Engine scales resources of any size with automatic infrastructure management and server maintenance. This tool provides built-in services, such as load balancing, application logging and health checks. The serverless compute platform also offers data storage and configuration capabilities.
App Engine users can access the Google Cloud Security Scanner to detect application security issues. App Engine is available in standard or flexible environments. In the standard App Engine environment, instances run in a sandbox environment and support a specific set of programming languages. The standard environment is suitable for applications that deal with rapid scaling.
The flexible environment for App Engine instances runs in containers on Google Compute Engine virtual machines. The flexible environment option works with applications that receive consistent traffic or experience fluctuations in traffic, and applications that scale gradually. The type of environment has fewer restrictions and supports more source code languages than the standard environment, including Python, Java, Node.js, Go, Ruby, PHP or .NET.
Google Cloud Run: Google Cloud Run is a serverless container management tool that runs stateless containers in managed environments. Google Cloud Run is built on Knative, an open source set of tools for building serverless apps on Kubernetes. It enables workload portability and supports all programming languages and open source libraries.
HTTPS requests trigger Cloud Run services. Cloud Run is used to build portable, container-based mobile and web applications with automatic scalability. This service works with other container management tools and technologies, such as CodeBuild, Container Registry and Docker.
Cloud users can deploy the managed, pay-per-use version of Google Cloud Run, which deploys stateless containers on Google Cloud. Or, users can opt for Cloud Run for Anthos, which runs containers on Google Cloud, on premises or on VMware environments. Cloud Run for Anthos supports custom machine types and provides additional network capabilities.
Azure Functions: Azure Functions is Microsoft's serverless compute service with comparable features to AWS Lambda and Google Cloud Functions. This event-driven serverless compute platform simplifies application development for IT teams by managing the infrastructure. Functions are executed via event triggers from Azure services or third-party sources, such as the Azure Event Hub, HTTPS requests, GitHub and message traffic from services such as Azure Storage.
Azure Functions handles development tasks such as data processing, file maintenance and data collection from IoT devices, among other capabilities. This service also integrates with other Azure offerings, including Azure Cosmos DB, Azure Mobile Apps and Azure Service Bus. Users pay for Azure Functions based on the amount of time a function runs in a billing cycle.
Azure App Service: Azure App Service is another serverless offering from Microsoft. Developers use this service to run mobile, web and Azure API applications in a managed environment. Azure App Service supports .NET, .NET Core, Java, Node.js, Python, PHP and Ruby. Azure App deploys applications in containers or as code and can run on Windows or Linux operating systems.
This serverless compute service provides features such as on-demand code, load balancing and autoscaling, as well as continuous integration and deployment with Azure DevOps, GitHub, BitBucket, Docker Hub or Azure Container Registry. Users can customize their Azure App Service model by choosing from one of several pricing plans that range from Free to Premium.
Azure Kubernetes Service: Microsoft Azure offers serverless container management with Azure Kubernetes Service (AKS). This serverless tool provides Kubernetes-orchestrated clusters that automatically scale depending on traffic spikes.
With AKS, Microsoft handles overhead management, configuration and integration with services such as Azure Active Directory. AKS also integrates with the Azure Container Registry for Docker image storage and Azure Disks. Azure cloud users can access the service with the AKS management portal, AKS command-line interface or Azure Resource Manager templates. Cloud users are not charged for Kubernetes clusters managed with AKS. Pricing is based on the cloud resources used in containers.