3.6 KiB
Cloud Conversion
Cloud Conversion es un proyecto Python para apoyar evaluaciones de migracion cloud. Descarga y transforma catalogos de precios de AWS y OCI, compara inventarios de servidores contra shapes cloud, genera archivos MATCH-* con recomendaciones y costos, y ofrece una interfaz grafica local en Streamlit para operar el pipeline sin depender de comandos manuales.
La ruta recomendada para arquitectos es la interfaz grafica. Los scripts CLI siguen disponibles para automatizacion, troubleshooting o ejecuciones controladas.
Quick Start
- Crear y activar ambiente virtual:
python3.12 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- Configurar variables opcionales:
cp .env.example .env
- Abrir la interfaz grafica:
streamlit run cloud_conversion_ui/Home.py
- En la GUI:
- Selecciona o sube un inventario en
Inventario. - Actualiza catalogos en
Catalogossi necesitas precios recientes. - Ejecuta
AWS MatchyOCI MatchenEjecucion. - Revisa costos y cobertura en
Dashboard. - Descarga CSVs, EDA y logs en
Logs y Artefactos.
Flujo Operativo
Interfaz grafica
La aplicacion Streamlit vive en cloud_conversion_ui/ y usa cloud_conversion_ui/Home.py como entrada. Es el camino recomendado para uso diario porque agrupa inventarios, catalogos, ejecucion, resultados y descargas en una sola consola local.
Al ejecutar matching desde la GUI, los inventarios no se archivan automaticamente. Internamente la GUI llama los pipelines con move_to_done=False; si quieres archivar un inventario, hazlo desde la pagina Inventario.
Scripts CLI
Los scripts estan en scripts/. El pipeline AWS tipico es:
python scripts/aws_fetch_offer.py
python scripts/aws_eda.py
python scripts/aws_match.py --inventory input/inventario.xlsx --skip-llm
El pipeline OCI tipico es:
python scripts/oci_fetch_offer.py
python scripts/oci_match.py --inventory input/inventario.xlsx --skip-llm
Documentacion
- Despliegue Local/VM
- Guia de la Interfaz Grafica
- Scripts y Comandos
- Diccionario de Datos
- Estructura de Directorios
Comandos Utiles
| Comando | Uso |
|---|---|
streamlit run cloud_conversion_ui/Home.py |
Inicia la GUI local. |
python scripts/aws_match.py --help |
Muestra parametros de AWS Match. |
python scripts/oci_match.py --help |
Muestra parametros de OCI Match. |
python scripts/cloud-chat.py --ask "Cuanto cuesta m7a.xlarge en virginia?" |
Consulta el catalogo AWS desde CLI. |
python scripts/whatsapp_chatbot.py |
Inicia webhook Flask para WhatsApp Cloud Chat. |
python -m pytest -q |
Ejecuta la suite de pruebas. |
Datos y Seguridad
.envcontiene secretos locales y no debe subirse..env.examplees la plantilla segura para compartir.- Los datos actuales se conservan para uso interno, pero antes de publicar el repo se debe revisar sensibilidad de inventarios, clientes, precios y logs.
data/puede ser grande; en este workspace pesa aproximadamente 8 GB.logs/,.venv/, caches y archivos temporales estan ignorados por Git.
Validacion antes de Compartir
Ejecuta:
python -m pytest -q
python scripts/aws_match.py --help
python scripts/oci_match.py --help
python scripts/aws_eda.py --help
python scripts/cloud-chat.py --help
python scripts/whatsapp_send.py --help
streamlit run cloud_conversion_ui/Home.py
Para validar Streamlit en una VM, confirma que el navegador abre la pagina inicial y que el sidebar muestra Inventario, Catalogos, Ejecucion, Dashboard y Logs y Artefactos.