Video Thumbnail for Lesson
10.1: Capstone Overview

Capstone Overview

The capstone project for the course uses all of the topics covered throughout the course to build out a DevOps automation system based on GitHub Actions.

Repository: https://github.com/sidpalas/capstone (this is also a submodule of the course repo)

Application architecture & repository layout

The project is a minimal three-tier web application that consists of:

  • React front end (services/react/client-react)
  • Two API implementations
    • Node.js (services/node/api-node)
    • Go (services/go/api-golang)
  • Python load generator (services/python/load-generator-python)
  • PostgreSQL database plus SQL migrations (services/other/migrator)

All services use the shared Task command runner and Devbox for reproducible local environments. Each service exposes a consistent interface, task install, task run, and task test, so our workflows can invoke the same commands regardless of language. The monorepo also includes Kubernetes manifests under deploy/ so we can exercise a GitOps deployment flow.

To explore the system locally:

  1. Launch Devbox in each service (devbox shell) to gain the correct toolchains.
  2. Start PostgreSQL from services/other/migrator with task run-postgres, then apply migrations via task postgres-init.
  3. Run the Node and Go APIs (task install && task run in their respective directories) and confirm the request counter increments.
  4. Execute the Python load generator and React client to observe traffic hitting the specified API.

Workflow Plan

We will implement 6 workflows covering testing, building, deploying and more.

Diagram showing the planned workflows