MicrocosmWorksInnover et Architecturer le Cosmos Numérique
Ă€ proposContact
MicrocosmWorksInnover et architecturer des cosmos numériques

Fournir des solutions informatiques qui comptent. Nous sommes passionnés par la technologie, la sécurité et aidons les entreprises à croître grâce à une infrastructure informatique fiable et innovante.

[email protected]
+91 7011868196
New Delhi, India

Hub de Croissance IA

Hub IAInnovation pour les startupsAccélérateur d'entreprise

Solutions

Toutes les solutionsApplications de bien-être et de fitnessPlateforme vidéo IADéveloppement d'agents IA

Ressources

PerspectivesGuides de l'industriePlans d'utilisationModèles d'architectureÉtudes de cas

Entreprise

Ă€ propos de nousContactNotre travail

Services

Consultation numériqueInfrastructure cloudDéveloppement SaaSDéveloppement IATechnologie vidéo
Développement ERPPersonnalisation ZohoDéveloppement OdooIntégration SalesforceDéveloppement CRM personnalisé
Intégration QuickBooksSolutions IoTDéveloppement Blockchain
Consultation en cybersécuritéSupport IT - L3

© 2026 MicrocosmWorks. Tous droits réservés.

Politique de confidentialitéConditions d'utilisation
Retour aux Études de Cas
Vector DatabasesPublié June 22, 2026 · Mis à jour June 22, 2026

Mise à l'échelle automatique de Milvus sur Kubernetes avec stockage persistant basé sur EC2 et S3

Une plateforme d'AI avec des données vectorielles en croissance rapide (embeddings pour la recherche, les recommandations et le RAG) avait besoin que sa base de données vectorielle Milvus s'adapte automatiquement en fonction de la charge des requêtes et du volume de données — avec un stockage durable et économique qui ne serait pas perdu si les pods redémarraient ou si les nœuds étaient remplacés.

Discutez de Votre Projet
milvus-autoscaling-kubernetes-s3.webp
Vector Databases
Domain
11
Technologies
6
Key Results
Delivered
Status

Le Défi

L'exécution de Milvus à grande échelle en production présentait plusieurs défis d'infrastructure :

  • CapacitĂ© fixe — Les dĂ©ploiements statiques de Milvus ne pouvaient pas gĂ©rer des pics de charge de requĂŞtes 10x pendant les heures de pointe
  • Risque de perte de donnĂ©es — Les redĂ©marrages de pods sur un stockage Ă©phĂ©mère entraĂ®naient des reconstructions d'index prenant des heures sur de grandes collections
  • InefficacitĂ© des coĂ»ts — Le sur-provisionnement pour la charge de pointe signifiait payer pour du calcul inactif 70% du temps
  • CoĂ»ts de stockage — Les volumes de stockage en bloc liĂ©s aux instances Ă©taient coĂ»teux pour des jeux de donnĂ©es vectorielles de plusieurs tĂ©raoctets
  • Reconstructions d'index — La rĂ©indexation de millions de vecteurs après le remplacement d'un nĹ“ud entraĂ®nait des heures d'indisponibilitĂ©
  • DurabilitĂ© Multi-AZ — Le stockage Single-AZ ne pouvait pas survivre aux pannes de zone de disponibilitĂ©

Notre Solution

Nous avons déployé Milvus sur Kubernetes (EKS) avec Horizontal Pod Autoscaling pour les nœuds de requête, Cluster Autoscaler pour le calcul, et Amazon S3 comme backend de stockage persistant — éliminant le risque de perte de données et réduisant les coûts de stockage d'environ 80%.

