mail@mabbaz.com Abu Dhabi, UAE

Cloud · Reference Architecture · Predictive Maintenance

Predictive Maintenance on Microsoft Azure

A reference architecture for assembling a predictive maintenance programme on Microsoft Azure: which service sits in which layer, what belongs at the edge, why time-series data needs a purpose-built store, what the modelling reality actually looks like, and the last mile almost everybody neglects, which is writing a prediction back into the CMMS as a real work order.

Muhammad Abbas September 25, 2026 ~21 min read

If your organisation already runs on Microsoft, the question is rarely whether Azure can host a predictive maintenance programme. It can, and it has a service for every layer. The harder question, and the one this article is about, is how to assemble those services into something that produces maintenance decisions rather than dashboards. Enough years on CMMS, EAM and ERP integration work have convinced me that the cloud platform is the least difficult part of predictive maintenance. The difficult parts are sensor coverage, data quality, the absence of labelled failure history, the operational-technology network boundary, and the organisational habit of ignoring an insight that does not arrive as a work order. Azure solves none of those. What it gives you is a coherent set of building blocks, and this is how I would put them together.

The message up front: this is an assembly guide, not a promise that assembling it works. Choosing Azure settles roughly fifteen percent of the problem, the infrastructure question. The remaining eighty five percent is data, labelling, reliability engineering and workflow integration, and it is exactly the same eighty five percent on any platform. Read this for the architecture. Read the predictive maintenance method articles for whether you should be doing this at all.

1. The honest framing: the cloud is the easy part

Every cloud vendor publishes a predictive maintenance reference architecture, and they all look impressive, because a diagram of well-integrated managed services is an easy thing to make look impressive. What the diagram omits is that each box assumes an input it does not provide. Ingestion assumes sensors exist and are reachable. Storage assumes the telemetry is tagged to an asset identity that matches your asset register. Modelling assumes you have examples of the failures you want to predict. Serving assumes someone acts on the output. Break any one of those assumptions and the architecture still runs, still bills you, and still changes nothing about your failure rate.

So before the service names, the discipline. Predictive maintenance is a reliability capability, not a cloud project, and whether it pays back depends on asset criticality, on whether the dominant failure modes give detectable warning, and on the quality of your maintenance history. All of that is covered in the predictive maintenance practitioner's guide and the failure prediction and remaining useful life article, and I am not going to re-teach it here. If you have not done the triage those articles describe, an Azure architecture is premature.

This is also deliberately a single-platform piece. If you are still deciding between clouds, that belongs in the cloud selection comparison, alongside the sibling AWS and Google Cloud reference architectures. Everything below assumes Azure has already been chosen, usually because the organisation already has an Azure tenant, an Entra identity estate and a Power BI deployment, which is the most common and most defensible reason to choose it.

On service names and boundaries

Microsoft renames, repositions, merges and retires Azure services regularly, and the boundaries between the data and analytics services in particular have shifted several times in recent years. Treat every service name in this article as a description of a role in the architecture rather than a guaranteed current product name, and check current Microsoft documentation before you write anything into a design document or a tender. The architectural shape is stable. The branding is not.

2. The reference architecture, layer by layer

Strip the vendor diagrams down and every predictive maintenance architecture has the same seven layers. Naming them in the abstract first keeps you from confusing a service choice with an architectural choice.

Edge and connectivity (get the signal off the plant floor)
  ↓
Ingestion (accept it reliably, at rate, with identity)
  ↓
Storage (raw landing zone plus time-series query store)
  ↓
Processing (clean, resample, enrich, aggregate)
  ↓
Modelling (anomaly detection, later prediction)
  ↓
Serving (inference, alerts, visualisation)
  ↓
Write-back (a work order in the CMMS / EAM)

The layers are not optional. You can collapse two into one service, and for a small deployment you probably should, but you cannot skip one. Least of all the last, which is what turns an analytics exercise into a maintenance capability, and which gets cut when the budget tightens.

A useful discipline when you draw this for your own estate: mark each arrow with what identity travels along it. Telemetry that arrives with a device identity but no asset identity is telemetry you will spend the next year reconciling by hand against the asset register. Mapping device serial numbers to the functional locations or equipment records in your CMMS is a master data problem, better solved once at the edge than repeatedly in every downstream query.

