Azure / Azurite

A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies
MIT License
1.83k stars 325 forks source link

Is it advisable to use containerised Azurite for production like environment? #1390

Open arunrpillai15 opened 2 years ago

arunrpillai15 commented 2 years ago

Which service(blob, file, queue, table) does this issue concern?

Blob and Table Storage

Which version of the Azurite was used?

V3

Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)

DockerHub

What problem was encountered?

Scalability and Concurrency Limitations

We are working on a project where one of our clients requires their files (blob and table storage) to be held on their on-prem-datacentre. We were considering Containerised Azurite as a potential candidate for this requirement. Having worked with Azurite in the past for local development and testing, we were wondering if it is advisable to take it a step further into Production.

So far, we understand that Azurite has scaling and concurrency limitations - but will configuring data and metadata persistency to a production like server help mitigate these limitations?

We would be grateful for any feedback.

Regards, Arun Pillai

blueww commented 2 years ago

@arunrpillai15 Azurite is the emulator of Azure Storage; we expect Azurite to serve the request with the following features but won’t commit for production support. Meanwhile, you may experiment it with your services/workload and let us know if any specific issue/requirements coming up. We would be happy to have discussion or even guide you to enhance it given it’s an open-source product.

Following are some basic Azurite information, to help your evaluation.

  1. Feature parity with Azure Storage services (Blob/Table/Queue)
  2. Loki based storage doesn’t promise data persistency, SQL based theoretically promises but is preview and limited to blob support.
  3. Latency / throughput depends on the hardware to run Azurite. And Azurite is single process, so the throughput is limited and no SLA commit. You can test Azurite on your environment to see if it can meet your requirement.
bpossolo commented 2 years ago

I would not recommend Azurite for any sort of production application. From my experience with using it for development purposes, performance is very slow in comparison to the real Azure Storage service. My azurite container also crashes a lot however that could be because I'm running it on Apple Silicon under emulation mode...