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:
@@ -21,7 +21,7 @@ services:
|
|||||||
start_period: 40s
|
start_period: 40s
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
image: zuyderlandcmdbacr.azurecr.io/zuyderland-cmdb-gui/frontend:latest
|
image: zdlas.azurecr.io/zuyderland-cmdb-gui/frontend:latest
|
||||||
depends_on:
|
depends_on:
|
||||||
- backend
|
- backend
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
324
docs/DEPLOYMENT-NEXT-STEPS.md
Normal file
324
docs/DEPLOYMENT-NEXT-STEPS.md
Normal 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!
|
||||||
Reference in New Issue
Block a user