Mise en Route
Déploiement
Gestion des Alertes
Gestion des Dossiers
Gestion des Tâches
Analytique
Audits
Déploiement
Déploiement sur Azure
Déployez CaseBender sur Microsoft Azure
Aperçu
Ce guide vous accompagne dans le déploiement de CaseBender sur Azure en utilisant des images Docker préconstruites avec Azure Container Apps et des services managés.
Prérequis
- Compte Azure
- Azure CLI installé
- Docker installé
Étape 1 : Configuration Initiale
Installer et Configurer Azure CLI
Copy
# Utilisation de Homebrew
brew install azure-cli
# Connexion à Azure
az login
# Configurer Docker pour ACR
az acr login --name casebenderacr
Initialiser le Projet
Copy
# Définir les variables
RESOURCE_GROUP="casebender-rg"
LOCATION="eastus"
# Créer un groupe de ressources
az group create --name $RESOURCE_GROUP --location $LOCATION
# Activer les services requis
az provider register --namespace Microsoft.ContainerRegistry
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.Storage
Étape 2 : Configurer l’Infrastructure Azure
Créer un Compte de Stockage
Copy
# Créer un compte de stockage
az storage account create \
--name casebenderstorage \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--sku Standard_LRS \
--encryption-services blob
# Créer un conteneur blob
az storage container create \
--name casebender \
--account-name casebenderstorage \
--auth-mode key \
--public-access off
# Obtenir la clé du compte de stockage
STORAGE_KEY=$(az storage account keys list \
--account-name casebenderstorage \
--resource-group $RESOURCE_GROUP \
--query '[0].value' -o tsv)
# Créer une identité managée pour l'accès au stockage
az identity create \
--name casebender-storage-identity \
--resource-group $RESOURCE_GROUP
# Obtenir l'ID de l'identité managée
IDENTITY_ID=$(az identity show \
--name casebender-storage-identity \
--resource-group $RESOURCE_GROUP \
--query id -o tsv)
# Attribuer le rôle Storage Blob Data Contributor
az role assignment create \
--assignee-object-id $(az identity show --name casebender-storage-identity --resource-group $RESOURCE_GROUP --query principalId -o tsv) \
--role "Storage Blob Data Contributor" \
--scope $(az storage account show --name casebenderstorage --resource-group $RESOURCE_GROUP --query id -o tsv)
Configurer Azure Database pour PostgreSQL
Copy
# Créer un serveur PostgreSQL
az postgres flexible-server create \
--resource-group $RESOURCE_GROUP \
--name casebender-db \
--admin-user superadmin \
--admin-password <votre-mot-de-passe-securise> \
--sku-name Standard_B2s \
--storage-size 32 \
--version 14
# Créer une base de données
az postgres flexible-server db create \
--resource-group $RESOURCE_GROUP \
--server-name casebender-db \
--database-name casebender
Configurer Azure Cache pour Redis
Copy
# Créer un cache Redis
az redis create \
--resource-group $RESOURCE_GROUP \
--name casebender-redis \
--sku Basic \
--vm-size c0 \
--location $LOCATION
Étape 3 : Créer et Configurer le Registre de Conteneurs
Copy
# Créer un Azure Container Registry
az acr create \
--resource-group $RESOURCE_GROUP \
--name casebenderacr \
--sku Standard \
--admin-enabled true
# Obtenir les identifiants du registre
ACR_USERNAME=$(az acr credential show --name casebenderacr --query username -o tsv)
ACR_PASSWORD=$(az acr credential show --name casebenderacr --query "passwords[0].value" -o tsv)
# Récupérer les images CaseBender
docker pull casebender/casebender:latest
docker pull casebender/workflow-processor:latest
docker pull casebender/misp-processor:latest
# Taguer les images pour ACR
docker tag casebender/casebender:latest casebenderacr.azurecr.io/casebender/app:latest
docker tag casebender/workflow-processor:latest casebenderacr.azurecr.io/casebender/workflow-processor:latest
docker tag casebender/misp-processor:latest casebenderacr.azurecr.io/casebender/misp-processor:latest
# Pousser les images vers ACR
docker push casebenderacr.azurecr.io/casebender/app:latest
docker push casebenderacr.azurecr.io/casebender/workflow-processor:latest
docker push casebenderacr.azurecr.io/casebender/misp-processor:latest
Étape 4 : Déployer les Services
Créer un Environnement Container Apps
Copy
# Créer un environnement Container Apps
az containerapp env create \
--name casebender-env \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
# Créer l'application principale
az containerapp create \
--name casebender-app \
--resource-group $RESOURCE_GROUP \
--environment casebender-env \
--image casebenderacr.azurecr.io/casebender/app:latest \
--target-port 3000 \
--ingress external \
--registry-server casebenderacr.azurecr.io \
--registry-username $ACR_USERNAME \
--registry-password $ACR_PASSWORD \
--user-assigned-identity $IDENTITY_ID \
--env-vars \
AUTH_SECRET=<votre-secret-auth> \
AUTH_SALT=<votre-sel-auth> \
POSTGRES_PRISMA_URL="postgresql://superadmin:<mot-de-passe>@casebender-db.postgres.database.azure.com:5432/casebender" \
REDIS_URL="redis://casebender-redis.redis.cache.windows.net:6380?ssl=true&password=<cle-redis>" \
AZURE_STORAGE_ACCOUNT="casebenderstorage" \
AZURE_STORAGE_CONTAINER="casebender" \
AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=casebenderstorage;AccountKey=${STORAGE_KEY};EndpointSuffix=core.windows.net"
# Créer le processeur de workflow
az containerapp create \
--name workflow-processor \
--resource-group $RESOURCE_GROUP \
--environment casebender-env \
--image casebenderacr.azurecr.io/casebender/workflow-processor:latest \
--registry-server casebenderacr.azurecr.io \
--registry-username $ACR_USERNAME \
--registry-password $ACR_PASSWORD \
--min-replicas 1 \
--max-replicas 1 \
--env-vars \
POSTGRES_PRISMA_URL="postgresql://superadmin:<mot-de-passe>@casebender-db.postgres.database.azure.com:5432/casebender" \
REDIS_URL="redis://casebender-redis.redis.cache.windows.net:6380?ssl=true&password=<cle-redis>"
# Créer le processeur MISP
az containerapp create \
--name misp-processor \
--resource-group $RESOURCE_GROUP \
--environment casebender-env \
--image casebenderacr.azurecr.io/casebender/misp-processor:latest \
--registry-server casebenderacr.azurecr.io \
--registry-username $ACR_USERNAME \
--registry-password $ACR_PASSWORD \
--min-replicas 1 \
--max-replicas 1 \
--env-vars \
POSTGRES_PRISMA_URL="postgresql://superadmin:<mot-de-passe>@casebender-db.postgres.database.azure.com:5432/casebender" \
REDIS_URL="redis://casebender-redis.redis.cache.windows.net:6380?ssl=true&password=<cle-redis>"
Étape 5 : Configurer Azure Front Door
Copy
# Créer un profil Front Door
az afd profile create \
--profile-name casebender-afd \
--resource-group $RESOURCE_GROUP \
--sku Standard_AzureFrontDoor
# Créer un point de terminaison
az afd endpoint create \
--endpoint-name casebender \
--profile-name casebender-afd \
--resource-group $RESOURCE_GROUP
# Créer un groupe d'origine
az afd origin-group create \
--origin-group-name casebender-origin-group \
--profile-name casebender-afd \
--resource-group $RESOURCE_GROUP \
--probe-path "/" \
--probe-protocol Http \
--probe-request-type GET
# Ajouter une origine
az afd origin create \
--origin-group-name casebender-origin-group \
--origin-name casebender-origin \
--profile-name casebender-afd \
--resource-group $RESOURCE_GROUP \
--host-name <url-de-votre-container-app> \
--origin-host-header <url-de-votre-container-app> \
--priority 1 \
--weight 1000 \
--enabled-state Enabled
Étape 6 : Configurer un Domaine Personnalisé (Optionnel)
Copy
# Ajouter un domaine personnalisé à Front Door
az afd custom-domain create \
--custom-domain-name casebender-domain \
--host-name votre-domaine.com \
--profile-name casebender-afd \
--resource-group $RESOURCE_GROUP \
--minimum-tls-version TLS12
# Activer HTTPS
az afd custom-domain enable-https \
--custom-domain-name casebender-domain \
--profile-name casebender-afd \
--resource-group $RESOURCE_GROUP
Surveillance et Maintenance
Configurer Application Insights
Copy
# Créer Application Insights
az monitor app-insights component create \
--app casebender-insights \
--location $LOCATION \
--resource-group $RESOURCE_GROUP \
--application-type web
# Obtenir la clé d'instrumentation
az monitor app-insights component show \
--app casebender-insights \
--resource-group $RESOURCE_GROUP \
--query instrumentationKey \
--output tsv
Configurer des Alertes
Copy
# Créer un groupe d'action
az monitor action-group create \
--name casebender-alerts \
--resource-group $RESOURCE_GROUP \
--action email admin email@votredomaine.com
# Créer une règle d'alerte
az monitor metrics alert create \
--name "utilisation-cpu-elevee" \
--resource-group $RESOURCE_GROUP \
--scopes <id-ressource-container-app> \
--condition "avg CPU > 80" \
--window-size 5m \
--evaluation-frequency 1m \
--action <id-groupe-action>
Consulter les Journaux
Copy
# Voir les journaux de l'application conteneur
az containerapp logs show \
--name casebender-app \
--resource-group $RESOURCE_GROUP \
--follow
Configuration de la Mise à l’Échelle
Copy
# Configurer les règles de mise à l'échelle
az containerapp update \
--name casebender-app \
--resource-group $RESOURCE_GROUP \
--min-replicas 1 \
--max-replicas 10 \
--scale-rule-name http-rule \
--scale-rule-type http \
--scale-rule-http-concurrency 50
Sauvegarde et Reprise après Sinistre
Configurer les Sauvegardes de Base de Données
Copy
# Activer les sauvegardes automatisées
az postgres flexible-server update \
--resource-group $RESOURCE_GROUP \
--name casebender-db \
--backup-retention 7
Configurer la Géo-Réplication
Copy
# Créer des ressources dans une région secondaire
az postgres flexible-server replica create \
--name casebender-db-secondary \
--source-server casebender-db \
--resource-group $RESOURCE_GROUP \
--location westus
Meilleures Pratiques de Sécurité
- Activer Azure Defender pour tous les services
- Implémenter Azure Private Link
- Utiliser des Identités Managées
- Évaluations de sécurité régulières
- Activer la journalisation des diagnostics
Optimisation des Coûts
- Utiliser le plan de consommation pour Container Apps
- Implémenter des règles d’auto-scaling
- Choisir des niveaux de service appropriés
- Surveiller les modèles d’utilisation
- Utiliser des Instances Réservées Azure
Prochaines Étapes
- Configurer CI/CD avec Azure DevOps
- Implémenter une surveillance complète
- Configurer la reprise après sinistre
- Revoir la conformité de sécurité
Sur cette page
- Aperçu
- Prérequis
- Étape 1 : Configuration Initiale
- Installer et Configurer Azure CLI
- Initialiser le Projet
- Étape 2 : Configurer l’Infrastructure Azure
- Créer un Compte de Stockage
- Configurer Azure Database pour PostgreSQL
- Configurer Azure Cache pour Redis
- Étape 3 : Créer et Configurer le Registre de Conteneurs
- Étape 4 : Déployer les Services
- Créer un Environnement Container Apps
- Étape 5 : Configurer Azure Front Door
- Étape 6 : Configurer un Domaine Personnalisé (Optionnel)
- Surveillance et Maintenance
- Configurer Application Insights
- Configurer des Alertes
- Consulter les Journaux
- Configuration de la Mise à l’Échelle
- Sauvegarde et Reprise après Sinistre
- Configurer les Sauvegardes de Base de Données
- Configurer la Géo-Réplication
- Meilleures Pratiques de Sécurité
- Optimisation des Coûts
- Prochaines Étapes
Assistant
Responses are generated using AI and may contain mistakes.