Welcome to MLOps Project 6. This repository demonstrates a production-grade machine learning pipeline. The core focus of this project is mastering CircleCI for cloud-native automation, replacing traditional tools like Jenkins to deploy a containerized application to Google Kubernetes Engine (GKE).
This project marks a major milestone in our MLOps journey. While previous projects focused on complex data engineering (like the 200,000-row Australia Weather dataset), this project uses a streamlined dataset to prioritize Deployment Infrastructure.
The goal is to move from "learning to drive in a parking lot" (local testing) to "driving a massive truck on the highway" (scalable cloud deployment).
| Tool | Icon | Purpose |
|---|---|---|
| CircleCI | ⭕ | Cloud-hosted automation for building and testing code on every push. |
| GitLab CI | 🦊 | Manages the step-by-step "pipeline" journey from laptop to server. |
| GitHub Actions | 🐙 | Automates tasks like unit testing directly within the repository. |
| Docker | 🐳 | Containerizes the application for consistent environments. |
| GCP (GKE) | ☁️ | Orchestrates the deployment using Google Kubernetes Engine. |
The project follows a modular, step-by-step professional engineering cycle:
- Project Setup: Environment configuration () and directory structuring (
src,pipelines,artifacts). - Jupyter Testing: Prototyping data processing and model logic in blocks.
- Modularity: Refactoring code into Classes and Objects for production readiness.
- UI Development: Building a user-friendly interface using Flask and HTML.
- GCP Infrastructure: * Setting up GKE Clusters.
- Configuring Artifact Registry (GCR).
- Managing IAM service account JSON keys.
- CI/CD Pipeline: Automating the flow from GitHub → CircleCI → GCR → GKE.
The moment you push code to the main branch, the following automated sequence triggers:
- Trigger: CircleCI detects the update via GitHub SCM.
- Checkout: CircleCI pulls the latest code into a cloud container.
- Build & Push: A Docker image is created and pushed to Google Container Registry (GCR).
- Deploy: CircleCI communicates with GKE to roll out the new image to the Kubernetes cluster.
Why choose CircleCI for this project?
| Feature | ⭕ CircleCI | 🦊 Jenkins |
|---|---|---|
| Hosting | Cloud-Based (SaaS) | Local/Self-Managed |
| Setup | Fast (Mostly UI clicks) | Complex (Manual installation) |
| Scalability | Native & Automated | Manual Scaling |
| Customization | Standardized | Infinite (3,000+ plugins) |
| Typical User | Startups (Spotify, Pinterest) | Big Tech (Netflix, Uber) |
- Google Cloud Platform Account
- CircleCI Account linked to GitHub
- Python 3.8+
- Clone the repo:
git clone https://github.com/Mahul777/FlowerPredictor.git
- Install Dependencies:
pip install -r requirements.txt
- Run Locally:
python app.py
Distributed under the MIT License.
Mahul - Your GitHub Profile
Project Link: https://github.com/Mahul777/FlowerPredictor
Would you like me to help you write the specific config.yml file for CircleCI to match this workflow?
## Pipeline

## UI

## Clustering
