Skip to content

Commit 58e6a6a

Browse files
committed
docs: restructure walkthrough as multi-page presentation
Transform walkthrough into presentation-style format: - Each page is a presentation slide - Navigate with arrow keys or sidebar - Can be used as speaker notes during presentations - Also works as self-guided tutorial Structure (10 pages + appendix): 1. The Problem - Current state, why redisctl exists 2. Enter redisctl - First CLI tool, key benefits 3. Installation & Setup - Get started, profiles 4. Raw API Layer - Direct REST access 5. Human-Friendly Layer - Better UX, type-safe 6. Workflows Layer - Multi-step orchestration 7. Advanced Features - JMESPath, support packages, streaming 8. Library Architecture - Platform vision, reusable components 9. Next Steps - Try it, get involved, roadmap Appendix - rladmin comparison Benefits: - Presentation-friendly navigation (page by page) - Each page is focused and concise - Natural flow from problem to solution - Works for both live presentations and self-study - Links to deep-dive documentation Duration: 20-25 minutes as presentation, 45-60 minutes hands-on
1 parent 8a1b274 commit 58e6a6a

File tree

13 files changed

+1171
-179
lines changed

13 files changed

+1171
-179
lines changed

docs/src/SUMMARY.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,17 @@
1414

1515
# Complete Walkthrough
1616

17-
- [Overview & Presentation](./walkthrough.md)
17+
- [Introduction](./walkthrough/README.md)
18+
- [1. The Problem](./walkthrough/01-problem.md)
19+
- [2. Enter redisctl](./walkthrough/02-solution.md)
20+
- [3. Installation & Setup](./walkthrough/03-setup.md)
21+
- [4. Raw API Layer](./walkthrough/04-raw-api.md)
22+
- [5. Human-Friendly Layer](./walkthrough/05-human-friendly.md)
23+
- [6. Workflows Layer](./walkthrough/06-workflows.md)
24+
- [7. Advanced Features](./walkthrough/07-advanced.md)
25+
- [8. Library Architecture](./walkthrough/08-libraries.md)
26+
- [9. Next Steps](./walkthrough/09-next-steps.md)
27+
- [Appendix: rladmin vs redisctl](./walkthrough/rladmin-comparison.md)
1828

1929
# Cookbook
2030

docs/src/walkthrough.md

Lines changed: 0 additions & 178 deletions
This file was deleted.

