Need advice about which tool to choose?Ask the StackShare community!
Azure Functions vs Celery: What are the differences?
Introduction
Azure Functions and Celery are both popular choices for building distributed applications and implementing task scheduling. However, there are several key differences between them that make them suitable for different use cases.
Scaling Model: Azure Functions provide automatic scaling and provisioning of resources based on demand. It allows developers to focus on writing code without worrying about infrastructure management. On the other hand, Celery requires manual configuration of resources and scaling based on the specific requirements of the application.
Compatibility: Azure Functions are a cloud-based serverless computing solution, specifically designed for Microsoft Azure. It integrates well with other Azure services and provides seamless connectivity with various data sources. Celery, on the other hand, is a distributed task queue framework for Python and can be used with different message brokers such as RabbitMQ, Redis, or Amazon SQS.
Language Support: Azure Functions support multiple programming languages including C#, JavaScript, Java, PowerShell, and Python. This allows developers to choose the language they are most comfortable with. Celery, as mentioned earlier, is primarily for Python applications and provides a Python-specific API for task management.
Development Environment: Azure Functions can be developed and tested locally using the Azure Functions Core Tools, which provide a local development environment. Celery also supports local development and testing, but it requires setting up the necessary infrastructure components, such as message brokers, locally.
Function Triggers: Azure Functions provide a wide range of triggers, such as HTTP request, timer, Azure Storage, Service Bus, and Event Grid, that can invoke the function. This allows developers to create serverless applications with event-driven architectures. Celery, on the other hand, relies on the message broker to trigger tasks or functions.
Managed Service vs Framework: Azure Functions is a fully managed service provided by Microsoft Azure, which means the infrastructure and management overhead are handled by Azure. Celery, on the other hand, is a framework that needs to be set up and managed by the developers themselves, including infrastructure provisioning and monitoring.
In summary, Azure Functions provide automatic scaling, seamless integration with Azure services, support for multiple programming languages, and a fully managed serverless computing platform. On the other hand, Celery offers more flexibility in terms of choice of message broker, extensive task queue management for Python applications, and the ability to set up and manage the entire infrastructure independently.
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.
I am just a beginner at these two technologies.
Problem statement: I am getting lakh of users from the sequel server for whom I need to create caches in MongoDB by making different REST API requests.
Here these users can be treated as messages. Each REST API request is a task.
I am confused about whether I should go for RabbitMQ alone or Celery.
If I have to go with RabbitMQ, I prefer to use python with Pika module. But the challenge with Pika is, it is not thread-safe. So I am not finding a way to execute a lakh of API requests in parallel using multiple threads using Pika.
If I have to go with Celery, I don't know how I can achieve better scalability in executing these API requests in parallel.
For large amounts of small tasks and caches I have had good luck with Redis and RQ. I have not personally used celery but I am fairly sure it would scale well, and I have not used RabbitMQ for anything besides communication between services. If you prefer python my suggestions should feel comfortable.
Sorry I do not have a more information
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 Celery
- Task queue99
- Python integration63
- Django integration40
- Scheduled Task30
- Publish/subsribe19
- Various backend broker8
- Easy to use6
- Great community5
- Workflow5
- Free4
- Dynamic1
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
Cons of Celery
- Sometimes loses tasks4
- Depends on broker1