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 |
|
slide-left | Cloud Native Provisioning - Rust Ecosystem | true |
Cloud Native Provisioning
Nushell + KCL + Rust Ecosystem
Infrastructure as Code con tipos, AI, y herramientas Rust
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
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
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
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
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
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
- GitHub: /provisioning
- Docs: /docs
- Demo: /talks
📧 Contacto
- Email: jesus@example.com
- Twitter: @jesusperez
- LinkedIn: /in/jesusperez
🤝 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