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 Architectures. 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 OpenTofu
- 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 OpenTofu
cd infra/terraform tofu init -
Review and apply infrastructure
tofu plan tofu apply
-
Build and Deploy Services
The GitHub Actions pipeline will automatically build Docker images and deploy to Azure Container Apps on push to main.
OpenTofu 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.