Architecture

  • Orchestration : Amazon EKS (Elastic Kubernetes Service)
  • Calcul : instances EC2 (types d'instances mixtes) gĂ©rĂ©es par Cluster Autoscaler
  • Base de donnĂ©es vectorielle : Milvus dĂ©ployĂ© via un Helm chart en mode distribuĂ©
  • Stockage d'objets : Amazon S3 pour les fichiers de segment, les fichiers d'index et la persistance des binlog
  • MĂ©tadonnĂ©es : Cluster etcd pour la coordination et les mĂ©tadonnĂ©es de Milvus
  • File d'attente de messages : Message streaming pour le pipeline de logs de Milvus
  • Monitoring : Prometheus + Grafana pour les mĂ©triques Milvus et les signaux d'autoscaling

Architecture distribuée de Milvus sur Kubernetes

Déploiement des composants

Milvus fonctionne en mode distribué avec des types de nœuds dédiés, chacun étant déployé comme une workload Kubernetes avec une mise à l'échelle indépendante :

  • NĹ“uds Proxy — Gèrent les connexions client et le routage des requĂŞtes
  • NĹ“uds de requĂŞte — ExĂ©cutent les recherches vectorielles et chargent les segments en mĂ©moire
  • NĹ“uds de donnĂ©es — Gèrent les chemins d'Ă©criture et purgent les segments vers S3
  • NĹ“uds d'index — Construisent les index vectoriels et les Ă©crivent sur S3
  • Coordinateur — Coordination du cluster et allocation d'horodatages
  • etcd — Stockage des mĂ©tadonnĂ©es et dĂ©couverte de services
  • File d'attente de messages — Streaming de logs et write-ahead log

Horizontal Pod Autoscaling (HPA)

Autoscaling des nœuds de requête

Les nœuds de requête sont la cible principale de la mise à l'échelle — ils chargent les segments vectoriels en mémoire et exécutent les recherches. La mise à l'échelle est pilotée par plusieurs métriques, notamment l'utilisation du CPU, l'utilisation de la mémoire, la profondeur de la file d'attente des requêtes et la latence P99 des requêtes. Le HPA est configuré avec les réplicas min/max appropriés, une mise à l'échelle rapide pour gérer les pics et une réduction progressive pour éviter le flapping.

Autoscaling des nœuds d'index

Les nœuds d'index s'adaptent en fonction des tâches de construction d'index en attente — mise à l'échelle à la hausse lorsque la file d'attente de construction contient des éléments en attente et réduction à la baisse lorsqu'ils sont inactifs.

EC2 Cluster Autoscaler

Stratégie d'instances

  • Groupes de nĹ“uds : Plusieurs groupes de nĹ“uds avec diffĂ©rents types d'instances pour l'optimisation des coĂ»ts
  • Workload de requĂŞtes : Instances optimisĂ©es pour la mĂ©moire pour les segments vectoriels en mĂ©moire
  • Workload d'index : Instances optimisĂ©es pour le calcul pour la construction d'index gourmande en CPU
  • Spot Instances : Les nĹ“uds d'index et les nĹ“uds de donnĂ©es non critiques s'exĂ©cutent sur des Spot Instances pour des Ă©conomies significatives
  • On-Demand : NĹ“uds de requĂŞte et coordinateurs sur des instances On-Demand pour la stabilitĂ©

Comportement de mise à l'échelle

Lorsque le HPA crée de nouveaux pods qui ne peuvent pas être planifiés, le Cluster Autoscaler provisionne de nouvelles instances EC2 dans le groupe de nœuds approprié. Les nouveaux nœuds de requête chargent ensuite leurs segments assignés depuis S3 en mémoire et commencent à servir les requêtes, le processus total de mise à l'échelle se terminant en quelques minutes.

Stockage persistant basé sur S3

Pourquoi S3 plutĂ´t que le stockage en bloc

S3 offre des avantages significatifs par rapport au stockage en bloc pour Milvus :

  • CoĂ»t de stockage rĂ©duit d'environ 80% pour les grands jeux de donnĂ©es
  • DurabilitĂ© de 11-nines avec rĂ©plication multi-AZ intĂ©grĂ©e
  • Mise Ă  l'Ă©chelle illimitĂ©e sans redimensionnement manuel des volumes
  • IndĂ©pendant des pods — DonnĂ©es toujours disponibles quel que soit le cycle de vie du pod ou du nĹ“ud
  • Pas de verrouillage AZ — DonnĂ©es accessibles depuis n'importe quelle zone de disponibilitĂ©

Flux de données avec S3

  1. Chemin d'écriture : Les nœuds de données mettent en tampon les insertions en mémoire, puis purgent les segments scellés vers S3
  2. Construction d'index : Les nœuds d'index lisent les segments depuis S3, construisent les index et écrivent les fichiers d'index sur S3
  3. Chemin de requête : Les nœuds de requête téléchargent les segments et les index depuis S3, les chargent en mémoire et servent les requêtes
  4. Récupération : Au redémarrage du pod, les nœuds de requête téléchargent à nouveau les segments assignés depuis S3 (aucune perte de données)

Optimisation des performances S3

  • Ajustement de la taille des segments Ă©quilibre les coĂ»ts des requĂŞtes S3 et la fraĂ®cheur des donnĂ©es
  • Mise en cache locale sur SSD sur le stockage d'instances NVMe Ă©vite les lectures S3 rĂ©pĂ©tĂ©es pour les segments chauds
  • TĂ©lĂ©chargements parallèles permettent un dĂ©marrage rapide des nĹ“uds de requĂŞte
  • Politiques de cycle de vie archivent les anciennes donnĂ©es vers des niveaux de stockage moins chers

Monitoring et observabilité

Le déploiement comprend une surveillance complète via Prometheus et Grafana :

  • Performances des requĂŞtes — Distribution de la latence, QPS, taux de rĂ©ussite du cache
  • Aperçu du cluster — Nombre de nĹ“uds, statut des pods, utilisation des ressources
  • SantĂ© du stockage — Utilisation de S3, nombre de segments, taux de vidage
  • ÉvĂ©nements d'autoscaling — ÉvĂ©nements HPA, mise Ă  l'Ă©chelle des nĹ“uds, latence de planification des pods
  • Alerting — Alertes automatisĂ©es pour la latence Ă©levĂ©e, le risque d'OOM, les Ă©checs de vidage et les limites de capacitĂ©

Fonctionnalités clés

  1. HPA des nœuds de requête — Mise à l'échelle automatique basée sur le CPU, la mémoire, la latence et la profondeur de la file d'attente
  2. EC2 Cluster Autoscaler — Provisionnement dynamique des nœuds avec des types d'instances mixtes
  3. Persistance S3 — Durabilité de 11-nines, ~80% moins cher que le stockage en bloc, survit aux pannes AZ
  4. Spot Instances — Nœuds d'index et de données sur Spot Instances pour des économies de calcul significatives
  5. Cache SSD local — Le caching NVMe élimine les lectures S3 répétées pour les segments chauds
  6. Récupération sans interruption — Les redémarrages de pods rechargent les segments depuis S3 sans perte de données
  7. Multi-AZ — Stockage S3 + groupes de nœuds multi-AZ pour une tolérance complète aux pannes AZ
  8. Observabilité — Prometheus + Grafana avec des métriques spécifiques à Milvus et une visibilité de l'autoscaling

Résultats

Coût de stockage : réduction d'environ 80% par rapport à un déploiement basé sur le stockage en bloc
Coût de calcul : réduction d'environ 40% via les Spot Instances et l'autoscaling dimensionné correctement
Latence des requĂŞtes : P99 maintenue sous 200ms lors de pics de charge 10x

Stack Technologique

MilvusAmazon EKSKubernetes HPACluster AutoscalerAmazon EC2Amazon S3etcdPrometheusGrafanaHelmNVMe Instance Storage

caseStudyDetail.more Études de Cas

Découvrez plus de nos implémentations techniques

AI Accounting

Traitement de factures assisté par l'IA avec OCR et intégration QuickBooks

Une entreprise de taille moyenne, traitant des centaines de factures fournisseurs chaque mois, devait éliminer la saisie manuelle des données en extrayant automatiquement les données des factures à l'aide de l'IA/OCR et en les synchronisant directement dans QuickBooks pour la tenue de livres et le suivi des paiements.

Lire l'Étude de Cas
Video Encoding

Insertion d'annonces côté client (CSAI) avec analyse des marqueurs SCTE-35 et intégration de lecteurs multiplateformes

Une plateforme de streaming vidéo devait implémenter l'insertion d'annonces côté client (CSAI) sur les applications web, mobiles et de télévision connectée — permettant des expériences publicitaires personnalisées au niveau de l'appareil avec un support complet d'interaction publicitaire (superpositions cliquables, bannières complémentaires, boutons de saut) que l'insertion côté serveur ne peut pas offrir.

Questions fréquemment posées

MicrocosmWorks configured horizontal pod autoscaling with custom metrics from Milvus's built-in memory usage exporter, triggering scale-out events when any query node exceeds 75% memory utilization. Collection segments are automatically redistributed across new nodes using Milvus's segment manager, preventing any single node from becoming a bottleneck.

MicrocosmWorks selected S3-backed storage using MinIO as the object storage layer because it decouples storage from compute, allowing query nodes to scale independently without provisioning new EBS volumes. This architecture reduces storage costs by approximately 60% compared to gp3 EBS volumes while maintaining sub-100ms segment load times from S3.

MicrocosmWorks configured the deployment with replica sets for each Milvus component, including query nodes, index nodes, and data nodes, with pod disruption budgets ensuring minimum availability during rolling updates. Since all persistent data resides in S3, a failed node's replacement can immediately access all segments without data migration.

MicrocosmWorks found that r6i.2xlarge instances provide the optimal cost-to-performance ratio for Milvus query workloads, offering 64GB of memory for in-memory segment caching at a competitive spot price. For GPU-accelerated index building, g5.xlarge instances with NVIDIA A10G GPUs reduced index build times by 8x compared to CPU-only builds.

MicrocosmWorks delivers Kubernetes infrastructure projects at rates of $30-$50/hr, with a Milvus autoscaling deployment including Helm chart customization, HPA configuration, S3 integration, and monitoring setup typically requiring 150-250 hours. Ongoing managed support for cluster optimization and upgrades is available at the same hourly rates.

PrĂŞt Ă  Transformer Votre Entreprise ?

Discutons de la façon dont nous pouvons appliquer des solutions similaires à vos défis.

Contactez-NouscaseStudyDetail.viewAllCaseStudies
Temps de récupération : Redémarrage du pod à la disponibilité des requêtes en 30-90 secondes (rechargement des segments S3)
Durabilité : Aucune perte de données lors de multiples remplacements de nœuds et de basculements AZ
Évolutivité : A géré plus de 50 millions de vecteurs avec une mise à l'échelle automatique de 2 à 20 nœuds de requête
Lire l'Étude de Cas
Web Scraping

Plateforme de Web Scraping et de Génération de Contenu de Blog Propulsée par l'AI

Une entreprise médiatique avait besoin d'une plateforme de contenu intelligente capable d'automatiser la création de contenu de blog en récupérant du contenu web existant, en l'analysant à l'aide de l'AI et en générant des articles de blog originaux et optimisés pour le SEO à partir des données extraites.

Lire l'Étude de Cas