# Part 1 - Serving App-V content using Azure Blob Storage

- URL: https://blog.jourdant.me/post/serving-app-v-content-using-azure-blob-storage
- Author: Jourdan Templeton
- Published: 2014-11-17T03:41:11.725Z
- Updated: 2015-01-31T22:06:00.979Z
- Category: App-V
- Tags: App-V, Azure
- Summary: How to host App-V 5.0 packages in Azure Blob Storage and stream them to users outside the office over HTTP.

This two post series will explain how to utilise various [Microsoft Azure](https://blog.jourdant.me//www.azure.com) services to distribute your [Microsoft App-V 5.0](https://blog.jourdant.me//technet.microsoft.com/en-nz/library/jj713418.aspx) content to a wide audience externally.

* [App-V + Azure \[Part 1\]: Serving App-V content using Azure Blob Storage](https://blog.jourdant.me/serving-app-v-content-using-azure-blob-storage)
* [App-V + Azure \[Part 2\]: Scaling App-V content distribution using Azure CDN](https://blog.jourdant.me/scaling-app-v-content-distribution-using-azure-cdn)

### Design
In our topology, we will assume that App-V users are off-premise.

![App-V + Azure Design](https://blog.jourdant.me/img/post/appvazuredesign.png)

The App-V publishing server will be published via reverse proxy to the web on  domain **appv.domain.com**. 

### Steps
#### 1. Create Azure Storage account and container
In the Azure Portal, create a Storage Account. Choose a URL, datacentre and type of data replication (for a good explanation on the differences in data replication, see [this post](https://blog.jourdant.me//blogs.msdn.com/b/windowsazurestorage/archive/2013/12/04/introducing-read-access-geo-replicated-storage-ra-grs-for-windows-azure-storage.aspx))

![Storage Account Creation](https://blog.jourdant.me/img/post/azurestorage-create.png)

Next, create a container to host the content inside.

![Create a container](https://blog.jourdant.me/img/post/azurestorage-containercreate.png)

#### 2. Move a sample package into Azure Storage Container
Using the storage account access keys, upload your .appv files to the container. 

![](https://blog.jourdant.me/img/post/azurestorage-addblob.png)

**Optional: In the container, set the .appv files to the MIME type "application/appv" or "application/x-compressed". Both are acceptable to the App-V Client.**

#### 3. Test the package in the App-V Client

Open an administrator PowerShell prompt and try the following:

```powershell
Add-AppVClientPackage -Path "https://appvexample.blob.core.windows.net/content/AppV5_7-zip_9.20_x64.appv" | Publish-AppVClientPackage -Global
```

![](https://blog.jourdant.me/img/post/azurestorage-psaddpackage.png)

If your output matches above, you should now see 7-Zip published to your machine.

![](https://blog.jourdant.me/img/post/azurestorage-7zip.png)

#### 4. Add the package to the App-V Management Console

Copy the full URL to the package into the App-V Management Console and assign rights as necessary.

![](https://blog.jourdant.me/img/post/azurestorage-console.png)

**Note: The server hosting the App-V Management Console needs to have access through the firewall to your storage domain. (appvexample.blob.core.windows.net)**

### Conclusion

HTTP streaming with App-V allows you to separate your App-V publishing from your content. It allows you to be smarter with how that infrastructure is designed. The next post will demonstrate how to scale this further using the Azure CDN Service.

If you're looking to co-locate your content publishing and App-V Publishing Server components, check out [this great post](http://virtualvibes.co.uk/ssl-and-https-with-app-v-5-0/).

<br/>
Jourdan

