Going Green is an example .NET microservices solution showcasing a well-architected microservice architecture with Azure Container Apps deployment. The idea is inspired by Neal Ford’s Going Green architecture kata (https://nealford.com/katas/kata?id=GoingGreen), this project demonstrates best practices with .NET 9 and .NET Aspire, design of Microservices, Infrastructure as a Code and Cloud Arhitectures. Still a work in progress.
- About
- Architecture
- Features
- Technologies
- Prerequisites
- Getting Started
- Infrastructure
- Contributing
- License
Going Green demonstrates how to build, deploy, and manage containerized microservices on Azure Container Apps, following Microsoft’s Well-Architected Framework.
Below is the high-level architecture diagram for the solution:
- Containerized Microservices: Developed in C#/.NET 9
- Serverless Containers: Deployed on Azure Container Apps
- Infrastructure as Code: Managed with Terraform
- CI/CD Pipelines: Automated via GitHub Actions
- Monitoring & Logging: Integrated with Azure Monitor and Log Analytics
-
Clone the repository
git clone https://github.com/makigjuro/going-green.git cd going-green
-
Authenticate to Azure
az login
-
Initialize Terraform
cd infra/terraform terraform init
-
Review and apply infrastructure
terraform plan terraform apply
-
Build and Deploy Services
The GitHub Actions pipeline will automatically build Docker images and deploy to Azure Container Apps on push to main.
Terraform code is located in the infra/terraform folder. It defines:
-
Azure Resource Group
-
Container Apps Environment
-
Log Analytics Workspace
-
Managed Identities and Networking
-
Azure KeyVault
-
Postgresql Databases Server
-
Azure Service Bus
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.