- Reorganize docs into 'Core deployment guides' and 'Setup and configuration' subdirectories - Consolidate redundant documentation files (ACR, pipelines, deployment guides) - Add documentation consolidation plan - Update backend database factory and logger services - Update migration script and docker-compose configurations - Add PostgreSQL setup script
178 lines
5.3 KiB
Markdown
178 lines
5.3 KiB
Markdown
# Azure Deployment - Quick Reference
|
|
|
|
## 🎯 In één oogopslag
|
|
|
|
**Applicatie**: CMDB Insight (Node.js + React web app)
|
|
**Doel**: Hosten in Azure App Service
|
|
**Gebruikers**: Max. 20 collega's
|
|
**Geschatte kosten**: €18-39/maand (Basic tier)
|
|
**Complexiteit**: Laag (eenvoudige web app deployment)
|
|
|
|
---
|
|
|
|
## 📦 Wat hebben we nodig?
|
|
|
|
### Core Services
|
|
- ✅ **Azure App Service Plan (B1)**: Gedeeld tussen Backend + Frontend
|
|
- ✅ **Azure Key Vault**: Voor secrets (OAuth, API keys)
|
|
- ✅ **Database**: PostgreSQL (aanbevolen) of SQLite (huidige)
|
|
- PostgreSQL: Azure Database for PostgreSQL (B1ms) - €20-30/maand
|
|
- SQLite: Azure Storage - €1-3/maand
|
|
- ✅ **Application Insights (Basic)**: Monitoring & logging (gratis tot 5GB/maand)
|
|
|
|
### Networking
|
|
- ✅ **HTTPS**: SSL certificaat (App Service Certificate of Let's Encrypt)
|
|
- ✅ **DNS**: Subdomain (bijv. `cmdb.zuyderland.nl`)
|
|
- ✅ **Outbound**: Toegang naar `jira.zuyderland.nl` (HTTPS)
|
|
|
|
### Security
|
|
- ✅ **OAuth 2.0**: Authenticatie via Jira
|
|
- ✅ **Secrets**: Alles in Key Vault
|
|
- ✅ **HTTPS Only**: Geen HTTP toegang
|
|
|
|
---
|
|
|
|
## 💰 Kosten Breakdown
|
|
|
|
**Optie 1: Met SQLite (huidige setup)**
|
|
| Item | Maandelijks |
|
|
|------|-------------|
|
|
| App Service Plan (B1) | €15-25 |
|
|
| Application Insights (Basic) | €0-5 |
|
|
| Storage + Key Vault | €2-5 |
|
|
| **Totaal** | **€17-35** |
|
|
|
|
**Optie 2: Met PostgreSQL (aanbevolen voor identieke dev/prod)**
|
|
| Item | Maandelijks |
|
|
|------|-------------|
|
|
| App Service Plan (B1) | €15-25 |
|
|
| PostgreSQL Database (B1ms) | €20-30 |
|
|
| Application Insights (Basic) | €0-5 |
|
|
| Key Vault | €1-2 |
|
|
| **Totaal** | **€36-62** |
|
|
|
|
*Zie `DATABASE-RECOMMENDATION.md` voor volledige vergelijking*
|
|
*Backup niet nodig - data sync vanuit Jira Assets*
|
|
|
|
---
|
|
|
|
## ⚙️ Technische Details
|
|
|
|
**Backend:**
|
|
- Node.js 20, Express API
|
|
- Poort: 3001 (intern)
|
|
- Health check: `/health` endpoint
|
|
- Database: SQLite (~20MB - huidige grootte)
|
|
- **Resources**: 1 vCPU, 1.75GB RAM (B1 tier - voldoende)
|
|
- **Backup**: Niet nodig - data sync vanuit Jira Assets
|
|
|
|
**Frontend:**
|
|
- React SPA
|
|
- Static files via App Service
|
|
- API calls naar backend via `/api/*`
|
|
|
|
**Dependencies:**
|
|
- Jira Assets API (outbound HTTPS)
|
|
- Anthropic API (optioneel, voor AI features)
|
|
|
|
---
|
|
|
|
## 🚀 Deployment Opties
|
|
|
|
### Optie 1: Azure App Service Basic (Aanbevolen) ⭐
|
|
- **Pro**: Eenvoudig, managed service, goedkoop, voldoende voor 20 gebruikers
|
|
- **Con**: Geen auto-scaling (niet nodig), minder flexibel dan containers
|
|
- **Tijd**: 1 dag setup
|
|
- **Kosten**: €18-39/maand
|
|
|
|
### Optie 2: Azure Container Instances (ACI)
|
|
- **Pro**: Snelle setup, container-based
|
|
- **Con**: Duurder dan App Service, minder managed features
|
|
- **Tijd**: 1 dag setup
|
|
- **Kosten**: €30-50/maand
|
|
|
|
**Niet aanbevolen voor 20 gebruikers** - App Service is goedkoper en eenvoudiger.
|
|
|
|
---
|
|
|
|
## ❓ Vragen voor Jullie
|
|
|
|
1. **DNS**: Kunnen we `cmdb.zuyderland.nl` krijgen?
|
|
2. **SSL**: App Service Certificate of Let's Encrypt?
|
|
3. **Network**: Direct internet of via VPN/ExpressRoute?
|
|
4. **Monitoring**: Nieuwe workspace of bestaande?
|
|
5. **Backup**: Niet nodig - data wordt gesynchroniseerd vanuit Jira Assets
|
|
6. **Compliance**: Specifieke requirements? (NEN 7510, ISO 27001)
|
|
|
|
---
|
|
|
|
## 📋 Checklist voor Go-Live
|
|
|
|
- [ ] Resource Group aangemaakt
|
|
- [ ] App Service Plan geconfigureerd
|
|
- [ ] 2x Web Apps aangemaakt (backend + frontend)
|
|
- [ ] Key Vault aangemaakt met secrets
|
|
- [ ] Storage Account voor database
|
|
- [ ] SSL certificaat geconfigureerd
|
|
- [ ] DNS record aangemaakt
|
|
- [ ] Application Insights geconfigureerd
|
|
- [ ] Health checks getest
|
|
- [ ] Monitoring alerts ingesteld
|
|
|
|
---
|
|
|
|
## 📝 Belangrijke Notities
|
|
|
|
**Schaalbaarheid**: Deze setup is geoptimaliseerd voor **max. 20 gebruikers**.
|
|
- Basic B1 tier (1 vCPU, 1.75GB RAM) is ruim voldoende
|
|
- Geen auto-scaling nodig
|
|
- Geen load balancer nodig
|
|
- Eenvoudige, kosteneffectieve oplossing
|
|
|
|
**Als het aantal gebruikers groeit** (>50 gebruikers), overweeg dan:
|
|
- Upgrade naar B2 tier (€50-75/maand)
|
|
- Of Standard S1 tier voor betere performance
|
|
|
|
---
|
|
|
|
## 📋 Deployment Stappen Overzicht
|
|
|
|
### 1. Azure Resources Aanmaken
|
|
```bash
|
|
# Resource Group
|
|
az group create --name rg-cmdb-gui --location westeurope
|
|
|
|
# App Service Plan (Basic B1)
|
|
az appservice plan create --name plan-cmdb-gui --resource-group rg-cmdb-gui --sku B1 --is-linux
|
|
|
|
# Web Apps
|
|
az webapp create --name cmdb-backend --resource-group rg-cmdb-gui --plan plan-cmdb-gui
|
|
az webapp create --name cmdb-frontend --resource-group rg-cmdb-gui --plan plan-cmdb-gui
|
|
|
|
# Key Vault
|
|
az keyvault create --name kv-cmdb-gui --resource-group rg-cmdb-gui --location westeurope
|
|
```
|
|
|
|
### 2. Database Setup
|
|
- **PostgreSQL (Aanbevolen)**: Zie `docs/AZURE-POSTGRESQL-SETUP.md`
|
|
- **SQLite**: Geen extra setup nodig (database in container)
|
|
|
|
### 3. Configuration
|
|
- Environment variabelen via App Service Configuration
|
|
- Secrets via Key Vault references
|
|
- SSL certificaat via App Service (automatisch voor *.azurewebsites.net)
|
|
|
|
### 4. CI/CD
|
|
- Azure DevOps Pipelines: Zie `docs/AZURE-PIPELINES.md`
|
|
- Automatische deployment bij push naar main branch
|
|
|
|
---
|
|
|
|
## 📞 Contact & Documentatie
|
|
|
|
Voor volledige deployment guides, zie:
|
|
- `docs/AZURE-APP-SERVICE-DEPLOYMENT.md` - Complete stap-voor-stap guide
|
|
- `docs/AZURE-POSTGRESQL-SETUP.md` - Database setup
|
|
- `docs/AZURE-PIPELINES.md` - CI/CD pipelines
|
|
- `docs/PRODUCTION-DEPLOYMENT.md` - Production best practices
|