Subir archivos a "/"
This commit is contained in:
104
README.md
Normal file
104
README.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# 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
|
||||
|
||||
1. Crear y activar ambiente virtual:
|
||||
|
||||
```bash
|
||||
python3.12 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
2. Configurar variables opcionales:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
3. Abrir la interfaz grafica:
|
||||
|
||||
```bash
|
||||
streamlit run cloud_conversion_ui/Home.py
|
||||
```
|
||||
|
||||
4. En la GUI:
|
||||
|
||||
- Selecciona o sube un inventario en `Inventario`.
|
||||
- Actualiza catalogos en `Catalogos` si necesitas precios recientes.
|
||||
- Ejecuta `AWS Match` y `OCI Match` en `Ejecucion`.
|
||||
- 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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
python scripts/oci_fetch_offer.py
|
||||
python scripts/oci_match.py --inventory input/inventario.xlsx --skip-llm
|
||||
```
|
||||
|
||||
## Documentacion
|
||||
|
||||
- [Despliegue Local/VM](docs/DEPLOYMENT.md)
|
||||
- [Guia de la Interfaz Grafica](docs/UI_GUIDE.md)
|
||||
- [Scripts y Comandos](docs/SCRIPTS.md)
|
||||
- [Diccionario de Datos](docs/DATA_DICTIONARY.md)
|
||||
- [Estructura de Directorios](docs/DIRECTORY_STRUCTURE.md)
|
||||
|
||||
## 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
|
||||
|
||||
- `.env` contiene secretos locales y no debe subirse.
|
||||
- `.env.example` es 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:
|
||||
|
||||
```bash
|
||||
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`.
|
||||
|
||||
Reference in New Issue
Block a user