Course materials and demos for Scalable Systems Design.
Hands-on demo demonstrating horizontal scaling with AWS ECS Fargate, Application Load Balancer, and autoscaling. Students learn to:
- Deploy containerized microservices using AWS CDK (Infrastructure as Code)
- Configure Application Load Balancers for traffic distribution
- Implement CPU-based autoscaling policies
- Monitor and observe scaling behavior with CloudWatch
- Perform load testing to trigger autoscaling events
Technologies: AWS ECS Fargate, AWS CDK (Python), Application Load Balancer, CloudWatch, Docker, Ruby on Rails (frontend), Node.js, Crystal
Key Concepts: Horizontal scaling, load balancing, autoscaling, containerization, infrastructure as code, observability
Foundational lab teaching Amazon EC2 fundamentals through hands-on exercises. Students learn to:
- Understand key EC2 components (AMI, instance type, key pair, security group, VPC)
- Create and manage SSH key pairs for secure access
- Launch and configure EC2 instances
- Connect to Linux instances via SSH
- Navigate the EC2 console and view instance details
- Manage instance lifecycle (start, stop, terminate)
- Understand EC2 pricing and Free Tier eligibility
Technologies: AWS EC2, Amazon Linux 2023, SSH, Security Groups
Key Concepts: Virtual servers, SSH authentication, security groups, instance lifecycle, cloud computing basics
Lab exploring load balancing algorithms with HAProxy on AWS EC2. Students learn to:
- Configure HAProxy as a load balancer
- Test and compare 6 different load balancing algorithms (Round Robin, Least Connections, Random, Weighted, Source Hash, URI Hash)
- Implement health checks and automatic failover
- Monitor load balancer statistics and performance
- Understand session persistence and content-based routing
Technologies: HAProxy, Python HTTP Server, AWS EC2, Linux
Key Concepts: Load balancing algorithms, health checks, failover, session persistence, high availability
Lab teaching DNS fundamentals through practical exercises. Students learn to:
- Use
digto query and diagnose DNS records - Explore different DNS record types (A, AAAA, CNAME, MX, NS, TXT, PTR)
- Configure BIND9 as an authoritative DNS server
- Implement DNS-based load balancing with Round Robin
- Compare DNS load balancing vs HAProxy load balancing
- Validate DNS configurations with diagnostic tools
Technologies: BIND9, dig, AWS EC2, Linux
Key Concepts: DNS resolution, DNS record types, authoritative DNS servers, DNS load balancing, Round Robin
Coming soon — content being migrated from AWS Academy.
Lab exploring OAuth 2.0 authentication with Keycloak as an Identity and Access Management solution. Students learn to:
- Deploy Keycloak on EC2 with SSL/TLS encryption
- Configure OAuth 2.0 realms, clients, and users
- Implement JWT token-based authentication
- Build a Flask API with OAuth 2.0 token validation
- Understand authentication vs authorization in distributed systems
- Compare IAM solutions (Keycloak, AWS Cognito, Auth0, Firebase)
- Test security patterns and token lifecycle management
Technologies: Keycloak, Docker, Python Flask, OAuth 2.0, OpenID Connect, JWT, SSL/TLS, AWS EC2
Key Concepts: OAuth 2.0, OpenID Connect, JWT tokens, token introspection, identity federation, multi-tenancy, distributed authentication, API security
Lab teaching Linux networking fundamentals through a Docker-based troubleshooting scenario, with an optional AWS VPC extension. Students learn to:
- Inspect network interfaces, IP addresses, and routing tables
- Diagnose broken network configurations (downed interfaces, missing routes)
- Fix network issues using
ip linkandip routecommands - Use SSH to access remote systems for troubleshooting
- (Optional) Create an AWS VPC and compare Linux networking to cloud equivalents
Technologies: Docker, Docker Compose, Linux networking tools (ip, ping, telnet, curl), SSH, AWS VPC
Key Concepts: Network interfaces, routing tables, default gateways, subnets, DNS resolution, network troubleshooting, VPC networking
08 — Distributed File Systems (coming soon)
09 — Databases (coming soon)
10 — Caching and CDN (coming soon)
11 — Proxies (coming soon)
12 — Solutions Architecture (coming soon)
13 — Distributed Messaging (coming soon)
14 — Serverless (coming soon)
15 — Artificial Intelligence (coming soon)
16 — Containers (coming soon)
- Email: alejandrogarcia@iteso.mx
- Canvas: Check your semester's Canvas page for the course link
- Days: Wednesday 7:00-9:00 AM, Friday 9:00-11:00 AM
- Location: T216
- Frequency: Every semester
Created by Alex Garcia