Power BI has the ability to import custom visuals and use them in your reports and dashboards. This is a great option to extent the visual capabilities of Power BI without waiting before Microsoft is adding that visual capability. Even Microsoft has created a gallery of 'approved' visuals to be used with Power BI. First there visuals were uploaded and stored within the report, but this has recently changed with the introduction of the Azure CDN capabilities.
Azure CDN (content delivery network) provided a distributed network with nodes all over the world and is able to distribute website content faster to users all over the world. All CDN nodes has it own storage to serve certain (static) files of websites and because usually a node is closer (and more widespread) to the user than the Azure datacenters those files are faster to download to the client.
And because all nodes has their own storage it will take some while before a new version of a file is completely distributed to all nodes.
Since May/June 2016 Power BI also uses its own Azure CDN to serve (at least) the custom visuals from the gallery for both the service (powerbi.com) and the Power BI desktop. So if you import a custom visual from the gallery to your report, Power BI will download a valid version from the CDN network and uses that one.
By serving the visual thru the Azure CDN has several advantages:
- Performance improvements. These visuals (and other static content) are downloaded from a location closer to the client and therefor faster
- No code hijacking. Now all the visuals are served from the same location and used in your reports with your data. There is no option to inject malicious code via uploading a custom visual to Power BI
- Auto updating visuals: As the visuals are served from the same location are overwritten is a new version is available: all reports that use that visual will be updated with that version. No manual re-importing the visual to use new capabilities of a custom visual.
Of course there are some downsides with this distribution mechanism:
- Delay in updating: When a new version is reviewed and approved by Microsoft it will take some time before everyone can use that visual. In my understanding of how Azure CDN is working it can take
72 hours7 days [update 2016/07/22] before new content is distributedreloaded [update 2016/07/22] to all nodes.
- Testing intermediate versions: Not really a user problem, but if you are updating a published visual you have to create one with a different internal identifier, because all your changes are 'overwritten'. And distributing this intermediate version will not have the advantages that it will be automatically updated.
So with the introduction of a Azure CDN with Power BI the performance and security is improved over the old version. That given the biggest problem is that it will take some time before the new version is available for general use.