In Part 1 of this blog series I introduced the fundamental concepts of Power BI embedding and explained the difference between first-part embedding (the user-owns-data model) and third-party embedding (app-owns-data model). In this blog we will begin by examining Power BI Premium capacities and, after that, we will compare them to Power BI Embedded capacities. I will finish up by explaining how to set up a development environment for Power BI embedding without any cost to you.
Power BI Premium Capacities
Let's start by examining the P SKUs available through Power BI Premium. Many people refer to P SKUs as the all-in SKUs because they offers the greatest number of features. P SKUs are also the most expensive. Table 1 shows the five different P SKUs available for Power BI Premium along with their specifications and price. Note that a dedicated capacity created from a Power BI Premium P SKU is always run on its own dedicated hardware.
Table 1: Power BI Premium offers five P SKUs.
The P SKUs offers valuable features to both the PasS capabilities and the SaaS capabilities of the Power BI Service. When using the PaaS capabilities of the Power BI Service, you can use a P SKU to support either first-party embedding or third-party embedding. If your organization is leveraging the SaaS capabilities of the Power BI Service to serve reports and dashboards to a large number of content consumers, a P SKU can save your organization money. This requires a bit more explanation.
Microsoft sells Power BI using both user-based licensing and capacity-based licensing. In organizations that rely exclusively on user-based licensing, users with the Power BI free license are not allowed to share content with other users nor can they consume content shared by others. This means that all users require a Power BI Pro license regardless of whether they are authoring reports and dashboards or just consuming reports and dashboards created by others.
Capacity-based licensing using Power BI Premium makes it possible for users with the free Power BI license to consume content created by others. When an organization is using Power BI Premium, they still require a Power BI Pro license for each author, but they are able to eliminate all user-based licensing costs for their read-only consumers.
Consider a simple example of an organization which has 20 Power BI content authors and 1000 other users who will be read-only consumers of Power BI content. Without capacity-based licensing, a company would have to purchase a Power BI Pro license for all users which will cost $10,200 per month.
$10,200/month = 1020 Power BI Pro licenses @ $10/month
If an organization purchases the Power BI Premium P1 SKU for $4,995 per month, the total cost of licensing drops down to $5,195 per month.
$4995/month - 1 Power BI Premium P1 license @ $4995/month
$200/month - 20 Power BI Pro licenses @ $10/month
$5195/month - Total cost
In addition to the Power BI Premium P SKUs, Microsoft also offers Power BI Premium EM SKUs which can be purchased at a much lower price point. The key difference between these two SKUs is the P SKUs make it possible for users with the Power BI free license to consume content through the Power BI portal and through the Power BI Mobile apps. The Power BI Premium EM SKUs, on the other hand, do not provide users with the Power BI free license to access content through the Power BI portal or through the Power BI Mobile apps. Therefore, the EM SKUs are primarily valuable in cases where you are embedding reports outside of the user interface experience of the Power BI portal.
Currently. Microsoft offers three Power BI Premium EM SKUs that are shown in Table 2.
Table 2: Power BI Premium offers three EM SKUs.
The primary use cases for using Power BI Premium EM SKUs typically involve a small number of users. The first use case involves no-code scenarios where business users are embedding Power BI reports in a Microsoft Teams tab or on a page in a SharePoint site using the Power BI webpart provided by Microsoft as a standard webpart in SharePoint Online. The second use cases involves development scenarios with Power BI embedding where you are using first-party embedding to serve up content to users who do not possess Power BI Pro licenses.
You can purchase a monthly subscription to Power BI Premium through the Purchases Services link in the Office 365 admin Center. The act of purchasing a Power BI Premium subscription will trigger the Power BI Service to provision a new dedicated capacity inside your Office 365 tenant. Once this dedicated capacity has been provisioned, you can view and manage it from the Power BI Admin portal as shown in Figure 1.
Figure 1: The Power BI Admin portal allows you to view and manage dedicated capacities.
As you can see from the screenshot shown in Figure 1, the Power BI Admin portal provides one tab to display Power BI Premium capacities and a second tab to display Power BI Embedded capacities. A Power BI Premium capacity and a Power BI Embedded capacity are both a type of dedicated capacity. Both types of dedicated capacities are useful in various scenarios involving software development with Power BI embedding. However, there are also important differences between Power BI Premium capacities and Power BI Embedded capacities which you should understand.
One big difference between a Power BI Premium capacity and a Power BI Embedded capacity has to do with where you go to manage and monitor them. Power BI Premium capacities can be managed and monitored from within the Power BI Admin portal. Power BI Embedded capacities are managed and monitored using the Azure portal or by using PowerShell commands or REST API calls available thought the Azure Resource Manager.
If you drill into the view for a Power BI Premium capacity in the Power BI Admin portal, you can see statistics on its CPU and memory usage, memory thrashing and the number of queries executed against the DirectQuery limit. By monitoring these statistics, you can assess on a day-by-day basis whether a dedicated capacity is being overloaded. You can also see if you are paying more than you need to service your audience of users.
Keep in mind that a dedicated capacity doesn't provide any real value until you populate it with content. You add content to a dedicated capacity by creating associations with workspaces. To publish content, you first create a new app workspace and associate it with a dedicated capacity. Then you build out the content in the app workspace by adding datasets, reports and dashboards. After that, all the content in that app workspace will be served from the dedicated capacity making it available to users who do not have a Power BI Pro license.
Each dedicated capacity has a configurable set of capacity administrators. A Power BI Pro user in the role of capacity administrator can associate app workspaces with a dedicated capacity using the Power BI Amin portal or by using Power BI Administrative PowerShell commands. A content author with a Power BI Pro license who has been granted the Capacity assign permission can create a new app workspace and associate it with a dedicated capacity using the Create an app workspace dialog as shown in Figure 2.
Figure 2: The Create an app workspace dialog allows you to associate a new workspace with a dedicated capacity.
Remember that any workspace that has not been associated with a dedicated capacity will run in the shared capacity and that all users require a Power BI Pro license to consume content from the shared capacity. This is true in scenarios where users are accessing Power BI content through the Power BI portal. It is also true in scenarios where you are developing custom applications that use first-part embedding.
When you are navigating between workspaces in the Power BI portal, it's easy to tell which ones are associated with a dedicated capacity because they are displayed with a diamond icon as shown in Figure 3. Any workspace that is not displayed with the diamond icon is running within the shared capacity.
Figure 3: A workspace associated with a dedicated capacity is displayed with a diamond icon.
Power BI Embedded Capacities
The Power BI Embedded service in Microsoft Azure allows you to create a dedicated capacity as a scalable, on-demand service. This type of dedicated capacity in known as a Power BI Embedded capacity. A key point about Power BI Embedded capacities is that they only support third-party embedding and the app-owns-data model. They do not support first-party embedding or the user-owns-data model. For this reason, Power BI Embedded capacities are mainly used by ISVs and not by corporate developers building enterprise applications for a single organization.
You must have an Azure subscription to create a Power BI Embedded capacity. When creating a Power BI Embedded capacity, you must choose a pricing tier which determines its cost and how many resources are allocated to it. The available pricing tier SKUs are A1, A2, A3, A4 A5 and A6 as shown in Table 3.
Table 3: When creating a Power BI Embedded capacity, you must select a pricing tier.
Power BI Embedded capacities are particularly attractive to ISVs because they provide the following features that are not matched by Power BI Premium capacities.
You can automate provisioning Power BI Embedded capacities using PowerShell scripts and Azure templates.
Power BI Embedded capacities do not require a monthly commitment; instead you pay by the hour
You can pause and resume a Power BI Embedded capacity at any time to save money
You can scale a Power BI Embedded capacity up or down in a matter of minutes
Power BI Embedded capacities will appeal to organizations and developers who have already embraced Microsoft Azure. Just as with other types of on-demand services in Azure such as web apps, storage accounts and virtual machines, you can create a Power BI Embedded capacity by hand in the Azure portal. Alternatively, you can automate the provisioning of Power BI Embedded capacities using Azure templates, PowerShell script or REST-based API calls to the Azure Resource Manager. Figure 4 shows a screenshot of what a new Power BI Embedded capacity looks like once it has been created in the Azure portal.
Figure 4: You can create, manage and monitor Power BI Embedded Capacities in the Azure portal.
If you examine the screenshot in figure 4, you will notice that the toolbar for a Power BI Embedded capacity provides a pause button. A Power BI Embedded capacity is an Azure service that you can pause and resume at any time. Since there is no monthly commitment with a Power BI Embedded capacity, you are only charged while the service is running. If you are in a scenario where a Power BI Embedded capacity doesn't have to run 24x7, you can shut it off to save money. It only takes a minute or two to pause or to resume the service.
Power BI Embedded capacities also have a significant advantage over Power BI Premium capacities when it comes to scaling up or down. Consider a scenario where your reporting application experiences a burst of user activity on the first day of each month. You can configure the hosting Power BI Embedded capacity with a less expensive pricing tier (e.g. A2) for standard usage. Then you can scale the Power BI Embedded capacity up to a more powerful pricing tier (e.g. A4) for the day in each month where the spike appears.
The Azure portal also provides monitoring tools so you can determine exactly how much you need to spend to achieve the required level of performance for a given user audience. While you must use the Azure portal and other Azure DevOps tools to create, configure and monitor Power BI Embedded capacities, you can use the Power BI Admin portal to view Power BI Embedded capacities and to see their SKU (aka pricing tier), Region and Status as shown in Figure 5.
Figure 5: You can view Power BI Embedded capacities and associate workspaces in the Power BI Admin portal.
If you drill into a specific Power BI Embedded capacity in the Power BI Admin portal, you will notice that it does not provide you with the ability to configure the underlying capacity or to assign capacity administrators. Since a Power BI Embedded capacity is an Azure service, you must navigate to the Azure portal to change its pricing tier or assign capacity administrators.
While you cannot configure a Power BI Embedded capacity in the Power BI Admin portal, you can configure its workspace associations just as with a Power BI Premium capacity using the Assign workspaces dialog. The Power BI Admin portal page for any type of dedicated capacity contains a Workloads section that displays all the current workspace associations as shown in Figure 6. This view provides the capacity administrator with a user experience to view and manage the workspaces running inside.
Figure 6: The Power BI Admin portal allows you to view and manage workspaces associations.
Configuring Production Tenants
Before deploying a custom application that uses Power BI embedding into production, you must make sure that the hosting Azure AD tenant is properly configured with whatever dedicated capacities are required. Over the last few pages, you've learned about three different families of SKUs for creating dedicated capacities including the P SKU, the EM SKU and the A SKU. Table 4 provides a comparison of the three SKU types to assist you with selecting the best type of dedicated capacities for a particular scenario.
Table 4: Each of the three SKUs for purchasing a dedicated capacity offers a unique set of different features.
Creating a Development Tenant
Now that you have learned about what's required in a production tenant, it's time to discuss how to create a development environment for Power BI embedding. After all the scary pricing information you have seen for dedicated capacities, you'll be happy to know that you can set up a development environment for Power BI embedding in a matter of minutes and it will not cost you a dime. All you really need is an Office 365 development tenant and a Power BI Pro license.
In any production scenario, your custom application is only permitted to generate embed tokens for content in workspaces associated with a dedicated capacity. Fortunately, these rules are relaxed for development scenarios. That means you can rely on the shared capacity when you are developing with Power BI embedding which eliminates the cost and overhead of provisioning dedicated capacities during the development lifecycle.
Keep in mind that Microsoft is able to monitor the generation of embed tokens across all Power BI customer tenants. This gives Microsoft the ability to detect when embed tokens are being generated from the shared capacity and used to embed Power BI resources. This, in turn, gives Microsoft the ability to assess whether the generation and usage of embed tokens within your tenant falls within reasonable limits for development scenarios.
Microsoft monitors shared capacity statistics including the number of embed tokens generated per hour and the number of IP addresses where embed tokens are being used to embed Power BI resources. If Microsoft sees evidence of production usage of embed tokens generated from the shared capacity, that will raise a flag and you can expect a call from Microsoft support or your Microsoft sales representative.
Learning more about Power BI Embedding
I hope you enjoyed part 2 of this blog series on Power BI embedding. In part 3 of this blog series, I will examine how to develop applications that authenticate with Azure Active Directory which is an important prerequisite for developing with Power BI embedding.
If you are really serious about learning Power BI embedding you should consider attending my new hands-on workshop titledDeveloping with Power BI Embedding. This workshop is two days in length and it will give you a wealth of hands-on experience with Power BI embedding as you work through a challenging track of real-world lab exercises. I will be running this workshop in Portland, OR on Novemeber 28 and 29. I will be running this workshop a second time in sunny Tampa FL on December 18 and 19. You can find out more about the training classes I teach on theCritical Path Training website.