3. Which Azure service sits in which layer

Here is how I would populate those layers on Azure. The table gives the service I would reach for first and what actually makes the choice.

Layer Azure service What decides it
Edge compute Azure IoT Edge Whether you need local buffering, protocol translation or local inference. If the site link is unreliable, you need it.
Device connectivity Azure IoT Hub Per-device identity, bidirectional messaging and device management. The default front door for sensor fleets.
High-volume ingestion Azure Event Hubs Use it when the source is already an aggregated stream, for example a historian or gateway publishing on behalf of many tags, rather than thousands of individually managed devices.
Raw landing zone Azure Data Lake Storage Cheap, durable, schema-on-read storage for everything as received. Always keep the raw feed, whatever else you build.
Time-series query store Azure Data Explorer Interactive querying over large volumes of timestamped telemetry. This is the layer people most often get wrong by reaching for a relational database.
Stream processing Azure Stream Analytics Windowed aggregation, threshold rules and simple in-flight logic. Good for rules, not a substitute for modelling.
Batch processing and feature engineering Azure Databricks, Synapse, or Microsoft Fabric All three can do the job. Choose on the skills you have and the licensing you already own, not on capability comparison.
Model training and lifecycle Azure Machine Learning Experiment tracking, model registry and managed deployment endpoints. The registry matters more than the training compute.
Event-driven glue Azure Functions Small, cheap, stateless code that reacts to an alert and calls something. Most of the write-back logic ends up here.
Business workflow and connectors Azure Logic Apps Connector-based integration with approvals and retries. Preferable to Functions where the logic is a business process rather than a transform.
Visualisation Power BI Almost always already present in a Microsoft estate. Useful for reliability reporting, dangerous as the only output.

Two observations. First, it is not a shopping list: a first deployment monitoring a few dozen assets can reasonably be IoT Hub, Data Lake Storage, one processing service and a Function, and nothing else. Every service you add is another thing to secure, monitor, patch, govern and pay for. Second, the overlaps are real and not your fault. Microsoft's data and analytics portfolio contains several services that can each do most of what the others do, and the boundaries have moved more than once. The practical rule I apply is to pick the one your team can already operate and stop evaluating.

4. The edge decision: what belongs on site

The first real architectural decision is how much happens on the plant floor before anything reaches Azure. The trade-off itself is covered in depth in edge versus cloud for predictive maintenance, so here I will stay on the Azure-specific shape of it.

Azure IoT Edge is a runtime you deploy onto a gateway device on site, and it lets you run containerised modules there under cloud management. The modules that genuinely earn their place at the edge, in my experience, are these:

  • Protocol translation. Plant equipment speaks Modbus, BACnet, OPC UA or a proprietary serial protocol. Something has to turn that into cloud-friendly messaging, and the sensible place is on site, not by punching industrial protocols through a firewall.
  • Buffering. Site connectivity fails. A gateway that stores and forwards during an outage is the difference between a gap in your telemetry and a complete record. For any site on a cellular or consumer-grade link this alone justifies edge compute.
  • Downsampling and aggregation. High-frequency vibration is the classic case. Sending every raw sample to the cloud is expensive and usually pointless. Compute the features that matter on site and send those, retaining raw waveforms locally or uploading them only around an event.
  • Asset identity stamping. Attach the asset or functional location identifier at the edge, where the physical context is known, rather than reconstructing it downstream.
  • Latency-critical local inference. Only where a decision must be made faster than a cloud round trip allows, which for maintenance is rarer than for process control.

What does not belong at the edge is model training, historical analysis, anything needing the full asset history, and anything you would struggle to update across a fleet of gateways. Every edge module becomes a distributed system you have to version and patch in places with no IT staff. Keep the edge thin and boring.

5. Time-series storage, and why a relational database is the wrong tool

This is where I see the most avoidable mistakes, usually made by capable teams applying reasonable instincts from the wrong domain. A team that has spent twenty years building line-of-business systems on SQL Server will naturally put sensor readings in a SQL Server table. It works, for a while, and then it does not.

