Hey everyone, I recently got a freelance DevOps project and wanted to get some opinions/suggestions from experienced people before I finalize the architecture.
Project details:
- 15 independent microservices
- Each service has its own GitHub repository
- Backend built with ASP.NET Core (.NET 8)
- PostgreSQL database
- Infrastructure will be hosted on DigitalOcean
- Requirement is zero-downtime deployments
Current plan:
- GitHub Actions for CI/CD
- Docker for containerization
- DigitalOcean Container Registry
- DigitalOcean Kubernetes (DOKS)
- Helm for deployments
- NGINX Ingress Controller
- cert-manager + Let’s Encrypt
- Managed PostgreSQL from DigitalOcean
- Rolling updates with readiness/liveness probes
Planned flow:
Code Push → GitHub Actions → Build/Test → Docker Build → Push Image → Helm Deploy to Kubernetes
I’m avoiding monorepo architecture since every service already has its own repository.
I’d appreciate suggestions on:
- Best deployment strategy for zero downtime
- Helm vs ArgoCD for a project of this size
- Recommended Kubernetes structure for 15 services
- Common mistakes to avoid with .NET microservices on Kubernetes
- Database migration strategy during deployments
- Any DigitalOcean-specific limitations or recommendations
Would love to hear how you’d approach this in production.