Getting Started Guide
DevOps Studio › Docs › Getting Started
Welcome to DevOps Studio! This guide will help you get up and running quickly.
Quick Start (5 minutes)
Step 1: Clone the Repository
git clone <repository-url>
cd devops-studioStep 2: Bootstrap Your Environment
./tools/bootstrap.shThis script will:
- Make all scripts executable
- Validate your system requirements
- Configure Git (if needed)
Step 3: Run Setup
./tools/setup.shThis interactive script will:
- Validate required tools are installed
- Check AWS configuration
- Help you choose your first lab
- Set up the lab environment
Step 4: Deploy Your First Lab
cd labs/01-terraform-foundations
make applyThat's it! Your infrastructure is being deployed.
Detailed Setup
Prerequisites
Before starting, ensure you have:
- AWS Account with billing enabled
- AWS CLI configured with credentials
- Required Tools installed (see Prerequisites Guide)
System Requirements
- Operating System: macOS, Linux, or Windows WSL2
- Memory: 4GB+ recommended
- Disk Space: 5GB+ free
- Network: Reliable internet connection
AWS Configuration
1. Create AWS Account
If you don't have an AWS account:
- Go to aws.amazon.com
- Click "Create an AWS Account"
- Follow the registration process
- Enable billing (required for most services)
2. Create IAM User
For security best practices, create a dedicated IAM user:
- Go to AWS Console → IAM → Users
- Click "Add users"
- Create user with programmatic access
- Attach policies:
PowerUserAccess(for learning)- Or create custom policy with required permissions (see Prerequisites)
3. Configure AWS CLI
aws configureEnter:
- AWS Access Key ID
- AWS Secret Access Key
- Default region (e.g.,
us-west-2) - Default output format (e.g.,
json)
Verify configuration:
aws sts get-caller-identityTool Installation
macOS
# Homebrew
brew install terraform awscli kubernetes-cli helm docker
# Or use the install script
./tools/install-tools.sh # If availableLinux
# Terraform
wget https://releases.hashicorp.com/terraform/1.9.8/terraform_1.9.8_linux_amd64.zip
unzip terraform_1.9.8_linux_amd64.zip
sudo mv terraform /usr/local/bin/
# AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectlWindows (WSL2)
Use the Linux installation steps above within WSL2.
Verification
Run the validation script:
./tools/validate.shThis checks:
- ✅ All required tools are installed
- ✅ AWS CLI is configured
- ✅ System resources are adequate
- ⚠️ Optional tools (warnings only)
Choosing Your First Lab
For Beginners
Start with Lab 01 - Terraform Foundations
This lab teaches:
- Infrastructure as Code basics
- AWS VPC networking
- Auto Scaling Groups
- RDS databases
- CloudWatch monitoring
Time: 45-60 minutes
Cost: ~$50-80/month (can be reduced)
For Experienced Users
Choose based on your interests:
- Kubernetes: Lab 02
- CI/CD: Lab 03
- Monitoring: Lab 04
- Security: Lab 05
- GitOps: Lab 06
- Serverless: Lab 07
- Platform Engineering: Lab 08
Lab Workflow
Standard Workflow
Navigate to Lab
bashcd labs/01-terraform-foundationsRead the README
bashcat README.mdSet Up Backend (if needed)
bash./scripts/setup-backend.shConfigure Variables
bashcp terraform.tfvars.example terraform.tfvars # Edit terraform.tfvars with your preferencesInitialize Terraform
bashmake init # or terraform initPlan Changes
bashmake plan # or terraform planApply Changes
bashmake apply # or terraform applyTest Infrastructure
bashmake test # or ./scripts/validate.shView Outputs
bashmake output # or terraform outputClean Up (when done)
bashmake destroy # or terraform destroy
Using Make Commands
Each lab includes a Makefile with helpful commands:
make help # Show all available commands
make init # Initialize Terraform
make plan # Create execution plan
make apply # Apply changes
make destroy # Destroy infrastructure
make test # Run validation tests
make output # Show outputs
make validate # Validate Terraform config
make format # Format Terraform code
make cost # Estimate costs (if infracost installed)
make security # Security scan (if tfsec installed)Environment-Specific Deployments
Labs support multiple environments (dev, staging, prod):
# Deploy to development
make apply ENV=dev
# Deploy to staging
make apply ENV=staging
# Deploy to production
make apply ENV=prodEach environment has its own configuration in environments/ directory.
Cost Management
Understanding Costs
- Lab 01: ~$50-80/month
- Lab 02: ~$120-180/month
- All Labs: ~$200-300/month
Cost Optimization
Use Development Environment
bashmake apply ENV=dev # Smaller, cheaper resourcesScale Down When Not in Use
bashterraform apply -var="desired_capacity=0"Use Single NAT Gateway (dev only)
hclsingle_nat_gateway = trueClean Up Regularly
bash./tools/cleanup.sh # Emergency cleanupMonitor Costs
bash./tools/cost-estimate.sh
See Cost Management Guide for detailed strategies.
Troubleshooting
Common Issues
AWS CLI Not Configured
# Error: Unable to locate credentials
# Solution:
aws configure
aws sts get-caller-identityInsufficient Permissions
# Error: User is not authorized
# Solution: Attach required IAM policies
# See Prerequisites guide for required permissionsTerraform Version Mismatch
# Error: Unsupported Terraform version
# Solution: Update Terraform
terraform version
# Install latest from: https://terraform.io/downloadsBackend Setup Fails
# Error: BucketAlreadyExists
# Solution: S3 bucket names are globally unique
# Edit PROJECT_NAME in setup-backend.sh or use existing bucketFor more troubleshooting help, see Troubleshooting Guide.
Next Steps
- Complete Lab 01 - Build your foundation
- Explore Other Labs - Based on your interests
- Read Documentation - Deep dive into concepts
- Experiment - Modify configurations and learn
- Share - Contribute improvements back
Getting Help
- Documentation: Check lab-specific README files
- Troubleshooting: See Troubleshooting Guide
- Issues: Create a GitHub issue
- Discussions: Join GitHub Discussions
Learning Paths
Choose a learning path based on your career goals:
- Cloud-Native DevOps: Labs 01 → 02 → 03 → 04 → 06
- DevSecOps: Labs 01 → 03 → 05 → 04 → 06
- Platform Engineering: Labs 01 → 02 → 06 → 08 → 04
- Cloud Architect: Labs 01 → 07 → 02 → 04 → 08
See Learning Paths Guide for detailed paths.
Best Practices
Always Plan Before Apply
bashterraform plan # Review changes terraform apply # Apply only after reviewUse Version Control
bashgit add . git commit -m "Deploy Lab 01 infrastructure"Tag Resources
- All resources are automatically tagged
- Customize tags in
terraform.tfvars
Monitor Costs
- Set up AWS Budget alerts
- Review costs regularly
- Clean up unused resources
Document Changes
- Update README if you modify labs
- Document custom configurations
- Share learnings with community
Success Checklist
Before moving to the next lab, ensure you:
- ✅ Infrastructure deployed successfully
- ✅ All validation tests pass
- ✅ Application is accessible
- ✅ Monitoring is working
- ✅ Costs are within budget
- ✅ You understand the architecture
- ✅ You've experimented with changes
- ✅ Resources are cleaned up (if not keeping)
Ready to start? Run ./tools/setup.sh and begin your DevOps journey!