In this episode of Azure Friday, John Downs joins Scott Hanselman to discuss how to design, architect, and build multitenant Software-as-a-Service (SaaS) solutions on Azure. If you’re building a SaaS product or another multitenant service, there’s a lot to consider when you want to ensure high performance, tenant isolation, and managing deployments. They walk through some example SaaS architectures and see how Microsoft provides guidance to help you to build a multitenant solution on top of Azure.
John Downs, Paolo Salvatori, and Paul Burpo have created a great video on architecting multitenant solutions on Azure. Multitenant architectures bring along some unique challenges and opportunities that they go into and provide guidance on how to do this in Azure and what to do vs avoid.
This video is aimed at developers and architects who are building multitenant or SaaS applications, including startups and ISVs.
Looking for more details around Azure Datacenters across the globe? Check out this link which shows an awesome way to explore Azure Global Infrastructure. You can explore the globe and click on any of the data centers to learn more, like in Canada Central:
You will see some satellites in orbit but unfortunately, you can’t click on them.
You can also take a 3D virtual tour over at We Live in the Cloud which is pretty neat for learning about what’s inside Azure data centers. Did you know that Microsoft has over 4 million servers that contain over 40 million hard disks and solid-state drives, totally over 40 exabytes of storage capacity.
Now in its third year, Azure Spring Clean returns this March to help with all of your Azure Management needs. The event will run from Monday 14th of March through until Friday18th. Each day, there will be articles from the following blend of topics: Azure Monitor Azure Cost Management Azure Policy Azure Security Principles Azure […]
After installing Visual Studio 2022 and working with Azure Functions I noticed that a new storage emulator is being used called Azurite.
Azurite is an open source Azure Storage API compatible server (emulator). Based on Node.js, Azurite provides cross platform experiences for customers wanting to try Azure Storage easily in a local environment. Azurite simulates most of the commands supported by Azure Storage with minimal dependencies.
This seemed to replace the old Azure Storage Emulator you would run previously when doing local development. I quickly came across an issue where the Azurite emulator cannot be started because port 10000 is already in use. This is also applied to ports 10001 and 10002 which it uses. Here are the contents of the Service Dependencies from the Visual Studio 2022 Output pane:
Ensuring Azure Functions Core Tools are up to date. This may take a few minutes...
Azure Functions Core Tools are up to date.
DotNetCore31-FunctionApp: Azurite emulator cannot be started because port 10000 is already in use. Another instance of the Azurite emulator or Azure Storage emulator might be already running on your machine.
DotNetCore31-FunctionApp: We detected that Azure Storage emulator is running on your machine. The Azure Storage emulator is now deprecated. Microsoft recommends that you use the Azurite emulator for local development with Azure Storage. Follow the directions in the link 'https://go.microsoft.com/fwlink/?LinkID=2167087' to install and run Azurite emulator.
Unable to start dependency 'functions.storage1'.
Ensuring Azure Functions Core Tools are up to date. This may take a few minutes...
Azure Functions Core Tools are up to date.
Ensuring Azure Functions Core Tools are up to date. This may take a few minutes...
Azure Functions Core Tools are up to date.
DotNetCore31-FunctionApp: Azurite emulator cannot be started because port 10000 is already in use. Another instance of the Azurite emulator or Azure Storage emulator might be already running on your machine.
DotNetCore31-FunctionApp: We detected that Azure Storage emulator is running on your machine. The Azure Storage emulator is now deprecated. Microsoft recommends that you use the Azurite emulator for local development with Azure Storage. Follow the directions in the link 'https://go.microsoft.com/fwlink/?LinkID=2167087' to install and run Azurite emulator.
Unable to start dependency 'storage1'.
DotNetCore31-FunctionApp: Azurite emulator cannot be started because port 10000 is already in use. Another instance of the Azurite emulator or Azure Storage emulator might be already running on your machine.
DotNetCore31-FunctionApp: We detected that Azure Storage emulator is running on your machine. The Azure Storage emulator is now deprecated. Microsoft recommends that you use the Azurite emulator for local development with Azure Storage. Follow the directions in the link 'https://go.microsoft.com/fwlink/?LinkID=2167087' to install and run Azurite emulator.
Unable to start dependency 'storage1'.
Let’s drop into Windows Terminal and take a look at what process is using that port:
After stopping the Node process and re-running Azurite (I restarted Visual Studio) we can see everything starts up as expected:
Ensuring Azure Functions Core Tools are up to date. This may take a few minutes...
Azure Functions Core Tools are up to date.
DotNetCore31-FunctionApp: azurite.cmd --location "C:\Users\ccampbell\AppData\Local\Temp\Azurite" --debug "C:\Users\ccampbell\AppData\Local\Temp\Azurite\debug.log"
DotNetCore31-FunctionApp: Azurite Blob service is starting at http://127.0.0.1:10000
DotNetCore31-FunctionApp: Azurite Blob service is successfully listening at http://127.0.0.1:10000
DotNetCore31-FunctionApp: Azurite Queue service is starting at http://127.0.0.1:10001
DotNetCore31-FunctionApp: Azurite Queue service is successfully listening at http://127.0.0.1:10001
DotNetCore31-FunctionApp: Azurite Table service is starting at http://127.0.0.1:10002
DotNetCore31-FunctionApp: Azurite Table service is successfully listening at http://127.0.0.1:10002
This was not a great experience on the first day I started to use Visual Studio 2022 with Azure Functions as I had to go off and figure out why the Azure emulator could not be started instead of just working on my application. You can go and change the default ports ft you like which is mentioned in the documentation. For more information on Azurite check out the docs on their GitHub repository.
I hope this helps with anyone new to the Azurite emulator in Visual Studio 2022.