# 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 ## Quick Links - [Repository](https://gitea.kyndemo.live/validate/online-boutique) - [Humanitec Console](https://app.humanitec.io/orgs/kyn-cjot/apps/online-boutique) - [Grafana Dashboard](https://grafana.kyndemo.live/d/spring-boot-dashboard?var-app=online-boutique) ## 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 - [Set up local development environment](local-development.md) - [Learn about deployment process](deployment.md) - [Configure monitoring and alerts](monitoring.md) - [Understand the architecture](architecture.md)