This repository contains a containerized Golang HTTP microservice that demonstrates modern cloud-native deployment practices, including:
- Golang-based backend service
- Docker containerization
- Kubernetes deployment using Helm
- Multi-cluster Kubernetes setup
- Canary deployment strategy
The project is designed for learning and showcasing DevOps and Kubernetes concepts using a simple but realistic microservice.
The Go service exposes the following HTTP endpoints:
-
GET /
Returns a simple message indicating the application is running. -
GET /health
Returns JSON health status with a timestamp. -
GET /details
Returns the hostname and IP address of the running container or Kubernetes pod.
.
βββ go-app/ # Helm chart for Kubernetes deployment
β βββ templates/
β β βββ deployment.yaml # Stable deployment
β β βββ deployment-canary.yaml # Canary deployment
β β βββ service.yaml # Kubernetes Service
β β βββ _helpers.tpl
β β βββ NOTES.txt
β βββ Chart.yaml
β βββ values.yaml
β βββ .helmignore
β
βββ kubernetes/ # Raw Kubernetes manifests (optional)
β βββ deployment.yml
β βββ service.yml
β
βββ details/
β βββ details.go # Hostname & IP utilities
β
βββ main.go # Go application entry point
βββ Dockerfile # Multi-stage Docker build
βββ docker-compose.yml
βββ go.mod
βββ go.sum
βββ README.md
# Containerized-Microservices