- Go 1.22+
- Docker
- Azure CLI
- Terraform
- kubectl
- An Azure subscription
-
Deploy Azure infrastructure cd deploy/scripts ./setup-azure.sh
-
Deploy the application ./deploy.sh
-
Apply Terraform configuration cd deploy/terraform terraform init terraform apply
-
Deploy to Kubernetes cd deploy/kubernetes kubectl apply -f .
- Application Insights: Telemetry and monitoring
- Azure Key Vault: Secure secret management
- Azure Kubernetes Service: Scalable container orchestration
- Azure SQL Database: Persistent data storage
- Azure Cache for Redis: Caching layer
- Azure Service Bus: Messaging and event-driven communication
Configuration is managed through environment variables:
Variable | Description | Default |
---|---|---|
PORT | Server port | 8080 |
ENVIRONMENT | Deployment environment | development |
LOG_LEVEL | Logging level | info |
DATABASE_URL | SQL Server connection string | |
APPLICATION_INSIGHTS_KEY | App Insights instrumentation key | |
KEY_VAULT_NAME | Azure Key Vault name | |
MAX_CONNECTIONS | Maximum DB connections | 100 |
SHUTDOWN_TIMEOUT | Graceful shutdown timeout (seconds) | 10 |
blanho