docs/src/walkthrough/01-problem.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# 1. The Problem
2+
3+
**Before redisctl: How did we manage Redis deployments?**
4+
5+
## Redis Cloud
6+
7+
### What Exists
8+
- 🖱️ **Web UI** - Point and click (not scriptable)
9+
- 🏗️ **Terraform Provider** - Good for IaC, not ad-hoc operations
10+
- 🌐 **REST API** - Documented but no tooling around it
11+
12+
### The Gap
13+
❌ No CLI for day-to-day operations
14+
❌ No way to script common tasks
15+
❌ Must use UI or write custom bash scripts
16+
17+
## Redis Enterprise
18+
19+
### What Exists
20+
- 🖥️ **rladmin** - Powerful but limited
21+
- Must SSH to cluster nodes
22+
- Text output (hard to parse)
23+
- Not cross-platform (Linux only on nodes)
24+
- Single cluster at a time
25+
- 🌐 **REST API** - Large (~100+ endpoints), poorly documented
26+
- Manual JSON construction
27+
- No official tooling
28+
29+
### The Gap
30+
❌ No remote management CLI
31+
❌ No automation-friendly tools
32+
❌ No multi-cluster support
33+
34+
## The Reality
35+
36+
**What everyone actually does:**
37+
38+
```bash
39+
# The "best practice" before redisctl
40+
curl -X POST https://api.redislabs.com/v1/subscriptions \
41+
-H "x-api-key: $KEY" \
42+
-H "x-api-secret-key: $SECRET" \
43+
-H "Content-Type: application/json" \
44+
-d '{"name":"prod","cloudProviders":[...]}'
45+
46+
# Then poll for completion
47+
while true; do
48+
STATUS=$(curl -s https://api.redislabs.com/v1/tasks/$TASK_ID | jq -r '.status')
49+
if [ "$STATUS" = "completed" ]; then break; fi
50+
echo "Still waiting..."
51+
sleep 2
52+
done
53+
54+
# Then create database...
55+
# Poll again...
56+
# Repeat for every operation...
57+
```
58+
59+
## Problems with This Approach
60+
61+
1.**No type safety** - Typos cause runtime failures
62+
2.**Manual JSON** - Error-prone, hard to maintain
63+
3.**Polling loops** - Fragile, need manual error handling
64+
4.**Credential exposure** - API keys in shell history
65+
5.**Not portable** - Requires bash, curl, jq
66+
6.**No progress feedback** - Silent failures
67+
7.**Everyone reinvents** - Same scripts written over and over
68+
69+
## Who This Affects
70+
71+
- **Support Engineers** → Manual UI clicking, can't script diagnostics
72+
- **DevOps Teams** → Can't automate without Terraform
73+
- **Customers** → Build fragile bash scripts or don't automate
74+
- **Everyone** → Wastes time on operations that should be simple
75+
76+
## The Core Problem
77+
78+
**Redis had ZERO command-line tools for Cloud or Enterprise management**
79+
80+
---
81+
82+
**Next →** [2. Enter redisctl](./02-solution.md) - The first CLI tool
83+
84+
**Demo:** Run `examples/presentation/01-before-redisctl.sh` to see this in action
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# 2. Enter redisctl
2+
3+
**The FIRST command-line tool for Redis Cloud and Enterprise**
4+
5+
## What is redisctl?
6+
7+
A unified CLI that eliminates fragile bash scripts with:
8+
9+
✅ Type-safe API clients
10+
✅ Automatic async operation handling
11+
✅ Support package automation
12+
✅ Profile management with secure keyring
13+
✅ Structured output (JSON, YAML, Table)
14+
✅ Library-first architecture
15+
16+
## Before vs After
17+
18+
### Before: 50 Lines of Bash
19+
20+
```bash
21+
curl + jq + while loops + manual polling + text parsing
22+
```
23+
24+
### After: One Command
25+
26+
```bash
27+
redisctl cloud database create \
28+
--subscription-id 12345 \
29+
--data '{"name": "mydb", "memoryLimitInGb": 1}' \
30+
--wait
31+
```
32+
33+
## Key Benefits
34+
35+
### For Support Engineers
36+
- ✅ Remote cluster management (no SSH)
37+
- ✅ Support package automation (10 min → 30 sec)
38+
- ✅ Scriptable diagnostics
39+
40+
### For DevOps Teams
41+
- ✅ CI/CD integration (JSON output)
42+
- ✅ Multi-cluster management (profiles)
43+
- ✅ Automation-friendly
44+
45+
### For Developers
46+
- ✅ Reusable libraries
47+
- ✅ Type-safe API clients
48+
- ✅ Build custom tools
49+
50+
## Metrics
51+
52+
- **50+ API handlers** (21 Cloud + 29 Enterprise)
53+
- **85%+ test coverage** (production quality)
54+
- **Cross-platform** (macOS, Linux, Windows)
55+
- **v0.6.5** released and actively maintained
56+
57+
## The Impact
58+
59+
**One command replaces 50 lines of fragile bash**
60+
61+
```bash
62+
# Everything just works
63+
redisctl cloud subscription list
64+
redisctl enterprise database list -o table
65+
redisctl enterprise support-package cluster --upload
66+
```
67+
68+
---
69+
70+
**← Previous:** [1. The Problem](./01-problem.md)
71+
**Next →** [3. Installation & Setup](./03-setup.md)
72+
73+
**Demo:** Run `examples/presentation/02-after-redisctl.sh` to see the difference

0 commit comments

Comments
 (0)