Maintenance telemetry has a shape relational engines are not optimised for: enormous numbers of narrow, append-only, timestamped rows, queried almost exclusively by time range and tag, with heavy interest in aggregation and resampling and almost none in updates or joins. Purpose-built time-series engines exploit that with columnar layouts, time-based partitioning, compression and operators for windowing, interpolation and downsampling. The difference is between a query that returns while an engineer is still looking at the screen and one that times out. On Azure I would use two stores, not one:

  • Azure Data Lake Storage as the raw landing zone. Everything as received, partitioned by date and source, in an open columnar format. Your source of truth and your insurance policy: storage is the cheapest thing in the architecture and the raw feed is the one thing you cannot recreate later.
  • Azure Data Explorer as the interactive query store. Cleaned, resampled, asset-identified telemetry for the retention window engineers actually explore. Its query language suits time-series work and the learning curve is short for anyone who writes SQL.

Keep a relational database, but for what relational databases are good at: the asset master, the sensor-to-asset mapping, thresholds, model metadata and the record of which predictions became work orders. That is small, highly relational, transactional data, and Azure SQL is exactly right for it. The mistake is not using a relational database, it is using it for the telemetry. The wider question of lake, warehouse and lakehouse layering is treated separately in data lakes and lakehouses for maintenance telemetry, which is the article to read alongside this if you have committed to Microsoft Fabric.

The test for your storage design

Ask an engineer to pull eighteen months of readings for one asset, resampled to hourly averages, alongside the work orders raised against it in the same period. If that takes more than a minute of their time and no help from IT, your storage design has failed regardless of which services are in the diagram. Exploratory access by reliability engineers, not model training, is the workload that tells you whether the architecture is any good.

6. The modelling reality: anomaly detection first, prediction much later

Azure Machine Learning is a capable platform for training, registering and serving models, and there is nothing wrong with it. The problem is almost never the platform. It is that supervised failure prediction needs labelled examples of failures, and most organisations do not have them.

Consider what a supervised model requires: a reasonable number of instances where a specific asset type failed in a specific mode, with telemetry covering the period before each failure, the event accurately timestamped and the mode correctly coded. Now consider what a typical CMMS contains: work orders closed with a free-text comment, failure codes left at the default, downtime not captured, and the failure date recorded as whenever someone got round to raising the notification. Even in organisations with disciplined maintenance data, the number of clean run-to-failure examples for any single asset class and failure mode is usually in single digits. That is not a training set.

The label scarcity problem

Most organisations do not have the labelled failure history that supervised models need, and no amount of Azure Machine Learning changes that. Worse, a well-run maintenance programme actively prevents the failures you would need as training data, so the better your preventive maintenance is, the fewer labels you have. Anyone promising remaining-useful-life prediction from your existing CMMS history in the first year of a programme has either not looked at your data or is not being straight with you.

What that means in practice is a sequence, not a choice:

  • Start with rules and thresholds. Stream Analytics windowed rules over the incoming telemetry. Unfashionable, transparent, immediately useful, and engineers trust them because they can read them.
  • Then unsupervised anomaly detection. Learn what normal looks like for each asset from healthy operating data and flag deviations. This needs no failure labels, which is precisely why it is the realistic first modelling step. Expect false positives early and budget for the tuning.
  • Then supervised classification, if and when labels accumulate. Once you have confirmed, correctly coded fault events, classification of specific failure modes becomes feasible. A multi-year horizon for most sites, not a first-phase deliverable.
  • Remaining useful life last, and only where the fleet supports it. RUL models need many similar assets with many run-to-failure histories. Two hundred near-identical pumps is a genuine candidate. Four unique chillers is not, and stopping at anomaly detection there is the right answer.

The quieter benefit of starting with anomaly detection is that every anomaly an engineer investigates and dispositions is a label. Capture that disposition in the CMMS, against the asset, with a proper failure code, and within a few years you have built the dataset you did not have at the start. The programme generates its own training data, but only if the write-back layer exists.

7. The last mile: writing a prediction back as a work order

I will state this plainly, because it is the single most important point in the article. An architecture that ends at a dashboard is worthless. If the output of your programme is a Power BI report, a Teams message or an email alert, it will be looked at enthusiastically for about six weeks and then ignored permanently, and you will have spent a considerable budget to achieve nothing measurable. That is not a technology failure or a people failure. It is a design failure, and it is the most common one in the field.

