#!/bin/bash # Demo 3: Batch Workflow - Multi-Cloud Orchestration # Time: ~2 minutes # Shows: Multi-provider orchestration, dependency management, real-time progress set -e echo "╔════════════════════════════════════════════════════════╗" echo "║ Demo 3: Batch Workflow - Multi-Cloud Orchestration ║" echo "║ Time: ~2 minutes ║" echo "╚════════════════════════════════════════════════════════╝" echo "" # Step 1: Show command echo "Step 1️⃣ Batch workflow submission" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "$ provisioning batch submit workflows/web_app.k" echo "" sleep 2 # Step 2: Show batch definition echo "Step 2️⃣ Batch Workflow Definition (KCL)" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "batch_workflow: BatchWorkflow = {" echo " name = \"web_app_deployment\"" echo " parallel_limit = 5" echo "" echo " operations = [" echo " {id = \"upcloud_db\", provider = \"upcloud\"}," echo " {id = \"aws_compute\", provider = \"aws\"," echo " dependencies = [\"upcloud_db\"]}," echo " {id = \"local_cache\", provider = \"local\"," echo " dependencies = [\"aws_compute\"]}" echo " ]" echo "}" echo "" sleep 2 # Step 3: Parsing and validation echo "Step 3️⃣ Parsing & Validation" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "✓ KCL syntax validated" echo "✓ Schema compliance checked" echo "✓ Dependency graph validated (no cycles)" echo "✓ Provider credentials verified" echo " • UpCloud: ✓ authenticated" echo " • AWS: ✓ authenticated (role: provisioning-deployer)" echo " • Local: ✓ accessible" echo "✓ All validations passed" echo "" sleep 2 # Step 4: Orchestration plan echo "Step 4️⃣ Dependency Resolution & Orchestration Plan" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "Execution Graph:" echo "" echo " upcloud_db (2 min)" echo " ↓" echo " aws_compute (3 min)" echo " ↓" echo " local_cache (1 min)" echo "" echo "Sequential Dependency Chain: ✓ Verified" echo "Total estimated time: ~6 minutes (sequential)" echo "" sleep 2 # Step 5: Real-time progress echo "Step 5️⃣ Real-Time Workflow Progress" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" # Simulate progress for i in {1..5}; do echo "[$(date +%H:%M:%S)] Workflow ID: batch-20241114-001234" echo "Status: RUNNING" echo "" echo "Task Progress:" if [ $i -ge 1 ]; then echo " ✓ upcloud_db [████████████████████] 100% (2min 00sec)" else echo " ⧖ upcloud_db [████░░░░░░░░░░░░░░░░] 20%" fi if [ $i -ge 2 ]; then echo " ✓ aws_compute [████████████████████] 100% (3min 00sec)" elif [ $i -gt 1 ]; then echo " ⧖ aws_compute [████████░░░░░░░░░░░░] 40%" else echo " ⏳ aws_compute [░░░░░░░░░░░░░░░░░░░░] 0% (waiting)" fi if [ $i -ge 3 ]; then echo " ✓ local_cache [████████████████████] 100% (1min 00sec)" elif [ $i -gt 2 ]; then echo " ⧖ local_cache [██░░░░░░░░░░░░░░░░░░] 10%" else echo " ⏳ local_cache [░░░░░░░░░░░░░░░░░░░░] 0% (waiting)" fi echo "" echo "Overall Progress: $(($i * 20))%" echo "Elapsed: ~$(($i))min Remaining: ~$((6 - $i))min" echo "" echo "─────────────────────────────────────────────────────" echo "" sleep 1 done # Final status echo "Step 6️⃣ Final Status" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "╔════════════════════════════════════════════════════╗" echo "║ Batch Workflow: SUCCESS ✓ │" echo "├────────────────────────────────────────────────────┤" echo "│ Workflow ID: batch-20241114-001234 │" echo "│ Total Duration: 6 minutes 2 seconds │" echo "│ │" echo "│ Tasks Completed: │" echo "│ ✓ upcloud_db (2 servers created) │" echo "│ ✓ aws_compute (1 auto-scaling group) │" echo "│ ✓ local_cache (1 cache instance) │" echo "│ │" echo "│ Resources Created: │" echo "│ • 2 servers @ UpCloud (Frankfurt) │" echo "│ • 4 instances @ AWS EC2 (us-east-1) │" echo "│ • 1 cache @ Local (Redis) │" echo "│ │" echo "│ Network Configuration: │" echo "│ • VPN tunnel: UpCloud ↔ AWS ✓ │" echo "│ • DNS: Configured ✓ │" echo "│ • Load balancer: Active ✓ │" echo "│ │" echo "│ Cost Estimation: │" echo "│ • Monthly: €450 (UpCloud) + $200 (AWS) │" echo "│ • Hourly: €19.50/hr │" echo "│ │" echo "│ Audit Trail: Complete ✓ │" echo "│ Logged all actions for compliance │" echo "│ │" echo "╚════════════════════════════════════════════════════╝" echo "" # Step 7: Access details echo "Step 7️⃣ Access Your Deployment" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "Your web application is now running!" echo "" echo "Access Points:" echo " • Web API: https://api.demo.example.com" echo " • Admin Dashboard: https://admin.demo.example.com" echo " • Database: db-01.upcloud.example.com:5432" echo " • Cache: cache-01.local.example.com:6379" echo "" echo "Management:" echo " $ provisioning batch status batch-20241114-001234" echo " $ provisioning batch monitor batch-20241114-001234 --logs" echo " $ provisioning audit query --workflow batch-20241114-001234" echo "" echo "To rollback in case of issues:" echo " $ provisioning batch rollback batch-20241114-001234" echo "" echo "╔════════════════════════════════════════════════════════╗" echo "║ Key Insights: ║" echo "║ • Single workflow, multiple clouds ║" echo "║ • Automatic dependency sequencing ║" echo "║ • Type-safe configuration (KCL) ║" echo "║ • Real-time monitoring & audit trail ║" echo "║ • Easy rollback if needed ║" echo "╚════════════════════════════════════════════════════════╝"