Instalación de Milvus Server con Docker y dependencias de empaquetado
Milvus es una popular base de datos vectorial de código abierto con una tracción significativa en los casos de uso de IA generativa y RAG (generación aumentada por recuperación). Como organización, es posible que esté considerando integrar Milvus en su pila tecnológica, y es importante comprender las dependencias y requisitos clave.
Milvus ofrece opciones de implementación flexibles para su servidor:
Local: Ejecute Milvus como un único contenedor Docker en su máquina. Para necesidades a gran escala, implemente Milvus en un clúster de Kubernetes.
Cloud (Zilliz): Zilliz ofrece Milvus como un servicio en la nube gestionado en AWS, GCP o Azure, proporcionando funciones avanzadas adicionales y una experiencia sin complicaciones.
El resto de este blog tratará sobre la instalación de Milvus localmente. Tenga en cuenta que esto es para Milvus versión 2.4 y superiores.
Resumen de dependencias
Suponiendo una instalación limpia, las principales dependencias para el servidor independiente de Milvus incluyen:
FAISS: Una biblioteca para búsqueda eficiente de similitud y agrupamiento de vectores densos.
etcd: Un almacén distribuido de clave-valor utilizado para almacenar metadatos de Milvus.
Pulsar/Kafka: Un sistema distribuido de mensajería pub-sub para gestionar la ingesta de datos en tiempo real, el procesamiento y la comunicación entre componentes.
Tantivy: Una biblioteca de motor de búsqueda de texto completo escrita en Rust para capacidades de búsqueda basadas en texto.
RocksDB: Un motor de almacenamiento persistente.
Minio/S3/GCS/Azure Blob Storage: Compatibilidad con varias soluciones de almacenamiento de objetos.
Kubernetes: Una plataforma distribuida de implementación en contenedores.
StorageClass y volúmenes persistentes: Los recursos de Kubernetes se utilizan para gestionar los requisitos de almacenamiento de etcd y Pulsar.
Prometheus y Grafana: Visualización para la monitorización de Milvus, que permite a los usuarios realizar un seguimiento del rendimiento y solucionar problemas.
Tamaño de la imagen Docker ~500 MB
El tamaño de la imagen Docker para el contenedor independiente de Milvus es de alrededor de 500 MB. Puede encontrar las últimas versiones en la página de Docker Hub de Milvus en https://hub.docker.com/r/milvusdb/milvus/tags.
Frecuencia de actualizaciones ~1 vez al mes (muchas versiones pequeñas y 1 versión fijada por mes)
Milvus tiene un ciclo de lanzamientos bastante frecuente, con aproximadamente un lanzamiento importante por mes. Las versiones más pequeñas incluyen mejoras y correcciones de errores. Normalmente hay una versión "fijada" por mes.
No recomendamos utilizar la última versión menor para producción. Zilliz Cloud siempre está en la última versión estable, que normalmente está una versión por detrás de la más reciente. Por ejemplo, ahora mismo la última versión es 2.4, pero la última versión que recomendamos para producción es 2.3.x.
SDKs
Ofrecemos seis SDKs (kits de desarrollo de software) en: Python, Node, Go, C#, Java, Ruby
Para instalar el SDK de Python, simplemente ejecute pip install pymilvus.
Es importante asegurarte de que las versiones del SDK elegido y del servidor Milvus coincidan en cuanto a los números de versión principal y secundaria. Por ejemplo, la versión 2.4.0 de Pymilvus es compatible con la versión 2.4.0-rc.1-dev de un servidor Milvus local. Del mismo modo, la versión 2.3.6 de Pymilvus es compatible con la versión 2.3.x de Zilliz.
Instalación
Instalar Milvus standalone Docker es sencillo. Lo principal es descargar el docker-compose.yml más reciente, ya sea desde la página de documentación o directamente desde GitHub. Muestro un comando wget a continuación. Puedes cambiar el comando wget por la versión que estés usando. También necesitarás tener Docker instalado.
A continuación se muestra un código Python de ejemplo para instalar y conectarse.
import pymilvus
from pymilvus import (connections, MilvusClient, utility)
print(f"Pymilvus: {pymilvus.__version__}")
###########################################################################################
# Download the latest .yaml file: https://milvus.io/docs/install_standalone-docker.md
# Or download manually from milvus github:
# !wget https://github.com/milvus-io/milvus/releases/download/v2.4.0-rc.1/milvus-standalone-docker-compose.yml -O docker-compose.yml
############################################################################################
# Start Docker
!docker compose up -d
# Verify which local port the Milvus server is listening on
!docker ps -a #19530/tcp
# Connect to the local server.
connection = connections.connect(
alias="default",
host='localhost', # or '0.0.0.0' or 'localhost'
port='19530'
)
# Print server version.
print(utility.get_server_version())
# Use no-schema Milvus client (flexible json key:value format).
mc = MilvusClient(connections=connection)
# Check if a collection already exists.
collection_name = "movies"
has = utility.has_collection(collection_name)
print(f"Collection '{collection_name}' exists in Milvus?")
print(f"Answer --> {has}!")
# Stop the local Milvus server.
!docker compose down
Resumen
Estas son las dependencias clave y la frecuencia de actualización de versiones para desplegar el servidor Milvus en Docker standalone. Comprender estos detalles puede ayudarte a planificar y prepararte mejor para integrar Milvus en la pila tecnológica de tu organización.
Sigue leyendo

From Vector Database to Vector Lakebase
Zilliz offers a fully managed Vector Lakebase powered by Milvus, unifying real-time vector search, lake-scale discovery, and Al data operations.

Why Not All VectorDBs Are Agent-Ready
Explore why choosing the right vector database is critical for scaling AI agents, and why traditional solutions fall short in production.

8 Latest RAG Advancements Every Developer Should Know
Explore eight advanced RAG variants that can solve real problems you might be facing: slow retrieval, poor context understanding, multimodal data handling, and resource optimization.



