The Microsoft Power Platform consists of three products: Power BI, PowerApps, and Microsoft Flow. I find customers are confused on the use cases of these products and how they compare to other products (Azure Functions, Logic Apps, and Azure Data Factory). So I wanted to write a blog and describe at a high level what these products are, their primary use case, how they interact, and how they compare.
Power BI – A self-service reporting tool that allows you to visually explore and analyze data to get better insights into your data so you can make better business decisions. The reports can be shared with colleagues on any device. This product is easy to understand, although its new feature, dataflows, makes things a bit confusing.
PowerApps – Allows you to quickly build custom web and mobile business applications that can be shared within your organization without custom coding using any data source you wish (via over 300 connectors or build a custom connector). Example: Create an app to allow employees to view and compare laptops and place an order, entering data along the way. Some people call PowerApps the next version of Microsoft Access. It is not meant for external usage, only internal because of licencing and security reasons (with some exceptions via the upcoming PowerApps Portals). PowerApps can also store data via the Common Data Service (CDS) and uses the Common Data Model. The data in CDS can be consumed by other products such as Power BI. Within PowerApps you can also load data from 23 external data sources to the Common Data Service using Power Query. Note that there are two types of PowerApps: Canvas Apps for simple apps and the newer Model-Driven Apps for more complex apps (view a comparison). Model-Driven apps are in fact the evolution of the backend of Microsoft Dynamics 365 Customer Engagement (CRM) so in that regard it’s not really new.
Microsoft Flow – Create sophisticated automated workflows directly in your apps with a no-code approach that connects to a wide variety of applications and services (over 250 connectors). Allows non-technical users to automate complex business processes and workflows without a complex IT deployment. You will frequently call Microsoft Flow from PowerApps. Example: After a laptop order is placed, send an email to the selected approver and take actions based on their approved or rejected response.
So those are brief explanations of the three products that make up the Microsoft Power Platform. Using one sentence to describe the Power Platform: “The Power Platform is a new low-code development platform that intertwines the best components of Power BI, Microsoft Flow, Common Data Service, and PowerApps”. With CDS as a core data component of Power Platform you can think of it as actually four products. Now onto how they compare to other Azure products:
Azure Functions – A solution for easily running small pieces of code, or “functions,” in the cloud. You can write just the code you need for the problem at hand, without worrying about a whole application or the infrastructure to run it. Functions can make development even more productive, and you can use your development language of choice, such as C#, F#, Node.js, Java, or Python. You pay only for the time your code runs and trust Azure to scale as needed, allowing you to build truly serverless applications. Azure Functions integrates with various Azure products (i.e. PowerApps, Microsoft Flow, Azure Data Factory, Logic Apps) and 3rd-party services. These products and services can trigger your function and start execution, or they can serve as input and output for your code.
Logic Apps – Azure Logic Apps is a cloud service that helps you schedule, automate, and orchestrate tasks, business processes, and workflows when you need to integrate apps, data, systems, and services across enterprises or organizations. Despite the word “Apps” in the product name, is does not have a visual interface like PowerApps for building business applications – it is more like an ETL tool comparable to Microsoft Flow. In fact, Microsoft Flow is build on top of Logic Apps and they share the same workflow designer and the same connectors. Think of Logic Apps as a more powerful version of Microsoft Flow – you can build a solution with Microsoft Flow at first, and then convert it to a Logic App as needed. Logic Apps includes additional capabilities like integration with Azure Resource Manager and the Azure Portal, PowerShell and the Azure Command-Line Interface (Azure CLI), Visual Studio, and more advanced connectors.
Logic Apps and Functions fall under the umbrella of developer type services, which can be built in a browser or Visual Studio. PowerApps and Microsoft Flow are limited to the browser only, hence are targeted for power users or business users.
Azure Data Factory (ADF) – Easily construct ETL and ELT processes code-free within the intuitive visual environment, or write your own code. Visually integrate data sources using more than 80 natively built and maintenance-free connectors. ADF is somewhat similar to Logic Apps but there are clear differences for their use cases. With ADF, think about using it for moving data, especially large data sets, and transforming the data and building data warehouses (data integration). If you’re monitoring a folder on-prem or in OneDrive and you’re looking to see when files get posted there and you want to simply move that file to another location or send a notification about an action on the file, that a great use case for a Logic App (application integration). But keep in mind these two products will often be used together (i.e. copying data from SQL Server to a Data Lake via ADF, then using the web API out of ADF to send an email notification through a Logic App back to a user to say a job has competed or failed). Also note that Logic Apps, along with Microsoft Flow, have connectors to run an ADF pipeline.