--- theme: seriph background: https://source.unsplash.com/1920x1080/?rust,technology class: text-center highlighter: prism lineNumbers: true info: | ## Cloud Native Provisioning Nushell + KCL + Rust Ecosystem Rust Meetup 2025 drawings: enabled: true persist: false transition: slide-left title: Cloud Native Provisioning - Rust Ecosystem mdc: true --- # Cloud Native Provisioning ## Nushell + KCL + Rust Ecosystem Infrastructure as Code con tipos, AI, y herramientas Rust
Press Space for next page
--- transition: fade-out layout: default --- # ¿Quién soy?

Jesús Pérez Lorenzo

Profile
--- layout: default --- # El Problema

🔧 Herramientas Actuales

🚨 Problemas Reales

💡 Necesitamos aplicar principios de Rust a infraestructura
--- layout: quote --- # "Si Rust nos enseñó algo, es que los tipos nos salvan de errores costosos" Apliquemos esto a infraestructura --- layout: default --- # Nuestra Filosofía
🛡️

Type Safety

Errores capturados en compile time, no en production

🧩

Composability

Componentes reutilizables que se combinan naturalmente

🤖

AI-First

Lenguaje natural como interfaz principal


Infrastructure as Types

No más YAML/JSON - Configuración con schemas y validación

--- layout: default --- # Stack Tecnológico

🐚 Nushell

⚙️ KCL

🦀 Herramientas Rust

🤖 MCP Integration

--- layout: default --- # Arquitectura del Sistema ```rust mermaid {theme: 'dark', scale: 0.8} graph TB User[👤 Usuario] --> AI[🤖 MCP Server] User --> CLI[💻 Nushell CLI] AI --> Core[🧠 Core System] CLI --> Core Core --> KCL[📋 KCL Schemas] Core --> Providers[☁️ Providers] Providers --> AWS[🌐 AWS] Providers --> UpCloud[☁️ UpCloud] Providers --> Local[🏠 Local] Core --> TaskServs[⚙️ Task Services] TaskServs --> K8s[🚢 Kubernetes] TaskServs --> Youki[🦀 youki] TaskServs --> KMS[🔐 Cosmian KMS] Core --> Secrets[🔑 SOPS/Age] style Core fill:#ff6b6b style AI fill:#4ecdc4 style KCL fill:#45b7d1 style Youki fill:#f39c12 style KMS fill:#9b59b6 ``` --- layout: center class: text-center --- # 🎬 Demo Time Vamos a ver esto en acción --- layout: default --- # Demo 1: Provisioning Básico ```rust nu {1|2-3|4-5|6-7} # Crear nueva infraestructura provisioning generate infra --new rust-meetup-demo # Ver la configuración generada provisioning show settings --infra rust-meetup-demo --out json # Crear servidores (modo check primero) provisioning server create --infra rust-meetup-demo --check # Crear servidores reales provisioning server create --infra rust-meetup-demo ```
Ventaja: Tipos estructurados, mejor debugging, composición natural
--- layout: default --- # Demo 2: MCP + AI Integration

Claude Desktop

Usuario: "Crea 3 servidores AWS con 4 CPU cada uno para un cluster Kubernetes de desarrollo"


Claude: "Voy a crear esa infraestructura para ti..."


✅ Servidores creados: k8s-master-01, k8s-worker-01, k8s-worker-02

Comando ejecutado

```rust nu # Generado automáticamente por MCP provisioning generate server \ --template aws-k8s-cluster \ --nodes 3 \ --cpu 4 \ --purpose development provisioning server create \ --infra rust-meetup-demo \ --wait ```
🎯 Game Changer: Infraestructura desde lenguaje natural
--- layout: default --- # Demo 3: Cosmian KMS vs SOPS

🔒 SOPS/Age (Traditional)

```rust bash # Setup manual age-keygen -o key.txt export SOPS_AGE_KEY_FILE=key.txt # Encriptar archivo sops -e -i secrets.yaml # Editar (complejo) sops secrets.yaml ```

🦀 Cosmian KMS (Rust-powered)

```rust nu # Configuración en KCL secret_provider = { provider = "kms" kms_config = { server_url = "https://kms.local" auth_method = "certificate" } } # Uso natural provisioning sops config.yaml provisioning taskserv update secrets --rotate ```
**Ventajas Cosmian KMS:** - 🏢 Enterprise-ready con audit logs - 🔄 Rotación automática de claves - 🛡️ Zero-knowledge encryption - ⚡ Performance nativa Rust --- layout: default --- # Demo 4: Cross-Compilation ```rust bash {1|3-9|11-16|18-20} #!/bin/bash # Auto-detección de arquitectura detect_arch() { case $(uname -m) in x86_64) echo "x86_64-unknown-linux-gnu" ;; aarch64|arm64) echo "aarch64-unknown-linux-gnu" ;; *) echo "unsupported" ;; esac } # Build para múltiples targets cross build --release --target x86_64-unknown-linux-gnu cross build --release --target aarch64-unknown-linux-gnu # Packaging inteligente tar czf provisioning-x86_64.tar.gz target/x86_64-unknown-linux-gnu/release/ tar czf provisioning-aarch64.tar.gz target/aarch64-unknown-linux-gnu/release/ # Deploy automático según arquitectura del servidor provisioning server deploy --auto-arch ``` **¿Por qué Cross-Compilation?** - 💰 ARM instances 20% más baratas - 🔌 Edge computing y IoT - ⚡ Performance nativa vs containers --- layout: default --- # Comparativa Real
Característica
Nuestro Sistema
Terraform
Ansible
Type Safety
✅ Full
⚠️ Partial
❌ No
AI Integration
✅ Native MCP
❌ No
❌ No
Multi-arch
✅ Built-in
⚠️ Manual
⚠️ Manual
Performance
✅ Rust-optimized
⚠️ Good
⚠️ Python
Debug Experience
✅ Excellent
⚠️ OK
❌ Poor
Learning Curve
⚠️ Steep
⚠️ Moderate
✅ Easy
💡 Trade-off: Curva de aprendizaje más alta, pero mejor mantainability a largo plazo
--- layout: default --- # Casos de Uso Reales

✅ Ideal Para:

⚠️ Considerar Antes:

--- layout: default --- # Roadmap y Futuro

🎯 Corto Plazo (3-6 meses)

🚀 Medio Plazo (6-12 meses)

🌟 Largo Plazo (1+ años)

--- layout: default --- # ¿Tiene Sentido Este Enfoque?

✅ Pros

⚠️ Contras

🎯 Respuesta: Depende de tu contexto

Para equipos innovadores con tiempo para invertir: Absolutamente sí

--- layout: default --- # Contribuir al Proyecto

🛠️ Áreas de Contribución

🏁 Getting Started

```rust bash # Clonar repo git clone cd provisioning # Setup dev environment ./setup/dev-install.sh # Ejecutar tests nu test_config.nu # Contribuir # 1. Fork & branch # 2. Implement & test # 3. PR with good description ```

¡La comunidad Rust es perfecta para este tipo de herramientas!

--- layout: center class: text-center --- # 🙏 Gracias ## ¿Preguntas?

🔗 Links

📧 Contacto

🤝 Comunidad

--- layout: end --- # Bonus: Live Q&A ¿Qué te gustaría ver en el proyecto? ¿Algún caso de uso específico? ¿Dudas sobre implementación?

🦀 ❤️ ☁️

Rust + Cloud = Mejor DevOps