Skip to content

Learn path

Not sure if this is the right path for you? Read Start here first. It routes you based on your background and what you want to do.

This path is for students, new grads and anyone who wants to understand how production systems actually work, without paying for cloud while they learn.

The job market expects “experience with distributed systems” but very few entry-level roles will pay you to get it. blissful-infra exists so you can build that experience on a laptop, in your own time, without a credit card.

By the time you finish this path you’ll have run the same stack a 50-person engineering team would run. You’ll understand why each piece exists, what it costs to operate at scale and what the managed equivalent does for you. That mental model is the part that transfers to any job.

By the end of this path you will have:

  • A running full-stack service: Spring Boot API, React frontend, Postgres, Kafka, Redis cache
  • Production-shaped observability: Prometheus metrics, Grafana dashboards, Loki logs, Tempo distributed tracing (click-through correlation between all three)
  • A real CI/CD pipeline: Jenkins, multi-stage build, deploy on green
  • Production observability: metrics, logs, traces and distributed tracing correlation
  • A real CI/CD pipeline with GitOps and progressive delivery
  • Kubernetes deploy (planned): your service on a real local cluster with kind (coming in a later module)

You will understand what each piece does, why it exists and what tradeoffs the managed equivalent makes for you.

The course is being written. Modules below link to existing reference material where it covers the topic. Treat the order as the recommended reading path even before every module is fully written.

What blissful-infra init actually creates. The tenant / project / service hierarchy, a walkthrough of every container in the generated compose files, why each is there and how the pieces talk.

Getting started · The tenant model · Templates overview

How the generated backend is structured. REST endpoints, Kafka producer and consumer, Postgres repository layer, JPA entities, request lifecycle from HTTP in to event out.

Spring Boot template · React + Vite template

Course module: coming soon.

Prometheus scrapes metrics. Loki collects logs. Tempo traces requests across services. Grafana visualizes all three in one UI, with click-through correlation. Why each is a separate tool, and what to use which one for.

Course module: coming soon.

The generated Jenkinsfile, what each stage does, how the pipeline tests and deploys. How blissful-infra wires Jenkins to your local Docker registry so deploys actually run.

jenkins command

Course module: coming soon.

Why there are three levels rather than two, and how the model enforces domain boundaries structurally: a Postgres schema per service, a Docker network per project, a port block per tenant. What a distributed monolith looks like and how the constraints make it harder to build one by accident.

The tenant model

Take the same service and run it on a real local Kubernetes cluster. kind, provisioned by Terraform. ArgoCD reconciling the cluster against a git repo. Why GitOps means a rollback is a revert, and what ArgoCD’s selfHeal does to an imperative kubectl change.

The golden path · cluster · deploy

Argo Rollouts. Why a rolling update is not a canary, what a traffic weight actually does at the Service level, and how a pause turns a deploy into a decision point. Canary analysis, and what you need in place before it can be automated.

canary command · rollback command

Course module: coming soon.

Module 8: Identity and AWS-shaped services (not currently available)

Section titled “Module 8: Identity and AWS-shaped services (not currently available)”

Keycloak for realms, clients and JWTs; LocalStack for S3, Lambda and SQS. These plugins were removed in 2.0 along with the client model, so there is no working local setup to teach against right now.

The background reading still stands on its own: A Developer’s Guide to IAM and Learn AWS for free with LocalStack. Both were written against the pre-2.0 CLI, so treat their commands as historical.

Many of the technologies in this course have excellent managed equivalents. The course teaches the open-source originals on purpose. Once you understand Kafka you understand what SQS trades away for simplicity; once you understand Postgres you understand what RDS does for you; once you understand ArgoCD you understand what GitHub Actions or CircleCI actually orchestrate.

That mental model is the part that transfers. You can replace any component with a managed version in a day. Understanding why it exists and what it’s doing. That takes hands-on time.

More on the philosophy