Finally, after years of waiting the standalone version of the Microsoft Connected Cache (MCC) is now finally available in public preview. This means, we no longer need to deploy MECM / SCCM Distribution Points if we only need the Connected Cache part of it since we are already cloud native.
Let’s start with what the MCC is used for, it can be used as an addition to your Delivery Optimization setup, which itself is a peer to peer caching solution, that will minimize your internet traffic used for Windows Updates, Software distribution from Intune, etc. With the MCC, you can help your DO Setup, by providing a dedicated Cache Node in places where you need it, e.g. in the network where you often do your Autopilot pre-provisioning’s and therefore often provisioning the same resources, or in remote locations, where internet bandwidth is limited and your clients are not always in the office. If you want to know more about it, check out the official docs: Microsoft Connected Cache for Enterprise and Education Overview
Deploy MCC in Azure
To get started, first we need to deploy the MCC control resources in Azure. I started with the creation of a fresh Resource Group dedicated for my MCC deployments:

Within the Resource Group, we can now add the MCC from the Azure Marketplace, simply search for “connected cache” and you will be able to find the needed resources:

You will see, the available resource locations are currently limited, but don’t worry, since the actual MCC will be deployed onPrem (which is the whole reason we are doing this :)), the location does not matter too much for this setup.


Deployment takes a moment:

Once the deployment is done, we can see a nice dashboard showing the health of our MCC Nodes:

Create a Windows based MCC Node
I will start with a Windows based MCC Node, if you want to deploy your Cache Node to Linux, you can jump directly to this part: Linux Node

First, we need to create our Cache Node, give it a name and specify the OS, on which it will be running:

Now that we have created the Cache node, we can start with the actual deployment, by selecting the new Cache Node from the list:

On the first page, you can specify the max cache size and if needed your local proxy settings:

One the provisioning page, we get the instructions needed to actually deploy the Cache Node on Windows:

Here we need to download the provisioning package and copy it on to our server:

Once we have the files available on our Server, we can extract them and open an elevated PowerShell Terminal:

Since the MCC is using WSL to run on Windows, we first need to install wsl using the “wsl –install command:

After a reboot, the first thing that we now need to do, is to specify the user account with which it should run, by specifying the variable $user with the Account name and the credentials in variable “$myLocalAccountCredential”. We can use the PowerShell commandlet Get-Credential for that.
For my demo, I will use the local Administrator account, in a productive environment, you should use a separate account for this:

Next, we just need to copy the install command from the Azure Portal and the installation will start:


Installation takes some time, but eventually it is ready to go:

In the next part I will show you how you can do the same on Linux, if you are not interested, you can directly jump to the final part: Use the MCC
Create a Linux based MCC Node
We can also use a Linux based host like Ubuntu Server as a basis for our Cache Node. Currently only Versions 20.04 and 22.04 are supported, it will exit with an error on 24.04.

First, we need to create our Cache Node, give it a name and specify the OS, on which it will be running:

Now that we have created the Cache node, we can start with the actual deployment, by selecting the new Cache Node from the list:

On the first page, you can specify the location, the max cache size and if needed your local proxy settings:

One the provisioning page, we get the instructions needed to actually deploy the Cache Node on Linux:

Here we need to download the provisioning package and copy it on to our server:

I will use Ubuntu Server for this demo and downloded the package using wget:

Extracted the files:

And run the script:

This will take some time, but finally you should see a successful installation:

Use the MCC
Now that we have configured our Cache Nodes, we can see they report as healthy in the Portal:

To actually use the MCC, you have to tell the client where it can find it. You can do this static using the DO Cache Host Policy:

Or you can do this dynamically based on your requirement, by leveraging DHCP Option 235 by configuring DO Cache Host Source Policy to 1, as described in the docs: https://learn.microsoft.com/windows/client-management/mdm/policy-csp-DeliveryOptimization?WT.mc_id=MVP_317638#docachehostsource

If you decide to go with the DHCP Option, you can configure a different DO Cache Host on each DCHP Scope, based on your network requirements.

Conclusion
Finally, we can officially use a standalone MCC without the need of any MECM / SCCM Infrastructure. Since the MCC is based entirely on Docker containers, there could even be obviously unsupported scenarios, running this container on a NAS or similar… 😇

Leave a Reply