Need advice about which tool to choose?Ask the StackShare community!

Azure Functions

664
689
+ 1
62
Celery

1.6K
1.6K
+ 1
280
Add tool

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Advice on Azure Functions and Celery

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!

See more
Replies (2)
Anis Zehani

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

See more

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.

See more
Needs advice
on
CeleryCelery
and
RabbitMQRabbitMQ

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.

See more
Replies (1)
Recommends
on
rqrqRedisRedis

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

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Azure Functions
Pros of Celery
  • 14
    Pay only when invoked
  • 11
    Great developer experience for C#
  • 9
    Multiple languages supported
  • 7
    Great debugging support
  • 5
    Can be used as lightweight https service
  • 4
    Easy scalability
  • 3
    WebHooks
  • 3
    Costo
  • 2
    Event driven
  • 2
    Azure component events for Storage, services etc
  • 2
    Poor developer experience for C#
  • 99
    Task queue
  • 63
    Python integration
  • 40
    Django integration
  • 30
    Scheduled Task
  • 19
    Publish/subsribe
  • 8
    Various backend broker
  • 6
    Easy to use
  • 5
    Great community
  • 5
    Workflow
  • 4
    Free
  • 1
    Dynamic

Sign up to add or upvote prosMake informed product decisions

Cons of Azure Functions
Cons of Celery
  • 1
    No persistent (writable) file system available
  • 1
    Poor support for Linux environments
  • 1
    Sporadic server & language runtime issues
  • 1
    Not suited for long-running applications
  • 4
    Sometimes loses tasks
  • 1
    Depends on broker

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is Azure Functions?

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.

What is Celery?

Celery is an asynchronous task queue/job queue based on distributed message passing. It is focused on real-time operation, but supports scheduling as well.

Need advice about which tool to choose?Ask the StackShare community!

Jobs that mention Azure Functions and Celery as a desired skillset
What companies use Azure Functions?
What companies use Celery?
See which teams inside your own company are using Azure Functions or Celery.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Azure Functions?
What tools integrate with Celery?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

GitHubPythonNode.js+47
54
72304
JavaScriptGitHubPython+42
53
21847
GitHubPythonSlack+25
7
3155
GitHubPythonDocker+24
13
17011
What are some alternatives to Azure Functions and Celery?
AWS Lambda
AWS Lambda is a compute service that runs your code in response to events and automatically manages the underlying compute resources for you. You can use AWS Lambda to extend other AWS services with custom logic, or create your own back-end services that operate at AWS scale, performance, and security.
Kubernetes
Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
Serverless
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.
Google Cloud Functions
Construct applications from bite-sized business logic billed to the nearest 100 milliseconds, only while your code is running
Cloud Functions for Firebase
Cloud Functions for Firebase lets you create functions that are triggered by Firebase products, such as changes to data in the Realtime Database, uploads to Cloud Storage, new user sign ups via Authentication, and conversion events in Analytics.
See all alternatives