4.3 KiB
Guia de la Interfaz Grafica
La interfaz grafica de Cloud Conversion es una aplicacion Streamlit multipagina. Es la ruta recomendada para arquitectos porque permite operar el pipeline completo desde una consola local.
Iniciar
Desde la raiz del proyecto:
source .venv/bin/activate
streamlit run cloud_conversion_ui/Home.py
Entrada principal:
cloud_conversion_ui/Home.py
Paginas:
cloud_conversion_ui/pages/01_Inventario.py
cloud_conversion_ui/pages/02_Catalogos.py
cloud_conversion_ui/pages/03_Ejecucion.py
cloud_conversion_ui/pages/04_Dashboard.py
cloud_conversion_ui/pages/05_Logs_Artefactos.py
Home
Muestra resumen de los ultimos artefactos disponibles:
- Total mensual AWS.
- Total mensual OCI.
- Porcentaje de ahorro.
- Cobertura de matching.
- Accesos a artefactos recientes.
Si no existen salidas recientes, los indicadores pueden aparecer en cero.
Inventario
Permite dos formas de seleccionar inventario:
- Subir archivo CSV, XLS o XLSX.
- Elegir un archivo existente en
input/.
Los uploads se guardan en:
input/gui_uploads/
El nombre se normaliza y recibe timestamp, por ejemplo:
input/gui_uploads/20260602_002922_inventario-sbc1.xlsx
El inventario activo queda en st.session_state["selected_inventory_path"]. Si quieres archivarlo despues de usarlo, usa Archivar en input/done.
Catalogos
Muestra estado de catalogos y permite actualizar precios:
| Boton | Resultado |
|---|---|
AWS Fetch |
Descarga el offer AWS EC2 en data/raw/aws/index.json. |
AWS EDA |
Genera data/catalog/aws/aws_ec2_catalog.csv y reporte Markdown en data/eda/aws/. |
OCI Fetch |
Descarga productos OCI y genera data/catalog/oci/oci_price_list.csv. |
Requiere acceso de red para descargar precios.
Ejecucion
Ejecuta los pipelines sobre el inventario activo.
Parametros AWS
- Region AWS, default
us-east-1. - Sistema operativo global opcional.
- Tenancy, default
Shared. - Unidad, default
Hrs. - Modelo LLM, default
llama3.1:8b. Skip LLMpara evitar Ollama.Force LLMpara forzar mapeo por LLM.- Incluir generaciones anteriores.
- Incluir capacidad no usada.
- Prioridad de familia y familia M preferida.
- Max CPU ratio para familia M.
Parametros OCI
- Modelo LLM, default
llama3.1:8b. Skip LLMpara evitar Ollama.Force LLMpara forzar mapeo por LLM.- Compute series, default
E. - Compute generation fija opcional.
- Horas por mes, default
730.
Diferencia importante contra CLI
La GUI llama aws_match.run(...) y oci_match.run(...) con:
move_to_done=False
Esto evita mover el inventario despues de AWS Match y permite ejecutar OCI Match sobre el mismo archivo. En CLI, los scripts pueden mover inventarios exitosos a input/done/ por default.
Dashboard
Lee los ultimos CSVs MATCH-AWS-*.csv y MATCH-OCI-*.csv para mostrar:
- Costo mensual AWS.
- Costo mensual OCI.
- Ahorro porcentual.
- Cobertura de filas AWS con status
MATCH. - Tabla de recomendaciones AWS.
- Resumen BOM OCI.
El dashboard toma los ultimos artefactos por fecha de modificacion. Si necesitas comparar un inventario especifico, genera primero ambos MATCH-* desde la pagina Ejecucion.
Logs y Artefactos
Muestra:
- Ultimas lineas del log diario
logs/log_cloud_conversion_YYYYMMDD.txt. - CSVs AWS Match.
- CSVs OCI Match.
- Reportes AWS EDA.
- Logs descargables.
Los botones Descargar entregan el archivo generado desde disco local.
Servicios internos de la GUI
| Modulo | Responsabilidad |
|---|---|
cloud_conversion_ui/services/inventory_files.py |
Listar, subir y archivar inventarios. |
cloud_conversion_ui/services/pipeline_runner.py |
Ejecutar pasos AWS/OCI y capturar stdout/stderr. |
cloud_conversion_ui/services/dashboard_data.py |
Leer CSVs y calcular metricas comparativas. |
cloud_conversion_ui/services/artifacts.py |
Encontrar artefactos recientes y logs. |
Recomendaciones de uso
- Ejecuta AWS Match y OCI Match sobre el mismo inventario antes de revisar el dashboard.
- Usa
Skip LLMsi no tienes Ollama instalado. - Actualiza catalogos solo cuando necesites precios recientes; AWS raw puede ser grande.
- Descarga los artefactos desde
Logs y Artefactospara compartir resultados. - No expongas Streamlit publicamente sin controles de red o autenticacion externa.