Creating a good local development experience allows for developers to run independently, with no shared resources and few online connections. This way, developers can code while having a minimal impact on other developers.
Now sometimes, you can’t get away without requiring developers to use the cloud while developing a system. One thing Azure does well is providing emulators for many of their services. With all their offerings, you might be able to do nearly all development locally, except for Azure Blob Storage (where you can store files, SPAs, and temporary files).
Without the ability to run Azure Blob storage on your machine, it is not very easy to develop purely locally. Azure has supported a storage emulator for a while, but the storage emulator was Windows only. So Mac developers like me were left out.
In comes Azurite, an Azure Storage emulator written in TypeScript, run using NodeJS (in a Docker container).
To install Azurite, just run:
npm install -g azurite
After installing Azurite, just run it. Now you probably want to provide some command-line arguments to control where things will be stored. The example below will store blob files in the blob directory.
azurite --silent --location ./blob --debug ./debug.log
Azurite is a great solution when looking for pure local development. Plus, it’s free! And even though Azurite is currently in preview, it’s exciting to see Microsoft continuing to explore new ways to give developers more tools and options. And from the way it sounds, Azurite will eventually replace Azure Storage Emulator. Welcome to the future.
The one drawback to Azurite is that it does not support Table storage (but it does support blob storage and storage queues). As it becomes more feature-rich, Azurite could serve as a good default solution for running these must-have services locally instead of using shared resources in the cloud.
For more information, visit https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azurite.