Création de l’infrastructure Azure
Une fois le container créé, on peut commencer à s’occuper de l’infrastructure Azure qui va accueillir notre application.
Cette publication est composée de plusieurs partie. Ceci étant la 4ème partie.
La nomination des services
Microsoft recommande de nommer les services d’une manière structurée.
- Un acronyme ou un sigle pour le service.
- Le type de ressource ou information précisant sa fonction.
- Le nom de l’application si celui y est dédié.
- La région du service.
- l’instance du service.
Exemple :
Sigle | Type de ressource | Application | Region | Instance | Description |
---|---|---|---|---|---|
pe | sqlsrv | imagesgallery | westeu | 001 | Le point de terminaison du serveur SQL pour l’application Images Gallery |
st | imagesgallery | westeu | 001 | Le stockage pour l’application Images Gallery | |
snet | backend | imagesgallery | westeu | 001 | Le sous-réseau privé de l’application |
Azure Container Registry
La première des tâches va être de créer un “ACR” ou “Azure Container Registry”.
- Créez un groupe de ressources pour les éléments du réseau.
- Créez un “ACR” dans Azure de type basic.
- Copiez son nom dans le presse-papier depuis l’onglet “Overview”.
- Retournez dans VSCode et entrez la commande ci-dessous.
az login
Ceci va ouvrir une fenêtre de connexion pour vous connecter à votre compte Azure.
- Refermez la fenêtre
- Entrez la commande ci-dessous
az acr login --name [nom de l'ACR]
Ceci va vous connecter avec l’ACR.
- Créez un tag de votre image docker. Un tag est une version de l’image, ici 1.0
docker tag [nom de l'image docker] [nom de l'ACR].azurecr.io/images-gallery:1.0
- Pousser l’image dans Azure
docker push [nom de l'ACR].azurecr.io/images-gallery:1.0
- Cliquez sur “Repositories” de l’ACR et vérifiez que le container est bien présent.
- Activez l’option “Admin”.
App services
Microsoft Azure offre la possibilité de créer des applications sans se soucier de sa maintenance. Le service peut-être lié à un compte GitHub ou à un container. On peut aussi programmer un “CI/CD” pour créer un environnement de développement continu. Le service à également la possibilité de s’adapter à la demande (auto-scalling).
- Créez un groupe de ressources pour l’application.
- Créez un “App service plans” de type B1. La version gratuite ne permet pas de créer des certificats SSL.
- Créez une application
- Entrez un nom pour l’application. Celui-ci n’a pas vraiment d’importance. C’est le certificat SSL et le DNS qui donneront le vrai nom de l’application à utiliser dans l’URL.
- Sélectionnez “Docker Container”.
- Sélectionnez “Linux”.
- Sélectionnez le plan tarifaire créé ci-dessus.
- Sélectionnez le container depuis l’ACR.
- Laissez l’option “Enable Network injection sur Off”. La sécurité de l’application sera traitée plus tard.
- Passez les autres options.
Voilà, l’application est créé et devrait déjà répondre à l’URL “https://[nom de l’app].azurewebsites.net/”. Le premier démarrage de l’app peut prendre une bonne minute, alors patience !
A ce stade, l’application devrait retourner une erreur de type “Failed to connect”. C’est normal. Il faut s’occuper de créer la base de données et le stockage.
Le serveur SQL
Microsoft Azure propose son propre moteur de base de données baptisé “Azure SQL Server”. C’est une version allégée de “Microsoft SQL Serveur”. C’est un “PaaS”, à savoir une “Plateforme as a Service”. Au même titre que “L’App Services”, l’avantage du “PaaS” vient qu’il est administré par Microsoft. On ne s’occupe pas de la mise à jour, ni de la maintenance du serveur. Il est tout à fait possible de rendre le serveur redondant au travers des “réplicas” et du mode élastique.
Même si on utilise un service, il va falloir créer deux éléments, le serveur et la base de données.
- Créez un groupe de ressources pour le serveur et la base de données.
- Nommez-le “sqlsrv-imagesgallery-westeu-001”.
- Entrez une location.
- Entrez le login “azadmin” pour l’admin.
- Entrez un mot de passe et confirmez-le. N’oubliez pas de le noter.
- Créez le serveur.
La base de données
Deuxième étape, la création de la base de données. On va choisir les options les plus basiques
- Sélectionnez le même groupe de ressources que le serveur SQL.
- Nommez-le “sqldb-imagesgallery-westeu-001”.
- Sélectionnez “No” pour l’option “elastic pool”.
- Sélectionnez “Production”.
- Sélectionnez le serveur le moins cher, c’est-à-dire l’option “Basic”.
- Sélectionnez “LRS” pour la redondance.
Connexion à la base de données
Il va falloir paramétrer le serveur pour que l’on puisse y accéder.
- Commencez par cliquer sur l’onglet “Networking” et vérifiez que l’option “Selected networks” est bien activée.
- Ajoutez votre adresse IP publique dans la section concernant le firewall.
- Cochez l’option l’exception “Allow Azure services and resources to access this server”.
- Téléchargez Azure Data Studio et installez-le sur votre PC.
- Cliquez sur l’onglet “Overview” du serveur SQL.
- Récupérez son nom en cliquant sur la note.
- Entrez les informations de connexions dans Azure Data Studio et connectez-vous.
- Une fois la connexion active, on peut voir le nom du serveur et les dossiers y attenant.
Création de la base de données
- Copiez-Collez le petit script ci-dessous.
CREATE TABLE dbo.images
(
ID int NOT NULL IDENTITY(1, 1),
Name nvarchar(255) NOT NULL,
URL nvarchar(255) NOT NULL,
Creation_Date datetime2(0) NOT NULL DEFAULT getdate(),
CONSTRAINT [PK_images_ID] PRIMARY KEY (ID)
)
GO
- Enregistrez le dans un fichier “azure.sql”.
- Retournez dans Azure Data Studio et ouvrez le fichier.
- Acceptez les mises en garde de sécurité.
- Cliquez sur “Run”.
Le stockage
Une des premières fonctions du cloud, c’est le stockage des données. Ici aussi, le stockage dans Azure est un service. Nul besoin d’installer un serveur de fichier.
- Créez un groupe de ressources pour le stockage.
- Créez un compte de stockage.
- Entrez un nom pour le stockage. Le nom doit être UNIQUE au monde, sans majuscule et symboles.
- Sélectionnez l’option “Standard”.
- Sélectionnez l’option “LRS (Local Redundancy Storage)”.
- Acceptez toutes les autres options.
- Créez le compte de stockage.
Le coffre-fort (keyvault)
Le service suivant est le coffre-fort. C’est lui qui va garder le certificat et les mots de passe de connexion pour la base de données et le stockage.
- Créez un “Key Vault”.
- Sélectionnez le groupe de ressources du réseau.
- Nommez-le “key-westeu-001”.
- Créez le keyvault
Configurer le keyvault
Pour accéder au keyvault, les différents services doivent être enregistrés dans Azure AD.
- Retournez dans l’application (App Services).
- Cliquez sur l’onglet “Identity”.
- Créez un “managed identity” de type “system assigned” pour l’application.
- Activez le service en glissant le bouton sur “On”.
- Copiez l’ID de l’objet.
- Retournez dans le keyvault.
- Cliquez sur l’onglet “Access Policies”.
- Cliquez sur “Add Access policy”.
- Sélectionnez “Get” pour le “Secret permissions”.
- Sélectionnez “Select Principal”.
- Collez l’ID de l’application.
- Sauvegardez.
Les secrets
On appelle “secrets”, une chaîne de caractère de moins de 10kb servant comme mot de passe ou autres éléments confidentiels.
- Retournez dans le compte de stockage.
- Cliquez sur l’onglet “Access keys”.
- Affichez les clés en cliquant sur “Show keys” tout en haut de l’écran.
- Copiez la clé numéro 1.
- Retournez dans le Keyvault.
- Créez un secret pour le mot de passe du compte de stockage.
- Nommez-le “key-imagesgallery-storage”.
- Collez la clé numéro 1.
- Recommencez pour la base de données.
- Nommez-le cette fois-ci “key-imagesgallery-sqldb”.
- Collez le mot de passe du serveur SQL. Si vous avez oublié de le noter, vous avez la possibilité de faire un reset du mot de passe.
A ce stade, l’application devrait fonctionner avec l’URL : “https://[nom de l’app].azurewebsites.net/”.
- Essayez de téléverser des images.
Vous devriez voir le résultat du téléversement. Il affiche le nombre d’images téléversées, le nombre d’images total ainsi que les erreurs survenues.
- Cliquez sur le lien “Go Back” et vous verrez les vignettes des images s’afficher.
- Il est alors possible de télécharger ou d’effacer les vignettes en cliquant sur l’icône de la poubelle et/ou du téléchargement.
Vérification du contenu
Il est possible de consulter le contenu de la base de donnée avec Azure Data Studio.
- Connectez-vous à la base de données et lancez la requête SQL “Select * from images”.
- Azure Data Studio affiche bien les images contenu dans l’application.
De même, il est possible de vérifier le contenu du stockage.
- Téléchargez Azure Storage Explorer et installez-le sur votre PC.
- Connectez-vous.
L’application va créer automatiquement un “container de blob” appelé images. Celui-ci contient nos images.
Voilà, l’application fonctionne et c’est déjà pas mal. Mais il est possible encore de l’améliorer.
Conclusion
Ce chapitre a couvert le registre dans lequel le container a été déposé, ainsi que les différents services utilisés pour cette application comme le stockage, la base de données et le coffre-fort.
Enfin, il est aussi question de deux des outils indispensables lorsque il est question d’utiliser les services de stockage et de bases de données.
- Azure Data Studio
- Azure Storage Explorer
Le prochain chapitre va s’articuler au tour de la sécurité de l’application et sur le cloud Azure en général.