Update docker-compose.prod.acr.yml with correct ACR name and add deployment next steps guide

- Update ACR name from zuyderlandcmdbacr to zdlas
- Add comprehensive deployment next steps guide
- Include deployment options: App Service, ACI, VM, AKS
This commit is contained in:
2026-01-14 17:56:40 +01:00
parent de7b529ffb
commit df3f6f6899
2 changed files with 325 additions and 1 deletions

View File

@@ -0,0 +1,324 @@
# Deployment Next Steps - Images Gereed! 🚀
Je Docker images zijn succesvol gebouwd en gepusht naar Azure Container Registry! Hier zijn de volgende stappen voor deployment.
## ✅ Wat is al klaar:
- ✅ Azure Container Registry (ACR): `zdlas.azurecr.io`
- ✅ Docker images gebouwd en gepusht:
- `zdlas.azurecr.io/zuyderland-cmdb-gui/backend:latest`
- `zdlas.azurecr.io/zuyderland-cmdb-gui/frontend:latest`
- ✅ Azure DevOps Pipeline: Automatische builds bij push naar `main`
- ✅ Docker Compose configuratie: `docker-compose.prod.acr.yml`
---
## 🎯 Deployment Opties
Je hebt verschillende opties om de applicatie te deployen. Kies de optie die het beste past bij jouw situatie:
### Optie 1: Azure App Service (Aanbevolen voor productie) ⭐
**Voordelen:**
- Managed service (geen server management)
- Automatische scaling
- Ingebouwde SSL/TLS
- Deployment slots (zero-downtime updates)
- Integratie met Azure Key Vault
- Monitoring via Application Insights
**Geschikt voor:** Productie deployment, kleine tot middelgrote teams
**Kosten:** ~€15-25/maand (Basic B1 plan)
**Stappen:**
1. Maak App Service Plan aan
2. Maak 2 Web Apps aan (backend + frontend)
3. Configureer container deployment vanuit ACR
4. Stel environment variabelen in
5. Configureer SSL certificaat
**Zie:** `docs/AZURE-APP-SERVICE-DEPLOYMENT.md` (te maken)
---
### Optie 2: Azure Container Instances (ACI) - Eenvoudig
**Voordelen:**
- Snel op te zetten
- Pay-per-use pricing
- Geen server management
**Geschikt voor:** Test/development, kleine deployments
**Kosten:** ~€30-50/maand (2 containers)
**Stappen:**
1. Maak 2 Container Instances aan
2. Pull images vanuit ACR
3. Configureer environment variabelen
4. Stel networking in
**Zie:** `docs/AZURE-CONTAINER-INSTANCES-DEPLOYMENT.md` (te maken)
---
### Optie 3: VM met Docker Compose (Flexibel)
**Voordelen:**
- Volledige controle
- Eenvoudige deployment met Docker Compose
- Kan lokaal getest worden
**Geschikt voor:** Als je al een VM hebt, of volledige controle wilt
**Kosten:** ~€20-40/maand (Basic VM)
**Stappen:**
1. Maak Azure VM aan (Ubuntu)
2. Installeer Docker en Docker Compose
3. Login naar ACR
4. Gebruik `docker-compose.prod.acr.yml`
5. Configureer Nginx reverse proxy
**Zie:** `docs/VM-DOCKER-COMPOSE-DEPLOYMENT.md` (te maken)
---
### Optie 4: Azure Kubernetes Service (AKS) - Enterprise
**Voordelen:**
- Enterprise-grade scaling
- High availability
- Advanced networking
**Geschikt voor:** Grote deployments, enterprise requirements
**Kosten:** ~€50-100+/maand (minimaal 2 nodes)
**Niet aanbevolen voor:** Kleine teams (20 gebruikers) - overkill
---
## 🔍 Stap 1: Verifieer Images in ACR
**Controleer of de images succesvol zijn gepusht:**
```bash
# Login naar ACR
az acr login --name zdlas
# List repositories
az acr repository list --name zdlas --output table
# List tags voor backend
az acr repository show-tags --name zdlas --repository zuyderland-cmdb-gui/backend --output table
# List tags voor frontend
az acr repository show-tags --name zdlas --repository zuyderland-cmdb-gui/frontend --output table
```
**Verwachte output:**
```
REPOSITORY TAG CREATED
zuyderland-cmdb-gui/backend latest ...
zuyderland-cmdb-gui/backend 88764 ...
zuyderland-cmdb-gui/frontend latest ...
zuyderland-cmdb-gui/frontend 88764 ...
```
---
## 📋 Stap 2: Update Docker Compose voor ACR
**Update `docker-compose.prod.acr.yml` met de juiste ACR naam:**
```yaml
services:
backend:
image: zdlas.azurecr.io/zuyderland-cmdb-gui/backend:latest
frontend:
image: zdlas.azurecr.io/zuyderland-cmdb-gui/frontend:latest
```
**Let op:** De huidige configuratie gebruikt `zuyderlandcmdbacr.azurecr.io` - pas dit aan naar `zdlas.azurecr.io` als dat je ACR naam is.
---
## 🔐 Stap 3: Bereid Environment Variabelen Voor
**Maak een `.env.production` bestand** (niet committen naar Git!):
```bash
# Backend Environment Variables
NODE_ENV=production
PORT=3001
# Jira Configuration
JIRA_BASE_URL=https://jira.zuyderland.nl
JIRA_SCHEMA_ID=your-schema-id
JIRA_PAT=your-personal-access-token
# OF
JIRA_OAUTH_CLIENT_ID=your-client-id
JIRA_OAUTH_CLIENT_SECRET=your-client-secret
# Session
SESSION_SECRET=your-secure-random-secret
# AI (Optioneel)
ANTHROPIC_API_KEY=your-anthropic-key
OPENAI_API_KEY=your-openai-key
# Database (als je PostgreSQL gebruikt)
DATABASE_URL=postgresql://user:password@host:5432/dbname
# Frontend API URL
VITE_API_URL=https://your-backend-url.com/api
```
**Gebruik Azure Key Vault voor secrets in productie!**
---
## 🚀 Stap 4: Kies Deployment Methode
### Quick Start: VM met Docker Compose
**Als je snel wilt starten:**
1. **Maak Azure VM aan:**
```bash
az vm create \
--resource-group rg-cmdb-gui \
--name vm-cmdb-gui \
--image Ubuntu2204 \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys
```
2. **SSH naar de VM:**
```bash
ssh azureuser@<vm-public-ip>
```
3. **Installeer Docker en Docker Compose:**
```bash
# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
```
4. **Login naar ACR:**
```bash
az acr login --name zdlas
# OF
docker login zdlas.azurecr.io -u <acr-username> -p <acr-password>
```
5. **Clone repository en deploy:**
```bash
git clone <your-repo-url>
cd zuyderland-cmdb-gui
# Update docker-compose.prod.acr.yml met juiste ACR naam
# Maak .env.production aan
docker-compose -f docker-compose.prod.acr.yml up -d
```
---
## 📝 Stap 5: Configureer Nginx Reverse Proxy
**Update `nginx/nginx.conf`** voor productie:
- SSL/TLS certificaat configuratie
- Domain name
- Backend API proxy
- Frontend static files
**Zie:** `nginx/nginx.conf` voor configuratie template.
---
## 🔒 Stap 6: Security Checklist
- [ ] SSL/TLS certificaat geconfigureerd
- [ ] Environment variabelen in Key Vault (niet in code)
- [ ] Firewall rules geconfigureerd
- [ ] CORS correct geconfigureerd
- [ ] Rate limiting ingeschakeld
- [ ] Health checks geconfigureerd
- [ ] Monitoring/alerting ingesteld
---
## 📊 Stap 7: Monitoring Setup
**Azure Application Insights:**
- Application performance monitoring
- Error tracking
- Usage analytics
**Azure Monitor:**
- Container health
- Resource usage
- Alerts
---
## 🎯 Aanbevolen Volgorde
1. **Verifieer images in ACR** (Stap 1)
2. **Kies deployment optie** (Optie 1, 2, of 3)
3. **Bereid environment variabelen voor** (Stap 3)
4. **Deploy naar test environment**
5. **Test functionaliteit**
6. **Configureer SSL/TLS**
7. **Setup monitoring**
8. **Deploy naar productie**
---
## 📚 Gerelateerde Documentatie
- **Azure App Service Deployment**: `docs/AZURE-APP-SERVICE-DEPLOYMENT.md` (te maken)
- **Azure Container Instances**: `docs/AZURE-CONTAINER-INSTANCES-DEPLOYMENT.md` (te maken)
- **VM Docker Compose**: `docs/VM-DOCKER-COMPOSE-DEPLOYMENT.md` (te maken)
- **Production Deployment**: `docs/PRODUCTION-DEPLOYMENT.md`
- **Azure Deployment Summary**: `docs/AZURE-DEPLOYMENT-SUMMARY.md`
---
## ❓ Vragen?
**Veelgestelde vragen:**
**Q: Welke deployment optie moet ik kiezen?**
A: Voor 20 gebruikers: **Azure App Service** (Optie 1) is het meest geschikt - managed service, eenvoudig, voldoende resources.
**Q: Moet ik PostgreSQL gebruiken of kan ik SQLite houden?**
A: SQLite is prima voor 20 gebruikers. PostgreSQL is beter voor groei of als je connection pooling nodig hebt.
**Q: Hoe configureer ik SSL?**
A: Azure App Service heeft ingebouwde SSL. Voor VM: gebruik Let's Encrypt met certbot.
**Q: Hoe update ik de applicatie?**
A: Push naar `main` branch → Pipeline bouwt nieuwe images → Pull nieuwe images in deployment → Restart containers.
---
## 🎉 Success!
Je hebt nu:
- ✅ Docker images in ACR
- ✅ Automatische CI/CD pipeline
- ✅ Deployment configuratie klaar
**Volgende stap:** Kies je deployment optie en volg de stappen!