Kuberian: servicio de búsqueda en lenguaje natural del código fuente de Kubernetes usando LLM
(kuberian.pages.dev)[Introducción]
Kuberian = Kubernetes + Librarian
Es un proyecto personal desarrollado con la idea de ser un "bibliotecario de Kubernetes".
[Uso previsto]
El objetivo es encontrar rápidamente, entre más de 40 mil funciones presentes en el repositorio de Kubernetes, la función que cumple el rol que quiero.
[Cómo usarlo]
Si escribes en inglés una frase adecuada que empiece con that, encuentra la función más similar.
[Ejemplos de búsqueda]
- makes scaling decision link
- Consulta usada para averiguar con qué criterio se toma la decisión de autoescalado
- checks if the system supports IPVS link
- Consulta usada al buscar la función que determina si el sistema soporta IPVS
- make requests for checking readiness of the container link
- Consulta usada para encontrar la función que lanza solicitudes de Readiness Probe
En general, si le pasas una oración con una cláusula que siga a that, encuentra una función razonablemente similar.
[Por qué lo hice]
A veces la documentación de Kubernetes está escrita de forma ambigua, así que hay que revisar el código de implementación. Pero como el proyecto es tan grande, me daba flojera buscar todo manualmente una por una, así que hice esto.
[Stack técnico]
- Llama 2
- Rust
- eui (Elasticsearch UI)
- Knative w/ Google Cloud Run
[Comentarios finales]
Después de usar Google Cloud Run, los días en que me quebraba la cabeza con AWS Lambda me parecieron tontos. Me parece una de las tecnologías cloud más subestimadas, y además el precio es sorprendentemente barato, ¡así que pruébenlo!
4 comentarios
¡Qué buen proyecto! ¿Qué les parece promoverlo también en otros lugares además de GeekNews?
Y a mí también me gustaría escuchar más sobre CloudRun
Dejé mi opinión sobre CloudRun en el comentario de abajo. :-)
Lo publiqué primero en Hacker News para probar un poco los patrones de los usuarios jaja
(Estoy usando Google Analytics).
¿Quizás hay alguna otra comunidad que me recomienden? No se me ocurren tantos lugares.
¡Oh, qué proyecto tan interesante!
¿Qué aspectos de Google Cloud Run te dejaron más satisfecho en comparación con AWS Lambda? Yo también solo he usado Lambda, así que me da curiosidad.
Más adelante planeo explicarlo en detalle en una entrada de blog o algo por el estilo, pero si saco solo unos cuantos puntos y los limito al entorno de HTTP API:
HTTP
Lambda: hay que implementar la lógica que recibe las llamadas RPC de API Gateway y procesa las solicitudes
Cloud Run: comunicación HTTP común / se pueden aprovechar tal cual las bibliotecas o frameworks basados en HTTP
Concurrencia
Lambda: sí o sí una instancia solo procesa una solicitud a la vez (si entran 100 solicitudes al mismo tiempo, tienen que ejecutarse 100 instancias)
Cloud Run: una sola instancia puede procesar de manera simultánea hasta el límite que defina el usuario
Explicación adicional: Cloud Run es alrededor de 1.5 veces más caro por hora que Lambda, pero si una sola instancia permite 100 de concurrencia, termina siendo tan barato como 1.5/100
Cold / Warm / Hot
Lambda: además de Cold y Hot, existe el estado Warm en el que no se asignan recursos de CPU. Se vuelve muy difícil enviar cosas como información de APM (normalmente no conviene perjudicar el tiempo de respuesta solo por enviar datos de APM...). Incluso cosas como la conexión a la base de datos pueden cortarse en estado Warm, o los recursos no liberarse correctamente, y terminar agotando por completo el pool de conexiones de la base de datos
Cloud Run: solo existen Cold y Hot. Aun así, en términos de AWS, se cobra solo lo equivalente al tiempo de respuesta de API Gateway. Al finalizar, da la oportunidad de limpiar los recursos de forma correcta
Entorno de desarrollo
Lambda: es muy complicado configurar un entorno de desarrollo local, o las restricciones del ecosistema del lenguaje / de la arquitectura de CPU son muy grandes
Cloud Run: igual que un entorno de desarrollo normal
Portabilidad
Lambda: el código escrito para Lambda queda atado a Lambda, así que es difícil portarlo a otras plataformas
Cloud Run: se puede mover a un entorno de Kubernetes sin modificar el código
Además de esto hay mucho más, pero saqué solo algunos puntos con los que normalmente creo que varios estarán de acuerdo jaja