Development Operations
What are we trying to accomplish?
The goal of these two lectures, DevOps and Deploying your Application, is to equip students with the knowledge and practical skills necessary to take a Full-Stack Application from their local machine to a live URL and keep it healthy afterward. Students will first learn what DevOps is, how it grew out of Waterfall and Agile and the rise of cloud tooling, and which practices it covers: version control, Continuous Integration (CI), Continuous Deployment (CD), Infrastructure as Code, monitoring, and DevSecOps. They will learn how the Software Development Life Cycle (SDLC) and the DevOps life cycle work hand in hand, and why this layer matters more, not less, when Claude Code writes much of the code. They will learn a practical Git branching strategy built on a protected main branch, a dev integration branch, and short-lived feature branches. They will then deploy their stack by hosting the React + Vite frontend on Vercel through GitHub, deploying Supabase Edge Functions and their secrets, and registering a Stripe webhook against the live Edge Function URL. Students will also learn which environment variables belong in Vercel, in Supabase, and in GitHub Secrets, and how to ship follow-on changes, schema changes, and rollbacks safely. By the end of these lectures, students should be capable of independently deploying a full-stack application, testing it end to end in production, and managing changes to it through a safe branching workflow.
Lectures and Assignments
Lectures
Assignments
TLO's (Terminal Learning Objectives)
- Explain what DevOps is, why it emerged, and how CI/CD and version control fit into it
- Apply a
main/dev/ feature branch workflow to manage changes to an application - Deploy a React + Vite frontend to Vercel and a Supabase backend, with all secrets configured in the correct places
- Verify a deployed application end to end and ship follow-on changes safely
ELO's (Enabling Learning Objectives)
- Define DevOps and explain the problem it solves compared to siloed development and operations teams
- Describe how Waterfall, Agile, and cloud infrastructure led to the DevOps movement
- List the major pillars of DevOps (version control, CI, CD, Infrastructure as Code, monitoring, DevSecOps)
- Explain Continuous Integration, including automated tests, linting, and build checks
- Distinguish Continuous Delivery from Continuous Deployment
- Compare the Software Development Life Cycle with the DevOps life cycle and explain how they work together
- Explain what Git and GitHub contribute to a DevOps workflow (history, rollback, collaboration, branching, automation triggers)
- Describe the purpose and rules of the
main,dev, and feature branches, and apply branch naming conventions - Explain what Vercel does when it deploys from GitHub, including production and preview deployments
- Run a pre-deployment checklist: pull the latest
main, confirm a cleannpm run build, and keep.envfiles out of Git - Place environment variables correctly (
VITE_variables in Vercel, secrets in Supabase Edge Functions, CI secrets in GitHub Secrets) - Deploy Supabase Edge Functions with the CLI, set their secrets, and register a Stripe webhook at the live function URL
- Test the full production flow (Vercel, Supabase, Stripe, and webhook) and verify the result in the database
- Explain why Edge Function and schema changes need a manual deploy while the frontend deploys automatically
- Monitor a live application through the Vercel, Supabase, and Stripe dashboards and roll back with Vercel when needed