The output has to be a work order in the system where the maintenance team already works, carrying the asset, the detected condition, the recommended action, a priority derived from asset criticality and a link back to the evidence. It has to be schedulable, assignable and closeable through the normal process, and the closure has to feed back as the disposition of the original prediction. That loop is the programme; everything upstream is plumbing that supports it. On Azure the write-back patterns are reasonably clean, and this is a genuine advantage of the platform in a Microsoft estate:

  • Dynamics 365 Field Service. If maintenance execution already runs here, the integration is first-class: the platform is built for work orders, bookings and resources, and Logic Apps or Power Automate connectors reach it without bespoke code. The shortest path from prediction to dispatched technician on Azure.
  • Dynamics 365 Business Central. Where Business Central is the system of record for assets, jobs and costs, its APIs are a well-trodden integration surface, covered in Business Central CMMS integration. The same patterns apply whether the trigger is a purchase requisition or a predicted fault.
  • A third-party CMMS or EAM. Maximo, Hexagon EAM, Planon, Infor EAM, Fiix, Limble and MaintainX all expose APIs of varying quality. Here the write-back is a real integration project: a Function or Logic App that authenticates, maps the asset identity, creates the work order, handles the failure cases and does not duplicate every time the model re-fires. Budget it as a project, not a task.
  • An intermediate review queue. For phase one I would almost always recommend this: predictions land in a queue, a planner reviews, and approval creates the work order. It stops a noisy model flooding the backlog and gives you the disposition data you need. Automate creation later, once the false-positive rate has earned it.

Two details that are easy to skip and painful to retrofit. Idempotency: a model re-evaluating hourly must not raise a work order hourly for the same developing fault, so you need a correlation key and a suppression window. And bidirectional identity: the work order carries the prediction reference and the prediction record carries the work order number, or you can never answer the only question that matters, which is what proportion of predictions turned out to be real. The general principles are in one-way versus two-way integration.

8. The OT and IT boundary: data does not simply flow to the cloud

Architecture diagrams draw an arrow from the plant floor to the cloud as though it were a network cable. In any properly run industrial or utility environment it is not. The operational technology network is deliberately segmented from the corporate network, and both from the internet, usually following a layered zone and conduit model of the kind described in the ISA and IEC industrial security standards. The control engineers responsible for those zones are, correctly, hostile to anything that opens an inbound path. The practical consequences for your Azure design:

  • Outbound only. The edge gateway initiates connections outward to Azure; nothing from Azure initiates a connection into the OT network. IoT Hub's messaging model fits this because the device maintains the connection, which is one of the stronger reasons to use it.
  • A gateway in a demilitarised zone. The pattern that gets approved is a collection gateway in a DMZ between the OT and corporate zones, reading from the control layer through a controlled conduit and publishing outward. That gateway is where IoT Edge runs.
  • Read from the historian, not the controller. Where a process historian exists, reading from it is far easier to get approved than touching the control layer, and the data is already cleaned and contextualised. See SCADA historian integration.
  • Plan for the approval, not just the design. Getting the security and controls teams to accept your data path will take longer than building it. Start that conversation in week one. I have seen technically finished pilots sit idle for months waiting for a network change nobody had thought to request. None of this is an Azure limitation; it is the reality of industrial networks, and any cloud architecture has to respect it.

9. Identity, security and data residency

The identity story is where an existing Microsoft estate genuinely pays off. If your organisation already runs Microsoft Entra ID, then the engineers exploring telemetry, the planners reviewing predictions and the services calling each other can all be governed through one identity system with conditional access and existing groups behind it. That is a material reduction in the security design work compared with standing up a parallel identity estate, and it is one of the few places where platform choice makes a real operational difference.

The controls I would consider non-negotiable:

  • Per-device identity and credential rotation. Every sensor and gateway gets its own credential, so one compromised device can be revoked without touching the fleet. Never a shared key across a site.
  • Managed identities for service-to-service calls. Anything that removes long-lived secrets from configuration is worth the effort. Where a secret is unavoidable it lives in Azure Key Vault and nowhere else.
  • Private networking for the data platform. Storage and analytics endpoints reachable only from your virtual network, not the public internet.
  • Least privilege on the write-back path. The integration account that creates work orders should be able to create work orders and read assets, nothing else. Not an administrator because that was quicker during testing.
  • Region selection decided before build. Where the data physically lands is a regulatory question in many jurisdictions, and in the Gulf in particular I would treat it as a first-phase decision. Retrofitting a region change is expensive and sometimes means rebuilding.

