Need advice about which tool to choose?Ask the StackShare community!
Azure Functions vs Serverless: What are the differences?
Introduction Azure Functions and Serverless are two popular cloud computing platforms that provide the ability to run code in response to events without the need for managing infrastructure. While both Azure Functions and Serverless offer similar functionality, there are several key differences between the two.
Deployment Environment: Azure Functions is a service provided by Microsoft Azure, while Serverless is a framework that can be used with various cloud providers including Azure. This means that Azure Functions is tightly integrated with Azure's infrastructure, while Serverless provides a more agnostic approach, allowing developers to use it across multiple cloud platforms.
Supported Languages: Azure Functions offers support for multiple programming languages, including C#, Java, JavaScript, TypeScript, and Python. In contrast, Serverless has broader language support and can be used with languages such as Node.js, Python, Java, C#, Ruby, Go, and more. Serverless offers a wider range of choices for developers in terms of programming languages.
Scalability: Both Azure Functions and Serverless are designed to provide automatic scalability. However, Azure Functions scales on a per-function basis, which means that each function can scale independently based on its specific workload. Serverless, on the other hand, scales at the service level, allowing multiple functions within the service to scale together. This can provide more efficient scaling in situations where multiple functions share similar resource requirements.
Pricing Model: Azure Functions pricing is based on the consumption plan, where users are billed for the resources used during the execution of their functions. On the other hand, Serverless offers more flexibility in pricing options, allowing users to choose between on-demand pricing or reserved capacity pricing. This gives users the ability to optimize costs based on their specific usage patterns.
Extensibility: Azure Functions allows developers to extend the platform by creating custom bindings and triggers. These custom extensions can be used to integrate with external services and resources. Serverless also supports extensibility through plugins, which can be used to add functionality and integrations with various services. However, Serverless has a larger and more active community of plugin developers, providing a wider range of options for extending the platform.
Vendor Lock-in: Both Azure Functions and Serverless provide some level of vendor lock-in as they are both cloud platform-specific. However, Serverless offers more flexibility in terms of deployment options, allowing developers to switch between different cloud providers more easily. Azure Functions, being a service provided by Microsoft Azure, ties users more closely to the Azure ecosystem.
In Summary, Azure Functions and Serverless offer similar functionality in terms of running code in response to events, but differ in deployment environment, supported languages, scalability model, pricing, extensibility options, and level of vendor lock-in. The choice between the two platforms depends on specific requirements such as language preferences, desired scalability model, pricing flexibility, and integration needs.
Need advice on what platform, systems and tools to use.
Evaluating whether to start a new digital business for which we will need to build a website that handles all traffic. Website only right now. May add smartphone apps later. No desktop app will ever be added. Website to serve various countries and languages. B2B and B2C type customers. Need to handle heavy traffic, be low cost, and scale well.
We are open to either build it on AWS or on Microsoft Azure.
Apologies if I'm leaving out some info. My first post. :) Thanks in advance!
I recommend this : -Spring reactive for back end : the fact it's reactive (async) it consumes half of the resources that a sync platform needs (so less CPU -> less money). -Angular : Web Front end ; it's gives you the possibility to use PWA which is a cheap replacement for a mobile app (but more less popular). -Docker images. -Kubernetes to orchestrate all the containers. -I Use Jenkins / blueocean, ansible for my CI/CD (with Github of course) -AWS of course : u can run a K8S cluster there, make it multi AZ (availability zones) to be highly available, use a load balancer and an auto scaler and ur good to go. -You can store data by taking any managed DB or u can deploy ur own (cheap but risky).
You pay less money, but u need some technical 2 - 3 guys to make that done.
Good luck
My advice will be Front end: React Backend: Language: Java, Kotlin. Database: SQL: Postgres, MySQL, Aurora NOSQL: Mongo db. Caching: Redis. Public : Spring Webflux for async public facing operation. Admin api: Spring boot, Hibrernate, Rest API. Build Container image. Kuberenetes: AWS EKS, AWS ECS, Google GKE. Use Jenkins for CI/CD pipeline. Buddy works is good for AWS. Static content: Host on AWS S3 bucket, Use Cloudfront or Cloudflare as CDN.
Serverless Solution: Api gateway Lambda, Serveless Aurora (SQL). AWS S3 bucket.
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 invoked14
- Great developer experience for C#11
- Multiple languages supported9
- Great debugging support7
- Can be used as lightweight https service5
- Easy scalability4
- WebHooks3
- Costo3
- Event driven2
- Azure component events for Storage, services etc2
- Poor developer experience for C#2
Pros of Serverless
- API integration14
- Supports cloud functions for Google, Azure, and IBM7
- Lower cost3
- Auto scale1
- Openwhisk1
Sign up to add or upvote prosMake informed product decisions
Cons of Azure Functions
- No persistent (writable) file system available1
- Poor support for Linux environments1
- Sporadic server & language runtime issues1
- Not suited for long-running applications1