PythonMLFlaskDevOps

Weather ML App

A machine learning powered Flask web app that predicts weather conditions from sensor measurements. Containerised with Docker and deployed to a Kubernetes cluster via automated CI/CD pipelines.

Model

scikit-learn

Deploy

Docker + K8s

CI/CD

GitHub Actions

Tests

smoke + unit + integration

How it works

1User Input
2Flask Form
3scikit-learn Classifier
4Prediction
5HTML Output

Demo

Accepts 9 weather sensor features (temperature, pressure, humidity, wind speed, wind degree, rain 1h, rain 3h, snow, clouds) and predicts 9 weather classes: clear, cloudy, drizzly, foggy, hazey, misty, rain, smokey, thunderstorm. Response time under 5ms.

CI/CD Pipeline

Push to main triggers: CI (install, smoke test, unit test, integration test) → Build (Docker image to DockerHub) → Deploy (K8s rollout verification). Self-hosted GitHub Actions runner demonstrates real infrastructure management.

Key Decisions

Pickle over ONNX — simpler for sklearn models. Self-hosted GitHub Actions runner on real infrastructure. NodePort over Ingress — simpler for a single-service demo. python:3.10-slim Docker base image. 2 Kubernetes replicas for availability.

Security

  • Containerised execution via Docker
  • Orchestrated scaling via Kubernetes (2 replicas)
  • CI/CD automation prevents manual deploy errors

Want something like this built for your business?

I'll look at your problem, figure out the right approach, and ship working software. No slideshows.

Book a free consultation