Need advice about which tool to choose?Ask the StackShare community!
Azure Functions vs Serverless: What are the differences?
Developers describe Azure Functions as "Listen and react to events across your stack". Azure Functions is an event driven, compute-on-demand experience that extends the existing Azure application platform with capabilities to implement code triggered by events occurring in virtually any Azure or 3rd party service as well as on-premises systems. On the other hand, Serverless is detailed as "The most widely-adopted toolkit for building serverless applications". Build applications comprised of microservices that run in response to events, auto-scale for you, and only charge you when they run. This lowers the total cost of maintaining your apps, enabling you to build more logic, faster. The Framework uses new event-driven compute services, like AWS Lambda, Google CloudFunctions, and more.
Azure Functions and Serverless can be primarily classified as "Serverless / Task Processing" tools.
"Pay only when invoked" is the top reason why over 7 developers like Azure Functions, while over 10 developers mention "API integration " as the leading cause for choosing Serverless.
Serverless is an open source tool with 30.9K GitHub stars and 3.43K GitHub forks. Here's a link to Serverless's open source repository on GitHub.
Droplr, Plista GmbH, and Hammerhead are some of the popular companies that use Serverless, whereas Azure Functions is used by Property With Potential, OneWire, and Veris. Serverless has a broader approval, being mentioned in 117 company stacks & 44 developers stacks; compared to Azure Functions, which is listed in 30 company stacks and 22 developer stacks.
When adding a new feature to Checkly rearchitecting some older piece, I tend to pick Heroku for rolling it out. But not always, because sometimes I pick AWS Lambda . The short story:
- Developer Experience trumps everything.
- AWS Lambda is cheap. Up to a limit though. This impact not only your wallet.
- If you need geographic spread, AWS is lonely at the top.
Recently, I was doing a brainstorm at a startup here in Berlin on the future of their infrastructure. They were ready to move on from their initial, almost 100% Ec2 + Chef based setup. Everything was on the table. But we crossed out a lot quite quickly:
- Pure, uncut, self hosted Kubernetes — way too much complexity
- Managed Kubernetes in various flavors — still too much complexity
- Zeit — Maybe, but no Docker support
- Elastic Beanstalk — Maybe, bit old but does the job
- Heroku
- Lambda
It became clear a mix of PaaS and FaaS was the way to go. What a surprise! That is exactly what I use for Checkly! But when do you pick which model?
I chopped that question up into the following categories:
- Developer Experience / DX 🤓
- Ops Experience / OX 🐂 (?)
- Cost 💵
- Lock in 🔐
Read the full post linked below for all details
Pros of Azure Functions
- Pay only when invoked11
- Great developer experience for C#8
- Multiple languages supported5
- Great debugging support5
- Poor developer experience for C#2
- Easy scalability2
- Can be used as lightweight https service2
- Event driven1
- Azure component events for Storage, services etc1
- WebHooks1
Pros of Serverless
- API integration12
- Supports cloud functions for Google, Azure, and IBM6
- Lower cost2
- Auto scale1
- Openwhisk0