Two points to raise with the security team early. Not every Azure service is available in every region, so a residency requirement can constrain your service choices, and it is better to discover that at design time. And sensor telemetry is often assumed to be low sensitivity when it is not: occupancy, energy and production data can reveal operational patterns an organisation would not want published. Classify it deliberately. The broader ground is covered in integration security best practices.

10. Cost drivers, and where they surprise people

I am not going to put figures in this article, because cloud pricing changes and because any number I quoted would be wrong for your volumes. What is stable, and what you can design against, is the structure of the cost. Four drivers account for most of the bill:

  • Ingestion volume. Signals multiplied by sampling rate, and it compounds. Sampling vibration at high frequency across a large fleet is the single largest cost lever in most designs, and the decision is usually taken by an engineer with no visibility of the bill. Set sampling rates as a cost decision too, at the edge, where you can aggregate before transmitting.
  • Storage tiering. Hot, queryable storage costs meaningfully more than cold archive. Keeping years of raw high-frequency telemetry in an interactive query store because nobody defined a retention policy is a classic slow-growing waste. Decide up front how long data stays hot and automate the move to cold tiers.
  • Compute, split between training and inference. Training is bursty, expensive per hour and infrequent, so it suits capacity that shuts down when idle. Inference is continuous, cheap per event and always on. Sizing them as one line item gives you either an over-provisioned cluster running all night or an inference path that cannot keep up.
  • Egress. Moving data out of the cloud is charged in a way inbound traffic is not. Architectures that repeatedly pull large telemetry extracts back on premises accumulate a cost nobody modelled.

Two surprises recur. The first is the idle cluster: a processing or analytics cluster provisioned for a pilot, never scaled down, billing continuously while being used two days a week. The second is unbounded retention, where the absence of a lifecycle policy means the hot store grows forever and the bill creeps up by an amount nobody investigates because no single month looks alarming. Both are governance problems with straightforward technical fixes, and both are easier to prevent than to explain afterwards.

Tag everything from day one

Apply a consistent resource tagging scheme, by site, asset class and phase, before the first resource is created. It costs nothing at the start and it is the only way to answer the question your finance director will eventually ask, which is what this programme costs per site and whether the value follows the spend. Retrofitting tags across a grown estate is tedious work nobody volunteers for.

11. A staged build that delivers value before any model exists

The sequencing principle I would defend strongly: every phase delivers something useful on its own, and no phase depends on a model working. If the modelling never gets beyond anomaly detection, which is a realistic outcome, you still have a data platform, better asset visibility and a functioning write-back path.

Phase What you build Value delivered on its own
0. Triage Criticality ranking, failure mode review, mining of existing maintenance history. No Azure spend. You know which assets are worth instrumenting, and you may find you need fewer than you assumed.
1. Get the data flowing Edge gateway, IoT Hub, raw landing zone in Data Lake Storage. One site, one asset class. Telemetry is being captured and retained. Engineers can see live data they previously could not.
2. Make it queryable Time-series store, asset identity mapping, cleaning and resampling pipeline. Reliability engineers can investigate incidents with real operating data. This alone often justifies the phase.
3. Close the loop with rules Threshold and windowed rules, plus the full write-back path into the CMMS with a review queue. Condition-based work orders are being raised and closed. The loop is proven before any model exists.
4. Anomaly detection Unsupervised models on the instrumented asset class, served through the same write-back path. Detection of deviations that fixed thresholds miss, and the start of a labelled dataset.
5. Scale by asset class Extend to further sites and asset classes using the proven pattern. Formalise cost and lifecycle governance. Coverage grows on a path that is already known to work end to end.
6. Supervised prediction, if justified Classification and remaining useful life, only where fleet size and accumulated labels support it. Earlier and more specific warning on the assets that warrant the effort. Genuinely optional.

