Tutorial: Deploy the Azure Industrial IoT Platform

In this tutorial, you learn:

  • About the main components of the IIoT Platform
  • About the different installation types
  • How to deploy the Industrial IoT Platform


  • An Azure subscription must be created
  • Download Git
  • The Microsoft Azure Active Directory (Azure AD) app registrations used for authentication require Global Administrator, Application Administrator, or Cloud Application Administrator rights to provide tenant-wide admin consent (see below for further options)
  • The supported operating systems for deployment are Windows, Linux and Mac
  • IoT Edge supports Windows 10 IoT Enterprise LTSC and Ubuntu Linux 16.08/18.04 LTS Linux

Main components

The Azure Industrial IoT Platform is a Microsoft suite of modules (OPC Publisher, OPC Twin, Discovery) and services that are deployed on Azure. The cloud microservices (Registry, OPC Twin, OPC Publisher, Edge Telemetry Processor, Registry Onboarding Processor, Edge Event Processor, Registry Synchronization) are implemented as ASP.NET microservices with a REST interface and run on managed Azure Kubernetes Services or stand-alone on Azure App Service. The deployment can deploy the platform, an entire simulation environment and a Web UI (Industrial IoT Engineering Tool). The deployment script allows to select which set of components to deploy.

  • Minimum dependencies:
    • IoT Hub to communicate with the edge and ingress raw OPC UA telemetry data
    • Azure Cosmos DB to persist state that is not persisted in IoT Hub
    • Service Bus as integration event bus
    • Event Hubs contains processed and contextualized OPC UA telemetry data
    • Key Vault to manage secrets and certificates
    • Storage for Event Hubs checkpointing
  • Standard dependencies: Minimum +
  • Microservices:
    • App Service Plan, App Service for hosting the cloud microservices
  • UI (Web app):
    • App Service Plan (shared with microservices), App Service for hosting the Industrial IoT Engineering Tool cloud application
  • Simulation:
    • Virtual machine, Virtual network, IoT Edge used for a factory simulation to show the capabilities of the platform and to generate sample telemetry
  • Azure Kubernetes Service should be used to host the cloud microservices

Deploy Azure IIoT Platform using the deployment script

  1. To get started with the deployment of the IIoT Platform, clone the repository from the command prompt or terminal.

    git clone https://github.com/Azure/Industrial-IoT cd Industrial-IoT

  2. Start the guided deployment. The script will collect the required information, such as Azure account, subscription, target resource and group and application name.

    On Windows: .\deploy -version <version> [-type <deploymentType>]

    On Linux or Mac: ./deploy.sh -version <version> [-type <deploymentType>]

    Replace <version> with the version you want to deploy.

    Replace <deploymentType> with the type of deployment (optional parameter).

    The types of deployments are the followings:

    • minimum: Minimum dependencies
    • local: Minimum and standard dependencies
    • services: Local and microservices
    • simulation: Minimum dependencies and simulation components
    • app: Services and UI
    • all (default): App and simulation
  3. The microservices and the UI are web applications that require authentication, this requires three app registrations in the Azure AD. If the required rights are missing, there are two possible solutions:

    • Ask the Azure AD admin to grant tenant-wide admin consent for the application
    • An Azure AD admin can create the Azure AD applications. The deploy/scripts folder contains the aad-register.ps1 script to perform the Azure AD registration separately from the deployment. The output of the script is a file containing the relevant information to be used as part of deployment and must be passed to the deploy.ps1 script in the same folder using the -aadConfig argument.
      cd deploy/scripts
      ./aad-register.ps1 -Name <application-name> -Output aad.json
      ./deploy.ps1 -aadConfig aad.json

Other hosting and deployment methods

Other hosting and deployment methods:


Next steps

Now that you have deployed the IIoT Platform, you can learn how to customize configuration of the components: