Skip to content
Is there an AI for this?

Private cloud

Predictive maintenance with classical ML

A time-series store for the telemetry, feature engineering, a gradient-boosted model (scikit-learn or XGBoost), MLflow for experiment tracking and the model registry, and a scoring service that raises maintenance alerts — all in your own cloud account, with a managed training service as the option for when the data outgrows one machine.

Source
Editorial recipe — no step evidence has been fetched yet
Verified
Evidence not verified
Confidence
Low

01Objective


02Recommended stack

6 components
RoleComponent
GatewayPrivate networking to the cloud services
Inferencescikit-learn
InferenceXGBoost
ObservabilityMLflow
OrchestrationFeature + scoring pipeline (your own)
StorageTime-series store (PostgreSQL / TimescaleDB)

Architecture and data flow

Architecture for Predictive maintenance with classical ML9 components in 6 layers. Trust boundaries: PRIVATE CLOUD · Private cloud — Chosen cloud region; REGION · Chosen cloud region; COMPANY NETWORK. External data transfer: SOME. Some data leaves the boundary drawn here.Maintenance engineers (alerts + dashboard)Sensor / telemetry ingestionScoring pipeline + dashboardFeature engineering servicePredictions + MLflow tracking storeTime-series store (raw + features)Model scoring (scikit-learn / XGBoost)Trained model (MLflow registry)Maintenance engineers (alerts + dashboard)Maintenance engineers (…PEOPLESensor / telemetry ingestionSensor / telemetry inge…STORAGEPrivate networkingNETWORKScoring pipeline + dashboardScoring pipeline + dash…APPLICATIONFeature engineering serviceFeature engineering ser…RETRIEVALPredictions + MLflow tracking storePredictions + MLflow tr…DATABASETime-series store (raw + features)Time-series store (raw …STORAGEModel scoring (scikit-learn / XGBoost)Model scoring (scikit-l…INFERENCE SERVERTrained model (MLflow registry)Trained model (MLflow r…MODELPRIVATE CLOUD · Private cloud — Chosen cloud regionREGION · Chosen cloud regionCOMPANY NETWORKHTTPSCONFIDENTIALreverse proxyCONFIDENTIALdocuments to indexCONFIDENTIALquestion + user groupsCONFIDENTIALdocuments + permissionsCONFIDENTIALchats, users, settingsPERSONALoriginal filesCONFIDENTIALprompt + retrieved passagesCONFIDENTIALloaded weightsEXTERNAL DATA TRANSFER · SOME

Components

  • Maintenance engineers (alerts + dashboard) — people
  • Sensor / telemetry ingestion — storage
  • Private networking — network
  • Scoring pipeline + dashboard — application
  • Feature engineering service — retrieval
  • Predictions + MLflow tracking store — database
  • Time-series store (raw + features) — storage
  • Model scoring (scikit-learn / XGBoost) — inference server
  • Trained model (MLflow registry) — model

Connections

  • Maintenance engineers (alerts + dashboard) to Private networking — HTTPS (confidential data)
  • Private networking to Scoring pipeline + dashboard — reverse proxy (confidential data)
  • Sensor / telemetry ingestion to Feature engineering service — documents to index (confidential data)
  • Scoring pipeline + dashboard to Feature engineering service — question + user groups (confidential data)
  • Feature engineering service to Predictions + MLflow tracking store — documents + permissions (confidential data)
  • Scoring pipeline + dashboard to Predictions + MLflow tracking store — chats, users, settings (personal data)
  • Feature engineering service to Time-series store (raw + features) — original files (confidential data)
  • Feature engineering service to Model scoring (scikit-learn / XGBoost) — prompt + retrieved passages (confidential data)
  • Model scoring (scikit-learn / XGBoost) to Trained model (MLflow registry) — loaded weights

External data transfer · SOME

  • confidential content leaves your premises for your own cloud tenancy ("Private networking"). You keep control of the account; the provider is a processor, so a DPA and a documented region apply.
  • The whole pipeline runs on open-source components in one cloud account and region you control; no third-party model service sees the telemetry. The provider is an infrastructure processor.
  • A managed training service, if added later, processes the training data in the region you pin it to — a decision to make explicitly, not a default.

03Suitable for

Organisation size
50–50000 employees
Data classes
confidential
Constraints
labelled failure or maintenance history to learn from — without it there is nothing to train; sensor or event telemetry you can land in a time-series store; a data scientist or ML engineer, or an implementation partner, to build and validate the model
Industries
Manufacturing, Energy, Logistics, Construction, Telecommunications
Jurisdictions
any

04Hardware

No hardware profile was sized for this answer.

Indicative costUSD · one-off plus monthly

Software
scikit-learn, XGBoost, MLflow and PostgreSQL are open source and self-installed. There is no model-usage line at all: the model is yours and runs on your own compute.
US$0
Compute, storage and (optional) managed training
Not estimated: a scoring instance, the time-series store and, if used, a managed training service billed per instance-hour, all priced per provider and region. No price list was fetched — read yours. Training compute is periodic, not continuous.
Not estimated
Implementation (10–30 FDE-days)
10–30 FDE-days at US$760–1940 per day, converted from the HK$6,000–15,000 band at the HKMA Linked Exchange Rate band of HK$7.75–7.85 to one US dollar. One-off; excludes internal staff time.
US$7,600 – US$58,200
  • No per-token or per-seat model cost: this is a model you train and run yourself, unlike the LLM recipes.
  • Implementation is the largest line and dominated by the data science — framing, feature engineering, validation and getting to a model worth deploying — not the infrastructure.
  • Assumes labelled history exists; without it the first project is data collection, not modelling.

05Difficulty

4 / 5

Multiple weeks and a team that has shipped infrastructure


06Skills

Compliance and governancecompliance-governance
compliance
Data engineeringdata-engineering
data
MLOpsmlops
operations
PostgreSQLpostgresql
data
Pythonpython
development

07Deployment steps

7 steps

Commands are copied from each project’s own documentation, and the page they came from is linked under the step. 0 of 7 steps currently open an evidence record. The rest are linked to their source; §10 says which of those documents were fetched and which were fetched without their anchor being found — two different states, named differently there.

  1. 01

    Frame the prediction: classification or regression

    Assessment

    Decide the target before the features. "Will this asset fail in the next N days" is a classification; "how many hours of useful life remain" is a regression — scikit-learn frames the second as "predicting a continuous-valued attribute associated with an object". The choice sets the label, the metric and what counts as a good model, so make it explicitly with the maintenance team.

    Source documentation

  2. 02

    Engineer features from the telemetry

    Assessment

    Most of the accuracy is in the features, not the model. Aggregate sensor readings over rolling windows, encode maintenance events, and align everything to the moment of prediction. scikit-learn provides the "simple and efficient tools for predictive data analysis" — the preprocessing and pipeline objects — that keep this reproducible rather than a notebook nobody can rerun.

    Source documentation

  3. 03

    Train a baseline, then a gradient-boosted modelversion-sensitive

    Assessment

    Start with a simple scikit-learn model to establish the number to beat, then train XGBoost — a gradient-boosted tree ensemble that, in the project’s own words, "solve[s] many data science problems in a fast and accurate way" — which usually wins on tabular problems like this. Keep it inside the scikit-learn pipeline so preprocessing and model are one object.

    pip install scikit-learn xgboost mlflow
    mlflow ui

    browse the tracked experiments locally

    Source documentation

  4. 04

    Track every run in MLflow

    Assessment

    Log each experiment: the data version, the features, the hyperparameters and the metrics. MLflow’s documentation covers "experiment tracking, model packaging, registry management, and deployment" — the record that lets you compare runs honestly and reproduce the one you ship. Untracked model development is how the model in production stops matching any notebook.

    Source documentation

  5. 05

    Validate on time, not at random

    Assessment

    A random train/test split leaks the future into the past and flatters the model. Split by time: train on earlier data, test on later, the way the model will actually be used. Compare candidates in MLflow, which supports the "model lifecycle management" this needs, and choose on the metric the maintenance decision actually turns on — usually recall at a fixed alert budget, not raw accuracy.

    Source documentation

  6. 06

    Register the model, serve it, and watch for drift

    Assessment

    Promote the chosen run to the MLflow registry and score from the registered version, so the model in production is one you can name and roll back. Then watch the inputs: when the sensor distributions move away from the training data, the model is predicting on conditions it never saw, and it is time to retrain. Schedule that check rather than waiting for a missed failure.

    Source documentation

  7. 07

    Move to managed training only when one machine is not enoughversion-sensitive

    Assessment

    When the training set outgrows a single instance, the same code runs on a managed service — AWS states that "with SageMaker AI training jobs, you can focus on developing, training, and fine-tuning your model"; Azure Machine Learning is "a cloud service that accelerates and manages the machine learning (ML) project lifecycle"; and Google’s platform "provides a managed training service that helps you operationalize large scale model training". Take this when the numbers force it, not before.

    Source documentation


08Compliance considerations

Structured issue-spotting to support your own review — not legal advice. Verify against the cited primary sources and your counsel.

Applies everywhere

  • Automated decision-making · Human oversighthigh

    A prediction is a recommendation to a maintenance engineer, not an automatic instruction. Keep a person in the loop for the action the prediction triggers, show the features that drove each alert, and record when the engineer overrode it — that record is also how you measure the model.

  • Auditability · Logginghigh

    MLflow’s tracking store and registry are the audit trail: which data, which code, which hyperparameters produced the model in production, and when it was promoted. Keep it — a prediction you cannot reproduce is one you cannot defend.

  • Data residency · Cross-border transfersmedium

    Pin the time-series store, the training compute and the model registry to one region. If you use a managed training service, confirm the region it runs in and where its logs and artefacts are stored.

  • Open-source licensinglow

    The stack is permissively licensed — scikit-learn under BSD, XGBoost and MLflow under Apache-2.0 — so there is no per-user restriction to check here. Record the versions you trained against, because a model is tied to the library that produced it.


09Alternatives

  • A managed training service, when the data outgrows one machine

    When training no longer fits on one instance, a managed service runs the same scikit-learn or XGBoost code at scale. SageMaker AI training jobs, Azure Machine Learning and Vertex AI training all "provide a managed training service" for this — the model code does not change.

    • Distributed training and managed infrastructure for large datasets
    • A cloud service in the loop, priced per instance-hour, with its own region to pin

    sagemaker-trainingazure-mlvertex-ai-training

  • A language model, only if the signal is in text

    If the predictive signal lives in maintenance notes or reports rather than sensor numbers, extraction and classification with a model API may fit. For numeric telemetry, tabular ML is the right and cheaper tool.

    • Handles free-text history a tabular model cannot read
    • Far more expensive and less explainable than gradient boosting on numeric features

    openai-apianthropic-api


10Evidence

0 of 8 fetched

11Community

Deployed this stack, or hit something this page does not cover? Corrections, sources and implementation reports are what keep a recipe worth reading.

Improve this page

Sign in to contribute

From the field

0 deployments · 0 questions

Nobody has reported deploying this here yet, and no question has been opened against this page. Both appear once a reviewer accepts them.


12Hire an FDE

If you would rather not build it, we can introduce a forward-deployed engineer who has deployed this stack before. The enquiry form starts from this recipe.