---\ntheme: ../themes/rust-vibe\ntitle: 'Infrastructure Provisioning Platform - Workshop'\ninfo: |\n ## Infrastructure Provisioning Platform\n Complete workshop (1-2 hours, 40 slides)\n\n Comprehensive deep dive with hands-on examples\ndownload: true\ndrawings:\n persist: false\ntransition: slide-left\nmdc: true\nlayout: center\n---\n\n
\n\n\n\n---\n\nsrc: ../sections/01-intro.md\n---\n\n---\n\nsrc: ../sections/02-solution.md\n---\n\n---\n\nsrc: ../sections/03-features.md\n---\n\n---\n\nsrc: ../sections/04-security.md\n---\n\n---\n\nsrc: ../sections/05-usecase.md\n---\n\n---\n\nsrc: ../sections/06-demos.md\n---\n\n---\n\nsrc: ../sections/07-conclusion.md\n---\n\n---\n\nsrc: ../sections/08-appendix.md\n---\n\n## Exercise 1: Configuration Management\n\n**Task**: Set up a multi-environment configuration system\n\n**Steps**:\n\n1. Create workspace for dev/staging/prod\n2. Define environment-specific configs\n3. Deploy identical infrastructure with different settings\n4. Verify configuration hierarchy\n\n**Time**: 20 minutes\n**Objective**: Understand configuration-driven approach\n\n---\n\n## Exercise 2: Server Provisioning\n\n**Task**: Provision a web server with database\n\n**Steps**:\n\n1. Create server configuration using KCL\n2. Validate schema before deployment\n3. Create server with dry-run check\n4. Deploy taskservs (Kubernetes + PostgreSQL)\n\n**Time**: 30 minutes\n**Objective**: Hands-on experience with server lifecycle\n\n---\n\n## Exercise 3: Batch Workflow Setup\n\n**Task**: Set up multi-cloud deployment workflow\n\n**Steps**:\n\n1. Define KCL batch workflow\n2. Configure UpCloud servers\n3. Configure AWS services\n4. Set up dependency ordering\n5. Submit and monitor batch\n\n**Time**: 30 minutes\n**Objective**: Understand workflow orchestration\n\n---\n\n## Exercise 4: Security Configuration\n\n**Task**: Implement enterprise security controls\n\n**Steps**:\n\n1. Configure JWT authentication\n2. Set up Cedar authorization policies\n3. Enable MFA (TOTP + WebAuthn)\n4. Configure KMS encryption\n5. Query audit logs\n\n**Time**: 30 minutes\n**Objective**: Secure infrastructure as code\n\n---\n\n## Advanced Topic: CLI Customization\n\nHow to extend the CLI with custom commands:\n\n```bash\n# Create custom command shortcut\nprovisioning config set-shortcut mybuild "batch submit workflows/myapp.k"\n\n# Create custom workflow\nprovisioning workflow create --name "full-stack" \n --steps "server-create,taskserv-k8s,taskserv-db"\n\n# List custom configurations\nprovisioning config list-shortcuts\n```\n\n**Benefit**: Organization-specific automation\n\n---\n\n## Advanced Topic: Plugin Development\n\nExtend functionality with Nushell plugins:\n\n```nushell\n# Extend orchestrator operations\nexport def my-workflow [] {\n batch submit workflows/custom.k \n | workflow monitor \n | workflow audit\n}\n\n# Use in provisioning CLI\nprovisioning custom my-workflow --check\n```\n\n**Benefit**: 10-50x performance improvement\n\n---\n\n## Advanced Topic: KCL Validation\n\nType-safe infrastructure definitions:\n\n```yaml\nschema AppConfig:\n name: str\n environment: "dev" | "staging" | "prod"\n replicas: int\n\n check:\n len(name) > 0, "Name required"\n replicas > 0, "At least 1 replica"\n replicas <= 100, "Max 100 replicas"\n```\n\n**Benefit**: Compile-time error detection\n\n---\n\n## Advanced Topic: CI/CD Integration\n\nIntegrate with your pipeline:\n\n```yaml\ndeploy-infrastructure:\n stage: deploy\n script:\n - provisioning workspace switch $CI_ENVIRONMENT_NAME\n - provisioning validate config\n - provisioning batch submit workflows/$CI_COMMIT_REF_SLUG.k\n - provisioning workflow monitor $CI_COMMIT_SHA\n artifacts:\n reports:\n junit: test-infrastructure.xml\n```\n\n---\n\n## Advanced Topic: Migration Strategies\n\nMigrating from Terraform/Ansible:\n\n**Phase 1**: Run Provisioning alongside existing tools\n**Phase 2**: Gradually migrate workloads\n**Phase 3**: Decommission old tools\n\n**Timeline**: 2-6 months depending on complexity\n**Risk**: Low (gradual, non-destructive)\n\n---\n\n## Troubleshooting Common Issues\n\n**Problem**: Configuration not loading\n\n```bash\nprovisioning validate config --verbose\nprovisioning env # Show loaded config\nprovisioning allenv # Show all config + env vars\n```\n\n**Problem**: Batch workflow stuck\n\n```bash\nprovisioning batch status \nprovisioning batch monitor --logs\nprovisioning workflow cleanup \n```\n\n**Problem**: Permission denied errors\n\n```bash\nprovisioning audit query --user $USER\nprovisioning help security # View security setup\n```\n\n---\n\n## Performance Tuning\n\nOptimize for your environment:\n\n```toml\n# config/provisioning.toml\n[orchestrator]\nmax_parallel_tasks = 10 # Adjust for your infra\ntask_timeout = 3600 # Increase for slow networks\ncache_enabled = true # Enable caching layer\n\n[api]\nconnection_pool = 20 # HTTP connection pooling\nrequest_timeout = 30 # Request timeout\n\n[plugins]\nenabled = true # Use fast native plugins\nfallback_http = true # Fallback to HTTP if unavailable\n```\n\n---\n\n## Monitoring & Observability\n\nMonitor your deployments:\n\n```bash\n# Real-time orchestrator health\nprovisioning workflow orchestrator --health\n\n# Audit complete workflow\nprovisioning audit query --workflow-id $ID\n\n# Export metrics\nprovisioning workflow stats --format prometheus\n\n# View logs\nprovisioning workflow logs $ID --tail 100 --follow\n```\n\n**Integration**: Prometheus, ELK Stack, Splunk, CloudWatch\n\n---\n\n## Best Practices Summary\n\n✅ **Always validate before deploying**\n\n```bash\nprovisioning validate config && provisioning --check\n```\n\n✅ **Use dry-run mode for testing**\n\n```bash\nprovisioning batch submit workflows/app.k --check\n```\n\n✅ **Audit everything for compliance**\n\n```bash\nprovisioning audit query --from 24h\n```\n\n✅ **Implement break-glass procedures**\n\n```bash\nprovisioning break-glass request "Emergency access"\n```\n\n✅ **Version control your configurations**\n\n```plaintext\nGit: KCL files + config/toml + workflow files\n```\n\n---\n\n## Real-World Case Study: Migration from Terraform\n\n**Company**: MidSize SaaS (50 employees)\n**Previous**: Terraform + custom scripts\n**Challenge**: 10,000+ line configurations, slow deployments (20 min)\n\n**Solution**: Migrated to Provisioning Platform\n**Results**:\n\n- Deployment time: 20 min → 3 min (87% reduction)\n- Configuration lines: 10,000 → 2,500 (75% reduction)\n- Errors caught at compile time: 0% → 92%\n- Team productivity: +45%\n\n**Timeline**: 3 months, zero downtime\n\n---\n\n## Real-World Case Study: Multi-Cloud Setup\n\n**Company**: Enterprise fintech\n**Previous**: Separate Terraform for each cloud\n**Challenge**: Inconsistent deployments across clouds\n\n**Solution**: Single Provisioning Platform\n**Results**:\n\n- Unified configuration system (100% consistency)\n- UpCloud + AWS + Local in single workflow\n- Failover automation: manual → automatic\n- RTO improved: 2 hours → 15 minutes\n\n---\n\n## Q&A and Open Discussion\n\nTopics to explore:\n\n- Your specific infrastructure challenges\n- Integration with existing tools\n- Custom workflow requirements\n- Security and compliance needs\n- Performance optimization\n\n---\n\n## Resources for Continued Learning\n\n**Documentation**\n\n- Main guide: \n- API reference: `provisioning help`\n- Advanced topics: docs/architecture/\n- Examples: provisioning/examples/\n\n**Community**\n\n- GitHub Issues: Report bugs and feature requests\n- Discussions: Ask questions and share ideas\n- Examples Repository: Community-contributed workflows\n\n**Training**\n\n- Interactive guides: `provisioning guide list`\n- Online tutorials: provisioning.io/learn\n- Community workshops: provisioning.io/events\n\n---\n\n## Summary: Key Concepts\n\n**Architecture**\n\n- Rust orchestrator for performance\n- Nushell workflows for flexibility\n- KCL configuration for type safety\n\n**Features**\n\n- Hierarchical configuration system\n- Workspace switching for multi-environment\n- Test environments for CI/CD\n- CLI with 80+ shortcuts\n- Interactive guides and documentation\n\n**Security**\n\n- JWT authentication\n- Cedar authorization\n- MFA support\n- Dynamic secrets\n- GDPR audit logging\n\n---\n\n## Final Thoughts\n\nProvisioning Platform represents the evolution of infrastructure automation:\n\n**From**: Choosing between Terraform (inflexible) and Ansible (slow)\n**To**: Type-safe + Fast + Enterprise-grade security\n\n**The hybrid approach** (Rust + Nushell) eliminates forced tradeoffs and enables:\n\n- Development velocity (fast iteration)\n- Production reliability (type safety)\n- Operational excellence (enterprise security)\n\n---\n\n## Next Steps\n\n1. **Install and Explore**\n\n ```bash\n provisioning-installer --headless --mode solo --yes\n ```\n\n2. **Complete the Interactive Guide**\n\n ```bash\n provisioning guide from-scratch\n ```\n\n3. **Try a Small Project**\n - Server creation\n - Taskserv deployment\n - Batch workflow\n\n4. **Join the Community**\n - GitHub: \n - Discussions: Share your experiences\n\n---\n\n## Thank You & Q&A\n\n
\n\n**Stay in Touch**\n\n- Email: \n- Slack: #provisioning-platform\n- GitHub: \n\n**Ready to Transform Your Infrastructure Automation?**