Comment utiliser le CDN (Content Delivery Network) d’Azure ?
Ensemble, SharePoint et Azure forment un duo puissant. SharePoint est au cœur de la gestion des connaissances et des outils de collaboration. Tandis qu’Azure alimente la stratégie de services en nuage d’une organisation. Ces deux solutions peuvent se combiner de multiples façons pour résoudre des obstacles commerciaux courants.
De nombreux services proposés par Azure peuvent servir pour étendre et améliorer le fonctionnement de SharePoint. Tant sur site que dans le cloud. L’un des services proposés par Azure est le réseau de diffusion de contenu (CDN). Il s’agit d’une solution d’infrastructure en tant que service (IaaS) qui fournit toute l’infrastructure de cache distribuée au niveau mondial. Cela améliore le fonctionnement du logiciel.
Qu’est ce que le CDN d’Azure?
Azure CDN vous permet de mettre en cache des informations qui changent peu fréquemment. Actuellement, Azure CDN dispose de serveurs dans plus de 70 villes dans le monde. La liste complète se trouve ici.
Si l’endroit souhaité ne figure pas sur la liste, vous pouvez utiliser les réseaux Verizon et Akamai. Ces serveurs sont également très performants et disposent de bandes passantes surdimensionnées pour supporter des charges de travail importantes.
Le CDN fonctionne de la même manière que la mise en cache locale dans le DotNet Framework. Et également de manière similaire à SharePoint On-prem et online en interne. Le principe réside dans le stockage des fichiers d’une manière spécifique. Ainsi lorsqu’un utilisateur a besoin d’un fichier, il peut y accéder sans utiliser les E/S du disque dur. L’avantage d’Azure CDN et de son réseau est que les informations peuvent être au plus près de l’utilisateur final. Cela réduit le temps nécessaire à leur téléchargement.
Azure CDN a le même rôle que la mise en cache locale traditionnelle pour maintenir :
- les images,
- les feuilles de style,
- les documents,
- les fichiers
- les scripts clients (JavaScript par exemple) utilisés fréquemment.
En outre, le CDN permet de réduire la quantité d’informations à traiter (par exemple, dans SharePoint, en réduisant le nombre de requêtes aux bases de données).
Azure CDN et SharePoint
SharePoint dispose nativement de cache disponible localement tant pour SharePoint Server sur site que dans SharePoint 365 online. Cela permet de réduire la charge sur les fermes. Mais ça ne diminue pas non plus le temps de réponse pour les utilisateurs si la ferme est très éloignée. C’est le cas, par exemple, si le centre de données SharePoint et le client se trouvent sur des continents différents. Et, bien que SharePoint 365 ait son propre CDN, le CDN dédié d’Azure a une plus grande capacité. Et il dispose d’un réseau finement maillé pour des performances optimales.
Il s’agit une comparaison d’hébergement de fichiers qui utilise soit le CDN natif SharePoint soit le CDN Azure. Comme vous pouvez le constater, le TTFB du CDN Azure est considérablement plus rapide que celui du CDN SharePoint.
The above picture was taken from Bob German’s blog.
L’exemple suivant montre comment créer une WebPart SharePoint SPFx pour Office 365 SharePoint. Cela met en cache les feuilles de style et les fichiers JavaScript utilisés dans le CDN Azure. Veuillez noter que cette approche peut également servir avec SharePoint Server 2016/2019 sur site.
Exemple d’utilisation d’Azure CDN avec une WebPart SPFx
Infrastructure
- Créez l’infrastructure Azure :
- Depuis votre navigateur, démarrez l’Azure Management Center. Si vous n’avez pas de compte, vous pouvez créer un compte de test valable 30 jours.
- Créez un groupe de ressources dans Azure pour contenir un compte de stockage et le profil CDN.
- Ajoutez un compte de stockage dans le groupe de ressources en lui donnant un nom et un emplacement. Le compte de performance standard suffira. Utilisez toutes les autres propriétés par défaut :
- Ajoutez un blob au stockage. Cliquez sur la section Conteneurs du compte de stockage, puis utilisez le bouton +Conteneur. Attribuez-lui un nom et sélectionnez Blob (accès en lecture anonyme pour les blobs uniquement).
- Vous devez maintenant créer un Endpoint CDN. Dans la section Conteneurs du compte de stockage, cliquez sur Azure CDN. Puis créez un nouveau point de terminaison en indiquant
- son nom,
- le niveau de tarification (Ici, vous pouvez sélectionner les réseaux Microsoft, Akamai ou Verizon en fonction de vos besoins géographiques ; le prix est le même)
- le nom du point de terminaison.
- Lorsque nous avons créé le point d’accès, il apparaît dans la liste des points d’accès.
- Cliquez sur le nom d’hôte pour accéder à la fenêtre des propriétés.
- La connexion entre la WebPart SPFx et le cache CDN se fait par le biais du nom d’hôte Origin. Si vous exécutez la WebPart, tous les fichiers que vous utilisez sont copiés automatiquement sur tous les serveurs CDN Azure. La réplication globale peut prendre environ 15 minutes. Le nom d’hôte Endpoint est l’URL CDN de la WebPart.
Créer WebPart SPFx
- Créer le WebPart SPFx
- Suivez les instructions données par Microsoft pour créer un environnement de développement pour SPFx.
- Configurer la WebPart
Ouvrez le fichier package-solution.json dans le dossier config de la solution SPFx. Mettez à jour la valeur de la propriété includeClientSideAssets en tant que false. Pour éviter que les actifs côté client soient empaquetés dans le fichier sppkg final.
- Ouvrez le fichier deploy-azure-storage.json dans le dossier config. Utilisez pour account le nom du compte de stockage Azure. Pour container utilisez le nom du conteneur dans le compte de stockage. Et pour accessKey, à partir de la fenêtre Storage Account, cliquez sur Keys et copiez la première clé trouvée.
Le fichier .json sera semblable à l’image suivante.
- Ouvrez le fichier write-manifests.json du dossier config et pour la propriété cdnBasePath. Utilisez le nom d’hôte du point de terminaison (trouvé précédemment) plus le nom du conteneur.
Déployer WebPart SPFx
- Déployez la WebPart :
- Créez les ressources nécessaires au téléchargement vers le fournisseur de CDN à l’aide de la commande gulp bundle -ship.
- Téléchargez les fichiers vers le CDN Azure à l’aide de la commande gulp deploy-azure-storage. Après l’exécution de la commande, les fichiers peuvent être présents dans le blob Azure.
- Packagez la solution en utilisant la commande gulp package-solution -ship. Le fichier . sppkg avec le package se trouve dans le répertoire sharepoint\solution
- Téléchargez le fichier du package dans le catalogue d’applications SharePoint. Le package pointera vers le CDN Azure, comme le montre l’image suivante
- Installez la WebPart sur une page et ouvrez le navigateur Developer Tools. Dans la liste des fichiers se trouvent les fichiers téléchargés sur le CDN Azure et les statistiques de synchronisation.
Les délais d’attente dépendent de l’emplacement du client. La distance qui sépare le client des centres de données Azure et Office 365 influe également. Dans l’exemple, le client et les centres de données sont très proches, la différence est donc impossible à déterminer. Si le client est loin du centre de données Office, Azure CDN utilisera un cache proche du client. Et les différences seront plus importantes.
Conclusion
Azure CDN est une option de cache global qui peut servir à remplacer le cache natif de SharePoint. La mise en cache peut alléger le téléchargement de fichiers peu modifiés comme les feuilles de style.
Azure CDN est assez peu coûteux et il est assez facile à configurer et à utiliser comme outil. Il est également possible de configurer d’autres paramètres, comme la mise en cache par heure et par répertoires spécifiques. Gardez toujours à l’esprit que les fichiers sur un CDN sont publics et ne peuvent pas être sécurisés. Les fichiers mis en cache ne doivent donc pas contenir d’informations sensibles.