Notice that phase three, closing the loop with rules, comes before any modelling. That ordering is deliberate and I would argue for it in any steering committee. Building the write-back path early, when the logic is simple and the volumes low, means that by the time models produce output there is already a proven route from insight to executed work. Reverse it and the write-back becomes a phase-five nice-to-have that gets cut when the budget tightens. That is exactly how programmes end up as dashboards. If you are also moving the maintenance system itself to the cloud, treat it as a separate programme: see migrating CMMS and EAM to the cloud and cloud-based asset management software.

12. The mistakes I see on Azure specifically

Platform-independent failure patterns are covered in the predictive maintenance articles. These are the ones I associate particularly with Azure builds, usually because the organisation has strong Microsoft skills and applies them slightly out of context:

  • Telemetry in SQL Server because that is what the team knows. The most common and the most expensive to unwind. Use a time-series store for telemetry and keep the relational database for the master data.
  • Power BI as the deliverable. A beautiful report becomes the project's definition of done, and the write-back never gets built. If Power BI is the last box in your diagram, the diagram is incomplete.
  • Adopting too much of the portfolio at once. Because a Microsoft agreement makes many services feel free at the margin, first architectures often include six services where three would do. Each is an operational and security burden.
  • Treating the analytics platform choice as the architecture. Weeks spent choosing between Databricks, Synapse and Fabric while nobody has checked whether the OT network will permit a data path at all. Sequence the hard problems first, and remember the control engineers are not obliged to accommodate you.
  • Promising remaining useful life in the business case. Written into a phase-one scope on the strength of a vendor demonstration, then quietly dropped when the label problem becomes apparent. Promise anomaly detection and a closed loop. Deliver those and you will be trusted with more.

The idea to walk away with

Azure gives you a credible, well-integrated component for every layer of a predictive maintenance architecture, and in a Microsoft estate the identity, workflow and reporting integration make it easy to defend. But the platform is the least difficult part. The architecture stands or falls on three things that have nothing to do with which cloud you chose: whether the telemetry is tied to a trustworthy asset identity, whether you are honest about having no labelled failure history and therefore start with anomaly detection, and whether anything writes a prediction back into the system where maintenance work actually happens. Get those three right with a deliberately small set of Azure services and you have a capability. Get them wrong with a complete implementation of the whole portfolio and you have an expensive dashboard.

Final thoughts

Invert the usual order of work. Spend the first phase on the two least glamorous things: the asset identity mapping, and the path from a detected condition to a closed work order. Neither involves machine learning, neither photographs well in a steering pack, and both are the reason the programme will still be running in three years. The models are the easy part, and easier still once the loop they feed already works.

Be equally deliberate about restraint. One site, one asset class, a service count low enough that one team can operate it, and retention and sampling decisions written down as cost decisions. Check current Microsoft documentation for the services you intend to use, because the portfolio will have shifted since this was written. And if the triage says only a handful of your assets justify continuous monitoring, that is a successful outcome, not a disappointing one.

Platform references: Microsoft Azure and Microsoft . Service names, capabilities and boundaries change, so current Microsoft documentation is the authoritative source for anything you intend to build or tender.

Disclosure

Alongside advisory work I also build a CMMS and CAFM platform, so I have a commercial interest in this category. Nothing above is a recommendation for it, and no vendor named here has paid for inclusion or had any editorial input. Weigh the analysis accordingly.

Designing a predictive maintenance architecture on Azure?

Independent advisory on reference architecture, OT to cloud data paths, time-series platform design and the CMMS write-back integration that decides whether the programme delivers anything. 22+ years across CMMS, EAM, CAFM and ERP implementations in utilities, oil and gas, manufacturing, government and facility operations.

Book a conversation

Related reading: Choosing a cloud for predictive maintenance, Edge vs cloud for predictive maintenance, Data lakes and lakehouses for maintenance telemetry, Predictive maintenance practitioner's guide, SCADA historian integration, Business Central CMMS integration.

Muhammad Abbas

CMMS / CAFM Manager & Independent Advisor · 22+ years across enterprise CMMS, EAM, CAFM and ERP implementations in utilities, oil and gas, manufacturing, government and facility operations.

Work with me
MAbbaz.com
© MAbbaz.com