diff --git a/docs/blog.fr.md b/docs/blog.fr.md index 7032518..74d86c9 100644 --- a/docs/blog.fr.md +++ b/docs/blog.fr.md @@ -88,11 +88,11 @@ Dashboard Expériences MLFlow : ![Dashboard MLFLow](./mlflow_experiments_dashboard.png) Modèles en production (registre de modèles): -![Models Registry](mlflow_models_registry_2-1.png) +![Models Registry](mlflow_models_registry_2.png) Meilleur modèle non BERT retenu : -![Modèle retenu](mlflow_models_registry_best_LSTM_model-1.png) -![Meilleur modèle non BERT](mlflolw_experiments_dashboard_best_LSTM_model-1.png) +![Modèle retenu](mlflow_models_registry_best_LSTM_model.png) +![Meilleur modèle non BERT](mlflolw_experiments_dashboard_best_LSTM_model.png) --- ## 🧪 CI, tests et versioning @@ -109,7 +109,7 @@ Un [pipeline CI/CD](https://github.com/GrgMdmn/OpenClassrooms_AI_Projects/blob/m - La validation de tests unitaires - La construction et le push de l'api conteneurisée sur dockerhub -![github workflow](github_ci-cd-1.png) +![github workflow](github_ci-cd.png) --- ## 🚀 Déploiement de l’API FastAPI (double) @@ -146,21 +146,21 @@ Le projet propose un **double déploiement** de l’API, en local et dans le clo - 🏠 **NAS local** : [sentiment-api.greg-madman-nas.duckdns.org](https://sentiment-api.greg-madman-nas.duckdns.org)\ Interface Docker Compose sur le NAS : -![docker compose openmediavault](openmediavault_docker-compose_settings-1.png) +![docker compose openmediavault](openmediavault_docker-compose_settings.png) - ☁️ **Google Cloud Run** : [sentiment-api-service-7772256003.europe-west1.run.app](https://sentiment-api-service-7772256003.europe-west1.run.app)\ Interface de déploiement Google Cloud : -![déploiement google cloud](google_cloud_interface-1.png) +![déploiement google cloud](google_cloud_interface.png) --- #### 🔄 Déploiement continu automatisé (NAS uniquement) Pour assurer un **déploiement continu** sur le NAS, il a été choisi d'installer [**Watchtower**](https://containrrr.dev/watchtower/arguments/) pour rester dans un logique d'environnement 100% `docker`. Cet outil surveille toutes les **10 minutes** l’image Docker de l’API (`sentiment_api`) et, en cas de nouvelle version disponible sur DockerHub, redémarre automatiquement le conteneur avec la dernière image. -![Docker Watchtower dans OMV Docker-Compose](watchtower_docker-1.png) +![Docker Watchtower dans OMV Docker-Compose](watchtower_docker.png) Ce mécanisme garantit que la version déployée sur le NAS reste toujours synchronisée avec la dernière version validée par les tests sur GitHub Actions, **sans intervention manuelle**. -![Logs watchtower dans docker (console SSH)](watchtower_logs-1.png) +![Logs watchtower dans docker (console SSH)](watchtower_logs.png) Un **système d’alerte mail** notifie automatiquement toute mise à jour effectuée. ![Rapport mail watchtower update sentiment_api](watchtower_logs_by_email.png) diff --git a/docs/blog.md b/docs/blog.md index bb1c860..1612ed1 100644 --- a/docs/blog.md +++ b/docs/blog.md @@ -88,11 +88,11 @@ MLFlow Experiments Dashboard: ![MLFlow Dashboard](./mlflow_experiments_dashboard.png) Production Models (model registry): -![Models Registry](mlflow_models_registry_2-1.png) +![Models Registry](mlflow_models_registry_2.png) Best non-BERT selected model: -![Selected Model](mlflow_models_registry_best_LSTM_model-1.png) -![Best Non-BERT Model](mlflolw_experiments_dashboard_best_LSTM_model-1.png) +![Selected Model](mlflow_models_registry_best_LSTM_model.png) +![Best Non-BERT Model](mlflolw_experiments_dashboard_best_LSTM_model.png) --- @@ -110,7 +110,7 @@ A full [CI/CD pipeline](https://github.com/GrgMdmn/OpenClassrooms_AI_Projects/bl - Validation of unit tests - Build and push of the containerized API to DockerHub -![GitHub Workflow](github_ci-cd-1.png) +![GitHub Workflow](github_ci-cd.png) --- @@ -148,21 +148,21 @@ The project offers a **dual API deployment**, locally and in the cloud: - 🏠 **Local NAS**: [sentiment-api.greg-madman-nas.duckdns.org](https://sentiment-api.greg-madman-nas.duckdns.org) Docker Compose interface on the NAS: -![Docker Compose OpenMediaVault](openmediavault_docker-compose_settings-1.png) +![Docker Compose OpenMediaVault](openmediavault_docker-compose_settings.png) - ☁️ **Google Cloud Run**: [sentiment-api-service-7772256003.europe-west1.run.app](https://sentiment-api-service-7772256003.europe-west1.run.app) Google Cloud deployment interface: -![Google Cloud Deployment](google_cloud_interface-1.png) +![Google Cloud Deployment](google_cloud_interface.png) --- #### 🔄 Automated Continuous Deployment (NAS only) To ensure **continuous deployment** on the NAS, we chose to install [**Watchtower**](https://containrrr.dev/watchtower/arguments/) to maintain a 100% `docker` environment. This tool checks every **10 minutes** the Docker image of the API (`sentiment_api`) and, if a new version is available on DockerHub, automatically restarts the container with the latest image. -![Docker Watchtower in OMV Docker-Compose](watchtower_docker-1.png) +![Docker Watchtower in OMV Docker-Compose](watchtower_docker.png) This mechanism ensures that the version deployed on the NAS always stays synchronized with the latest version validated by GitHub Actions tests, **without manual intervention**. -![Logs watchtower in docker (SSH console)](watchtower_logs-1.png) +![Logs watchtower in docker (SSH console)](watchtower_logs.png) An **email alert system** automatically notifies any update performed. ![Watchtower Logs by Email](watchtower_logs_by_email.png) diff --git a/docs/github_ci-cd-1.png b/docs/github_ci-cd-1.png deleted file mode 100644 index 8f28b02..0000000 Binary files a/docs/github_ci-cd-1.png and /dev/null differ diff --git a/docs/google_cloud_interface-1.png b/docs/google_cloud_interface-1.png deleted file mode 100644 index fdb7b10..0000000 Binary files a/docs/google_cloud_interface-1.png and /dev/null differ diff --git a/docs/mlflolw_experiments_dashboard_best_LSTM_model-1.png b/docs/mlflolw_experiments_dashboard_best_LSTM_model-1.png deleted file mode 100644 index 540b772..0000000 Binary files a/docs/mlflolw_experiments_dashboard_best_LSTM_model-1.png and /dev/null differ diff --git a/docs/mlflow_models_registry_2-1.png b/docs/mlflow_models_registry_2-1.png deleted file mode 100644 index d5aad33..0000000 Binary files a/docs/mlflow_models_registry_2-1.png and /dev/null differ diff --git a/docs/mlflow_models_registry_best_LSTM_model-1.png b/docs/mlflow_models_registry_best_LSTM_model-1.png deleted file mode 100644 index c311724..0000000 Binary files a/docs/mlflow_models_registry_best_LSTM_model-1.png and /dev/null differ diff --git a/docs/openmediavault_docker-compose_settings-1.png b/docs/openmediavault_docker-compose_settings-1.png deleted file mode 100644 index 5760417..0000000 Binary files a/docs/openmediavault_docker-compose_settings-1.png and /dev/null differ diff --git a/docs/watchtower_docker-1.png b/docs/watchtower_docker-1.png deleted file mode 100644 index d286723..0000000 Binary files a/docs/watchtower_docker-1.png and /dev/null differ diff --git a/docs/watchtower_logs-1.png b/docs/watchtower_logs-1.png deleted file mode 100644 index b37d388..0000000 Binary files a/docs/watchtower_logs-1.png and /dev/null differ