All Projects → jmeisele → ml-ops

jmeisele / ml-ops

Licence: other
Get your MLOps (Level 1) platform started and going fast.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to ml-ops

devops-kpi-chapter1
DevOps KPI in Practice - Chapter 1 - Source Code
Stars: ✭ 25 (-69.14%)
Mutual labels:  influxdb, grafana
air-quality
Air quality sensing and monitoring
Stars: ✭ 17 (-79.01%)
Mutual labels:  influxdb, grafana
coronavirus-dresden
Collects official SARS-CoV-2 infection statistics published by the city of Dresden.
Stars: ✭ 19 (-76.54%)
Mutual labels:  influxdb, grafana
grafana-influx-admin
InfluxDB admin panels for grafana
Stars: ✭ 34 (-58.02%)
Mutual labels:  influxdb, grafana
solar-logger
A datalogger for a solar inverter. Stores data in influxdb and displays it in grafana. Has load diverting capability, to use the inverter's excess power
Stars: ✭ 53 (-34.57%)
Mutual labels:  influxdb, grafana
Sofar LSW3
Get MODBUS data from Sofar (K-TLX) inverter through LSW-3 or LSE module
Stars: ✭ 57 (-29.63%)
Mutual labels:  influxdb, grafana
eseries-perf-analyzer
This project provides an automated installation and deployment of Grafana, NetApp E-Series Web Services, and supporting software for performance monitoring of NetApp E-Series Storage Systems.
Stars: ✭ 19 (-76.54%)
Mutual labels:  influxdb, grafana
iot-edge-offline-dashboarding
Azure IoT Edge offline dashboarding/reporting sample. Guidance and sample dashboards
Stars: ✭ 31 (-61.73%)
Mutual labels:  influxdb, grafana
influx-crypto-watcher
Server that let you monitor many cryptocurrencies and store the OHLC data in InfluxDB (visualisation with grafana)
Stars: ✭ 49 (-39.51%)
Mutual labels:  influxdb, grafana
event-driven-example
An example Event-Driven application in Go built with Watermill library.
Stars: ✭ 81 (+0%)
Mutual labels:  rabbitmq, grafana
influx4mqtt
Insert incoming MQTT values into InfluxDB. Follows mqtt-smarthome architecture.
Stars: ✭ 34 (-58.02%)
Mutual labels:  influxdb, grafana
rpi-monitoring-node
Automated installation of Grafana, Telegraf and influxdb for your Raspberry Pi
Stars: ✭ 18 (-77.78%)
Mutual labels:  influxdb, grafana
docker-iot-dashboard
A complete IoT server for LoRaWAN IoT projects: node-red + influxdb + grafana + ssl + let's encrypt using docker-compose.
Stars: ✭ 79 (-2.47%)
Mutual labels:  influxdb, grafana
pm2-free-monitoring
Pm2 free monitoring with Grafana and InfluxDb!
Stars: ✭ 38 (-53.09%)
Mutual labels:  influxdb, grafana
tracker
Track your activities!
Stars: ✭ 14 (-82.72%)
Mutual labels:  influxdb, grafana
jmeter-influxdb2-listener-plugin
Influx DB v2.0 listener plugin for Apache JMeter. Provides the possibility to see the online dashboard (aggregation table, errors, the response body of failures).
Stars: ✭ 64 (-20.99%)
Mutual labels:  influxdb, grafana
netdata-influx
Netdata ➡️ InfluxDB metrics exporter & Grafana dashboard
Stars: ✭ 29 (-64.2%)
Mutual labels:  influxdb, grafana
InfluxDB
App Metrics Extensions for InfluxDB reporting
Stars: ✭ 17 (-79.01%)
Mutual labels:  influxdb, grafana
bme680 to influxdb
Simple script that sends your BME680 temp, pressure, humidity and gas sensor data to InfluxDB.
Stars: ✭ 21 (-74.07%)
Mutual labels:  influxdb, grafana
docker-case
这个项目主要是为了快速拉起docker服务
Stars: ✭ 31 (-61.73%)
Mutual labels:  rabbitmq, grafana

MLOps

Cloud agnostic tech stack for starting an MLOps platform (Level 1)

"We'll build a pipeline - after we deploy the model."

Wink

Model drift will hit when it's least convenient for you

To run: Make sure docker is running and you have Docker Compose installed.

  1. Clone the project

    git clone https://github.com/jmeisele/ml-ops.git
  2. Change directories into the repo

    cd ml-ops
  3. Run database migrations and create the first Airflow user account.

    docker-compose up airflow-init
  4. Build our images and launch with docker compose

    docker-compose pull && docker-compose up
  5. Open a browser and log in to MinIO

    user: minioadmin

    password : minioadmin

    Create a bucket called mlflow

    MinIO

  6. Open a browser and log in to Grafana

    user: admin

    password : admin

    Grafana

    Both Promethus and InfluxDB data sources have already been provisioned along with an MLOps Demo Dashboard and a Notification Channel.

  7. Add the notification channel to some panels Panels

  8. Start the send_data.py script which sends a POST request every 0.1 seconds

  9. Open a browser and turn on the Airflow DAG used to retrain our ML model

    user: airflow

    password : airflow

Airflow

  1. Lower the alarm threshold to see the Airflow DAG pipeline get triggered

Threshold

  1. Check MLFlow after the Airflow DAG has run to see the model artifacts stored using MinIO as the object storage layer.

  2. (Optional) Send a POST request to our model service API endpoint

    curl -v -H "Content-Type: application/json" -X POST -d
    '{
        "median_income_in_block": 8.3252,
        "median_house_age_in_block": 41,
        "average_rooms": 6,
        "average_bedrooms": 1,
        "population_per_block": 322,
        "average_house_occupancy": 2.55,
        "block_latitude": 37.88,
        "block_longitude": -122.23
    }'
    http://localhost/model/predict
  3. (Optional) If you are so bold, you can also simluate production traffic using locust, but keep in mind you have a lot of services running on your local machine, you would never deploy a production ML API on your local machine to handle production traffic.

Level 1 Workflow & Platform Architecture

MLOps

Model Serving Architecture

API worker architecture

Services

  • nginx: Load Balancer
  • python-model-service1: FastAPI Machine Learning API 1
  • python-model-service2: FastAPI Machine Learning API 2
  • postgresql: RDBMS
  • rabbitmq: Message Queue
  • rabbitmq workers: Workers listening to RabbitMQ
  • locust: Load testing and simulate production traffic
  • prometheus: Metrics scraping
  • minio: Object storage
  • mlflow: Machine Learning Experiment Management
  • influxdb: Time Series Database
  • chronograf: Admin & WebUI for InxfluxDB
  • grafana: Performance Monitoring
  • redis: Cache
  • airflow: Workflow Orchestrator
  • bridge server: Receives webhook from Grafana and translates to Airflow REST API

gotchas:

Postgres:

Warning: scripts in /docker-entrypoint-initdb.d are only run if you start the container with a data directory that is empty; any pre-existing database will be left untouched on container startup.

Contributors

Thanks goes to these incredible people:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].