Who this is for: Anyone new to DevOps who wants to understand what this platform does, why every piece exists, and how they work together.
Without a platform, every developer team must:
- Learn Kubernetes, Terraform, AWS, networking, IAM, TLS certificates...
- Wait days/weeks for infrastructure tickets
- Set up CI/CD pipelines from scratch
- Configure monitoring themselves
- Do all this again for every new service
This platform eliminates that. A developer fills out a form in a web portal and gets a fully production-ready service running in minutes — with CI/CD, monitoring, security, and a path to production already built in.
┌─────────────────────────────────────────────────────────────────┐
│ DEVELOPER EXPERIENCE │
│ │
│ Backstage Portal ──── "I want a new service" │
│ GitLab ──── "Here is my code" │
└────────────────────────────┬────────────────────────────────────┘
│
┌────────────────────────────▼────────────────────────────────────┐
│ HUB CLUSTER (peeks-hub) │
│ Platform Control Plane on EKS │
│ │
│ ┌──────────┐ ┌─────┐ ┌─────────┐ ┌──────────┐ ┌────────┐ │
│ │ Argo CD │ │ kro │ │ ACK │ │ Keycloak │ │ Kargo │ │
│ │(deploy) │ │(compose)│(AWS res)│ │ (SSO) │ │(promote│ │
│ └────┬─────┘ └──┬──┘ └────┬────┘ └──────────┘ └────────┘ │
└───────┼───────────┼──────────┼─────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────── ┐
│ SPOKE CLUSTERS │
│ ┌─────────────────────┐ ┌─────────────────────┐ │
│ │ peeks-spoke-dev │ │ peeks-spoke-prod │ │
│ │ Developer apps │────▶│ Production apps │ │
│ │ (canary enabled) │ │ (canary enabled) │ │
│ └─────────────────────┘ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ AWS INFRASTRUCTURE (Terraform managed) │
│ EKS Auto Mode · VPC · IAM · S3 · RDS · ECR · Secrets Manager │
└─────────────────────────────────────────────────────────────────┘
platform-on-eks-workshop/
│
├── platform/infra/terraform/ ← Infrastructure as Code (IaC)
│ ├── cluster/ ← Creates EKS clusters
│ ├── common/ ← Installs platform addons
│ └── identity-center/ ← AWS SSO setup
│
├── gitops/ ← GitOps configurations
│ ├── addons/ ← Addon definitions (ArgoCD, Backstage, etc.)
│ ├── apps/ ← Application deployments
│ ├── fleet/ ← Multi-cluster fleet management
│ └── platform/ ← Platform-level resources
│
├── platform/backstage/templates/ ← Self-service templates for developers
│
├── applications/ ← Sample applications (Java, Rust, Go, etc.)
│ ├── java/
│ ├── rust/
│ ├── node/
│ ├── python/
│ ├── golang/
│ ├── dotnet/
│ └── next-js/
│
└── docs/ ← Architecture docs and guides
| Module | What It Does | Doc |
|---|---|---|
| Infrastructure (Terraform) | Creates EKS clusters and AWS resources | docs/modules/01-infrastructure.md |
| GitOps Engine (ArgoCD) | Deploys everything from Git | docs/modules/02-gitops-argocd.md |
| EKS Capabilities | Managed controllers (ArgoCD, kro, ACK) | docs/modules/03-eks-capabilities.md |
| kro Resource Graphs | Platform blueprints for developers | docs/modules/04-kro-blueprints.md |
| Developer Portal (Backstage) | Self-service UI for developers | docs/modules/05-backstage-portal.md |
| Identity & Access (Keycloak) | Single Sign-On for all tools | docs/modules/06-identity-keycloak.md |
| Progressive Delivery | Safe deployments with canary/blue-green | docs/modules/07-progressive-delivery.md |
| Observability | Metrics, logs, DORA dashboards | docs/modules/08-observability.md |
| Sample Applications | Reference apps in 7 languages | docs/modules/09-sample-applications.md |
| ML/AI Workloads | Ray, GPU, Trainium support | docs/modules/10-ml-ai-workloads.md |
1. Open Backstage portal
2. Pick a Software Template (e.g. "Deploy Go microservice")
3. Fill in: name, team, language, do you need a database?
4. Click Submit
5. Backstage automatically:
- Creates a GitLab repo with scaffolded code
- Sets up CI/CD pipeline
- Provisions required AWS resources
- Deploys to dev cluster
- Registers everything in the service catalog
6. Developer gets a URL to their running service
No Kubernetes YAML. No Terraform. No AWS console.
| Layer | Technology | Why |
|---|---|---|
| Container Orchestration | EKS (Kubernetes) | Industry standard, AWS managed |
| IaC | Terraform | Reproducible infrastructure |
| GitOps | ArgoCD (EKS Capability) | Git = source of truth |
| Composition | kro (EKS Capability) | Package complex patterns simply |
| AWS Resources | ACK (EKS Capability) | AWS resources in same Git workflow |
| Developer Portal | Backstage | Self-service for developers |
| Source Control | GitLab | Code hosting + CI/CD |
| Identity | Keycloak | SSO across all tools |
| Progressive Delivery | Argo Rollouts + Kargo | Safe deployments |
| Observability | Grafana + DevLake | Metrics + DORA |
| ML/AI | Ray on EKS | GPU/Trainium model serving |
- Region: us-west-2
- Clusters:
peeks-hub,peeks-spoke-dev,peeks-spoke-prod - Resource prefix:
peeks - EKS version: 1.34
- Node management: EKS Auto Mode (no manual node provisioning)