Files
online-boutique/docs/index.md
Scaffolder 7e119cad41 initial commit
Change-Id: I9c68c43e939d2c1a3b95a68b71ecc5ba861a4df5
2026-03-05 13:37:56 +00:00

4.9 KiB

online-boutique

Overview

online-boutique is a production-ready Java microservice built using the Kyndryl Platform Engineering Golden Path.

!!! info "Service Information" - Description: Java microservice via Golden Path - Environment: development - Technology: Spring Boot 3.2, Java 17 - Orchestration: Humanitec - Observability: Prometheus + Grafana

Features

Production-Ready Configuration

  • Health checks (liveness, readiness, startup)
  • Graceful shutdown
  • Resource limits and requests
  • Security contexts

Observability

  • Prometheus metrics integration
  • Pre-configured Grafana dashboards
  • Structured logging
  • Request tracing

CI/CD

  • Automated builds via GitHub Actions
  • Azure Container Registry integration
  • Humanitec deployment automation
  • GitOps fallback with ArgoCD

Developer Experience

  • Local development support
  • Hot reload with Spring DevTools
  • Comprehensive tests
  • API documentation

Architecture

This service follows the golden path architecture:

┌─────────────────────────────────────────┐
│           Developer Experience           │
│  (Backstage Template → Gitea Repo)      │
└─────────────────────────────────────────┘
                   │
                   │ git push
                   ▼
┌─────────────────────────────────────────┐
│          GitHub Actions CI/CD            │
│  1. Build with Maven                     │
│  2. Run tests                            │
│  3. Build Docker image                   │
│  4. Push to ACR                          │
│  5. Deploy via Humanitec                 │
└─────────────────────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│        Humanitec Orchestrator            │
│  - Interprets score.yaml                 │
│  - Provisions resources                  │
│  - Deploys to AKS                        │
└─────────────────────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│          Azure AKS Cluster               │
│  - Pods with app containers              │
│  - Prometheus scraping metrics           │
│  - Service mesh (optional)               │
└─────────────────────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│       Grafana + Prometheus               │
│  - Real-time metrics                     │
│  - Dashboards                            │
│  - Alerting                              │
└─────────────────────────────────────────┘

API Endpoints

Application Endpoints

Endpoint Method Description
/ GET Welcome message
/api/status GET Service health status

Actuator Endpoints

Endpoint Method Description
/actuator/health GET Overall health
/actuator/health/liveness GET Liveness probe
/actuator/health/readiness GET Readiness probe
/actuator/metrics GET Available metrics
/actuator/prometheus GET Prometheus metrics
/actuator/info GET Application info

Technology Stack

  • Language: Java 17
  • Framework: Spring Boot 3.2.0
  • Build Tool: Maven 3.9
  • Metrics: Micrometer + Prometheus
  • Container: Docker (Alpine-based)
  • Orchestration: Humanitec (Score)
  • CI/CD: GitHub Actions
  • Registry: Azure Container Registry
  • Kubernetes: Azure AKS
  • Monitoring: Prometheus + Grafana

Next Steps