What is Serverless?
Serverless is a way to describe the services, practices, and strategies that enable you to build more agile applications so you can innovate and respond to change faster. With serverless computing, infrastructure management tasks like capacity provisioning and patching are handled by Cloud providers, so you can focus on only writing code that serves your customers. Serverless services like AWS Lambda come with automatic scaling, built-in high availability, and a pay-for-value billing model. Lambda is an event-driven compute service that enables you to run code in response to events from over 150 natively integrated AWS and SaaS sources – all without managing any servers.
In understanding the definition of serverless computing, it’s important to note that servers are still running the code. The serverless name comes from the fact that the tasks associated with infrastructure provisioning and management are invisible to the developer. This approach enables developers to increase their focus on the business logic and deliver more value to the core of the business. Serverless computing helps teams increase their productivity and bring products to market faster, and it allows organizations to better optimize resources and stay focused on innovation.
Why use Serverless?
A serverless approach will allow you to minimize undifferentiated work around managing servers, infrastructure, and the parts of the application that add less value to your customers. Serverless can make it easier to deliver new features in applications, launch experiments, and improve your team delivery velocity, while also providing a pay-for-value cost model.
- Move from idea to market, faster
- Adapt at scale
- Lower your costs
- Build better applications, easier
- More efficient use of resources
Below is the comparison of AWS, GCP, and Azure Serverless offerings. Please note, the information from the Cloud providers and the sources of information keeps changing on a day-to-day basis as the services advance.
|Features||AWS Lambda||Google Cloud||Azure Functions|
|Scalability and Availability||Automatic scaling (transparently)||Automatic scaling||Manual or metered scaling (App Service Plan), or sub-second automatic scaling (Consumption Plan)|
|Max # of Functions||Unlimited functions||1000 functions per project||Unlimited functions|
|Concurrent Executions||1000 parallel executions per account, per region (soft limit)||No limit||No limit|
|Max Execution||300 sec (5 min)||540 seconds (9 minutes)||300 sec (5 min)|
|Dependencies||Deployment Packages||npm package.json||Npm, NuGet|
|Deployments||Only ZIP upload (to Lambda or S3)||ZIP upload, Cloud Storage or Cloud Source Repositories||Visual Studio Team Services, OneDrive, Local Git repository, GitHub, Bitbucket, Dropbox, External repository|
|Environment Variables||Yes||Not yet||App Settings and ConnectionStrings from App Services|
|Versioning||Versions and aliases||Cloud Source branch/tag||Cloud Source branch/tag|
|Event-driven||S3, SNS, SES, DynamoDB, Kinesis, CloudWatch, Cognito, API Gateway, CodeCommit, etc.||Cloud Pub/Sub or Cloud Storage Object Change Notifications||Blob, EventHub, Generic WebHook, GitHub WebHook, Queue, Http, ServiceBus Queue, Service Bus Topic, Timer triggers|
|HTTP(S) Invocation||API Gateway||HTTP trigger||HTTP trigger|
|Orchestration||AWS Step Functions||Not yet||Azure Logic Apps|
|Logging||CloudWatch Logs||Stackdriver Logging||App Services monitoring|
|Monitoring||CloudWatch & X-Ray||Stackdriver Monitoring||Application Insights|
|In-browser Code Editor||Yes||Only with Cloud Source Repositories||Functions environment, App Service editor|
|Granular IAM||IAM roles||Not yet||IAM roles|
|Pricing||1M requests for free, then $0.20/1M invocations, plus $0.00001667/GB-sec||1M requests for free, then $0.40/1M invocations, plus $0.00000231/GB-sec||1 million requests for free, then $0.20/1M invocations, plus $0.000016/GB|
To know more about Miracle’s expertise around Serverless, please visit the below link.