provisioning-outreach/presentations/rust-laspalmas-250926/_slideds.md

15 KiB

theme background class highlighter lineNumbers info drawings transition title mdc
seriph https://source.unsplash.com/1920x1080/?rust,technology text-center prism true ## Cloud Native Provisioning Nushell + KCL + Rust Ecosystem Rust Meetup 2025
enabled persist
true false
slide-left Cloud Native Provisioning - Rust Ecosystem 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

  • 🦀 Senior Rust Developer
  • ☁️ Cloud Native Architect
  • 🏗️ Infrastructure as Code enthusiast
  • 🚀 Open Source contributor
Profile

layout: default

El Problema

🔧 Herramientas Actuales

  • Terraform: HCL sin tipos fuertes
  • Ansible: YAML frágil
  • CloudFormation: JSON/YAML verboso
  • Pulumi: Mejor, pero limitado

🚨 Problemas Reales

  • Errores en runtime, no en compile time
  • Debugging complejo
  • Reutilización limitada
  • Sin integración con AI
  • Configuración como texto plano
💡 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

  • Shell estructurado con tipos
  • Pipelines de datos, no texto
  • JSON/YAML nativo
  • Better error handling
<h2 class="mt-6">⚙️ KCL</h2>
<ul>
  <li>Configuration Language con schemas</li>
  <li>Validación en compile time</li>
  <li>Composición y herencia</li>
  <li>IDE support completo</li>
</ul>

🦀 Herramientas Rust

  • youki: Container runtime OCI
  • Cosmian KMS: Key management
  • Polkadot/Substrate: Blockchain infra
<h2 class="mt-6">🤖 MCP Integration</h2>
<ul>
  <li>Model Context Protocol</li>
  <li>Claude Desktop integration</li>
  <li>Natural language operations</li>
  <li>AI-assisted troubleshooting</li>
</ul>

layout: default

Arquitectura del Sistema

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

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

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)

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)

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

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:

  • 🚀 Startups tech-forward
    Equipos que valoran innovación
  • 🔬 Proyectos greenfield
    Sin legacy infrastructure
  • 🌐 Multi-cloud desde día 1
    Evitar vendor lock-in
  • 🤖 DevOps automatizado
    AI-assisted operations

⚠️ Considerar Antes:

  • 🏢 Empresas tradicionales
    Resistencia al cambio
  • 🔧 Legacy systems
    Migración compleja
  • 👥 Equipos grandes
    Training overhead
  • 📅 Deadlines ajustados
    Tiempo de adopción

layout: default

Roadmap y Futuro

🎯 Corto Plazo (3-6 meses)

  • Más providers (GCP, Azure)
  • Task services adicionales
  • Improved MCP tools
  • Documentation & tutorials

🚀 Medio Plazo (6-12 meses)

  • Web UI para gestión
  • Terraform import/export
  • Enterprise features
  • CI/CD integrations

🌟 Largo Plazo (1+ años)

  • SaaS offering
  • Marketplace de components
  • Advanced AI features
  • Industry partnerships

layout: default

¿Tiene Sentido Este Enfoque?

Pros

  • Type Safety: Errores capturados temprano
  • Better DX: Mejor debugging y IDE support
  • AI Integration: Natural language ops
  • Performance: Rust-optimized tools
  • Composability: Reutilización real
  • Future-proof: Multi-arch, cloud-agnostic

⚠️ Contras

  • Learning Curve: Nushell + KCL nuevos
  • Ecosystem: Más pequeño que Terraform
  • Enterprise Adoption: Tiempo para madurar
  • Team Training: Inversión inicial
  • Breaking Changes: Pre-v1.0 instability

🎯 Respuesta: Depende de tu contexto

Para equipos innovadores con tiempo para invertir: Absolutamente sí


layout: default

Contribuir al Proyecto

🛠️ Áreas de Contribución

  • Providers: GCP, Azure, más clouds
  • Task Services: Databases, monitoring
  • MCP Tools: Más AI capabilities
  • Documentation: Tutorials, examples
  • Testing: Multi-arch, edge cases

🏁 Getting Started

bash
# Clonar repo
git clone <repository-url>
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

  • Discord: #provisioning
  • Issues: GitHub Issues
  • Discussions: GitHub Discussions

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