← BACK TO PROJECTSPROJECT SYSTEM / WEATHER TRACKER AZUREGITHUB ↗
FASTAPI · DOCKER · ACR · CONTAINER APPS · AZURE MONITOR · KEY VAULT
PROJECT / WEATHER TRACKER

CLOUD-NATIVE
WEATHER PLATFORM.

A FastAPI weather application engineered into a secure, observable Azure workload with containers, CI/CD, structured telemetry, alerting, and managed-identity-backed secret delivery.

Azure Container AppsDocker + ACRGitHub ActionsApplication InsightsAzure MonitorKey Vault
LIVE RUNTIME NOTE

The Container App can scale to zero. After idle time, the first request may take roughly 30–60 seconds while the container starts; subsequent requests return normally.

RUNTIME / CONTAINER APPS IMAGE / ACR SECRET / KEY VAULT
DEPLOYMENT PATH / FINAL ARCHITECTURELIVE ON AZURE
Weather Tracker Azure architecture
GITHUBDOCKERACRCONTAINER APPSMONITOR
01 / SYSTEM OVERVIEW

FROM LOCAL APP TO AZURE WORKLOAD.

THE ENGINEERING PROBLEM

Move beyond a local demo into an operable cloud workload.

The original FastAPI application was progressively hardened with cloud hosting, telemetry, Docker packaging, automated deployment, and secure runtime configuration.

THE FINISHED OUTCOME

A secure cloud-native deployment path.

Container Apps runs the live workload, ACR stores the image, GitHub Actions handles deployment, Azure Monitor provides operational visibility, and Key Vault delivers the WeatherAPI secret through managed identity.

10VALIDATION STAGESHTTPSPUBLIC INGRESS0MIN REPLICASMIKEY VAULT ACCESS
02 / BUILD & DEPLOYMENT

CODE → IMAGE → REGISTRY → RUNTIME.

The final delivery path separates application development, container packaging, image storage, validation, and production hosting.

01APPLICATION

FastAPI Weather App

Python 3.12, Jinja2, SQLite, HTTPX, favourites, search, forecast, and /health.

02PACKAGE

Docker

Production-style image using Gunicorn and Uvicorn workers on port 8000.

03REGISTRY

Azure Container Registry

Private image storage used by the Azure container runtimes.

04VALIDATE

Azure Container Instances

Short-lived validation runtime used before the final Container Apps deployment.

05RUNTIME

Azure Container Apps

Public HTTPS ingress, scale-to-zero, and the final production-style workload.

03 / SECURITY & OPERATIONS

OBSERVABLE. ALERTED. SECRET-SAFE.

The project deliberately treats telemetry, alerting, and secret management as part of the platform rather than extras around the application.

01
TELEMETRY

Application Insights

Captures requests and application behaviour through Azure Monitor OpenTelemetry.

02
LOGGING

Structured application logs

Weather request start, success, latency, HTTP failures, and context.

03
ALERTING

Azure Monitor

KQL-based scheduled-query alert detects WeatherAPI HTTP errors.

04
NOTIFY

Action Group

Email action confirms the alert path reaches the operator.

05
SECRETS

Key Vault + Managed Identity

The WeatherAPI key is referenced securely by the Container App.

04 / ENGINEERING EVIDENCE

THE BUILD, PROVEN IN AZURE.

Real screenshots from application hosting, containers, telemetry, monitoring, alerting, troubleshooting, and CI/CD.

05 / END-TO-END VALIDATION

TEN STAGES FROM MVP TO SECURED RUNTIME.

01

Build local FastAPI MVP

02

Deploy to Azure App Service

03

Add Application Insights telemetry

04

Configure Azure Monitor alerts

05

Containerize with Docker

06

Publish image to ACR

07

Validate image with ACI

08

Deploy to Azure Container Apps

09

Automate with GitHub Actions

10

Move WeatherAPI secret to Key Vault

06 / IMPLEMENTATION STACK

APPLICATION + PLATFORM ENGINEERING.

APPLICATION / RUNTIME
  • Python 3.12
  • FastAPI
  • Jinja2 templates
  • SQLite development storage
  • HTTPX
  • Gunicorn + Uvicorn workers
AZURE / DEVOPS
  • Azure App Service
  • Application Insights
  • Azure Monitor
  • Azure Container Registry
  • Azure Container Instances
  • Azure Container Apps
  • Azure Key Vault + managed identity
  • GitHub Actions CI/CD
07 / BUILD LESSONS

WHAT BROKE — AND WHAT THE PLATFORM TAUGHT.

01

Startup dependencies must match runtime commands.

The App Service deployment failed until Gunicorn was included in the application dependencies.

02

Telemetry needs real instrumentation.

Application Insights existed before useful request and trace data flowed; Azure Monitor OpenTelemetry fixed the observability gap.

03

Alert rules are implementation details too.

Scheduled-query alert syntax needed CLI-specific condition/query formatting before deployment succeeded.

04

Containers expose networking assumptions.

Docker, WSL, local port mapping, ACI, and Container Apps each forced the runtime configuration to be explicit.

05

Managed identity removes application secret handling.

Key Vault plus Container Apps managed identity replaced plaintext WeatherAPI secret configuration in the final runtime.

LIVE AZURE CONTAINER APPS WORKLOAD

SEE THE APPLICATION RUNNING.

The first request may take 30–60 seconds after scale-to-zero.

OPEN WEATHER TRACKER ↗VIEW GITHUB REPOSITORY ↗OPEN ENGINEERING DEEP DIVE →