Archive

Archive for the ‘SharePoint’ Category

Comment migrer de SharePoint à SharePoint Online

Hi folks !

Aujourd’hui nous allons faire un petit tour des options de migration de SharePoint OnPremise vers SharePoint Online – Office 365

Tout d’abord il faut savoir que la migration manuelle est possible, c’est très simple, mais …. très long. Puis il existe des outils comme:

Pour savoir quel outil choisir il est alors nécessaire de ce poser les bonnes questions (même si le prix fait partie de l’équation)

  • Qui va utiliser l’outil ?
  • C’est une installation serveur / client ?
  • Est-ce que l’interface utilisateur UI est intuitive ?
  • Y a t il des rapports sur les actions effectuées ?
  • Comment la licence fonctionne (par siège, ferme, volumétrie, etc, …) ?
  • Peux t on faire des itérations (une migration incrémentale) ?
  • L’outil prend t il en considération mes métadonnées ?
  • Est-ce que je peux migrer depuis d’autres sources que SharePoint ?
  • etc…

Ou alors sinon faire son outil maison avec les capacités d’Office 365 via le service d’import et un peu de PowerShell.

Cette option est certes beaucoup moins coûteuse, mais peut être génératrice d’erreur de gestion, car en effet vous aller devoir définir une feuille de route extrêmement précise et détaillée pour pouvoir suivre l’avancement de votre migration et tout ceci passe par un état des lieux de votre SharePoint OnPremise, Microsoft nous mets à disposition le fichier Excel suivant permettant d’avoir une vision plus précise de la ferme OnPremise (upgrade-worksheet-sharepoint-2013)

Initialement l’import service de 365 était mis en place par Microsoft pour la migration des fichiers PST mais a été étendu pour SharePoint Online et OneDrive for Business

Rentrons maintenant dans le vif du sujet

Vous allez avoir besoin de SharePoint Online Management Shell pour vous connecter a 365 et aux services Azure

snip_20161011095557

snip_20161011100157.png

Ensuite nous allons créer un dossier partagé, ce dossier sera partagé avec Azure.

snip_20161011100406.png

Connectez vous sur votre tenant puis dans l’administration d’Office 365 sélectionner import

snip_20161011103941.png

Nous allons ajouter un import, a noter qu’il existe deux possibilités :

  • L’envoi d’un disque chez Microsoft dans le cadre du programme FastTrack (Pour Exchange, je n’ai jamais essayé pour SharePoint)
  • L’upload de fichier a travers le réseau (nous allons prendre cette option)

snip_20161011104359.png

Une fois sélectionner, une clé sécurisé et une url vont arrivées (c’est le moment de prendre un café)

snip_20161011100835.png

Copier la clé et l’URL pour les garder sous la main

Une fois tout ça, le cœur du sujet arrive, il va falloir créer un package (les binaires, les documents, les images, les pièces jointes, les vidéos, etc. …) et les fichiers xml de manifest avec 🙂

Globalement le process sur le papier n’est pas compliqué, mais demande de l’organisation dans la gestions de ces packages. Le truc que je peux vous conseiller est de prendre un fichier excel avec les colonnes qui vont bien et y faire apparaitre :

  • Le nom du package
  • La date de création
  • L’url source
  • La date de migration
  • L’url de destination
  • Le status

Encore mieux ce serait une liste SharePoint mis à jour automatiquement a la suite des batch, mais là c’est une autre affaire : )

Bien le process …

  1. New-SPOMigrationPackage
  2. ConvertTo-SPOMigrationTargetedPackage
  3. Set-SPOMigrationPackageAzureSource
  4. Schedule Job

New-SPOMigrationPackage -SourceFilesPath \\MICKEY-SURFACE\SharePointFileShare -OutputPackagePath C:\SPO_Package -IncludeFileSharePermissions -TargetWebUrl “YourSharePointSiteURL” -TargetDocumentLibraryPath “Documents” -NoAdLookup

snip_20161011101800.png

Vérifier que vous n’avez pas d’erreur LDAP server is unavailable.

Si jamais c’est le cas, vous pouvez ajouter -NoAdLookup 😉

Ensuite la convertion :

Présentation de StresStimulus

Hey folks !

Beaucoup de personne, d’entreprise, de client, SSII sont amenées à se poser un jour la question suivante :

« Mon application est-elle vraiment performante ? » Ici je vais aborder le sujet de manière globale. Vous pourrez par la suite l’appliquer, en interne sur du SharePoint, CRM, etc. … ou en externe pour du 365 modulo quelques éléments de performances liés aux serveurs 365 auxquels évidemment vous n’aurez pas accès.

Comme tout software permettant de définit des scénarios de monté en charge, il s’agit d’enregistrer des scénarii proches de la réalité d’utilisation du terrain de l’application ciblé par le test de performance.

Là où Visual Studio permet de faire les mêmes tests (version Entreprise oblige) à travers plusieurs écrans, ici, StresStimulus permet d’avoir sur un seul écran l’ensemble des paramètres de notre test.

Une fois encore, la simplicité est de rigueur chez StresStimulus, sans pour autant être au détriment des fonctionnalités, par exemple la simulation d’utilisateur est extrêmement facile à mettre en place comparativement à VS ou il faut créer des paramètres assez complexes pour simuler des profils différents.

Le mixage des différents scénarii est également appréciable :

  1. Création des tests cases
  2. Création des groupes des tests pour les imbriquer les uns aux autres. (Ce qui correspond aux profile de LoadTest sous VS)

Au niveau de la configuration du test case voici les paramètres réglables très rapidement

Ce sont effectivement les mêmes que VS (il n’y a pas de magie, il faut bien définir un pattern de test J)

En termes de monitoring, l’outil va à l’essentiel sans aller se perdre dans les performances du GarbageCollector par exemple j’imagine qu’il est possible d’ajouter autant de compteur que souhaité, voir sinon d’utiliser ceux de Windows dans Perfmon mais il faut alors multiplier les différents outils…

Avant de passer a la création du test case, il faut noter que StresStimulus s’intègre complètement à un outil que beaucoup d’administrateur utilise, … Fiddler J

Passons au wizard de création de test

Une fois passer l’enregistrement de votre scénario les différents types de contenu sont analyser, et les paramètres d’auto corrélation automatiquement calculer, vous pouvez par la suite vérifier la cohérence de votre test, afin de savoir si tout va bien pendant le déroulement du test de baseline (le premier test servant d’échantillonnage)

Lors de cette phase, le scénario est alors rejoué

Une fois rejoué, validé, passons au vif du sujet ! Comment charger ma plateforme

On y défini un nombre de User

Puis une durée de test avec des itérations de tests par utilisateurs

On y ajoute un soupçon de temps de réflexion (temps laisser à l’utilisateur entre deux cliques … oui je sais)

Petit plus par rapport à VS, ici on peut définir un temps aléatoire compris dans un intervalle de minutes J (Pour les utilisateurs qui prenne leur temps)

L’activation de la conservation du cache ou non

On démarre le test ?

Et on analyse les résultats

Concernant les interprétations des résultats, la suite est a venir pour bientôt 😉

En attendant je vous invite à télécharger StresStimulus sur le site officiel : http://www.stresstimulus.com/

Have fun & Stay tuned

Migration SharePoint vers SharePoint Online ou OnPremise

Hi folks,

Un petit post pour vous présenter un outil permettant de migrer facilement vos données et commencer à utiliser SharePoint avec un minimum de contenu, permettant ainsi d’améliorer l’adoption de vos utilisateurs, car un site SharePoint rempli est beaucoup plus joyeux.

Ces outils sont développés par la société at-ms – http://www.at-ms.com/ et vous permette de migrer de :

  • Fileshare vers SharePoint
  • SharePoint vers SharePoint


Migrer vos contenus de serveur de fichiers rapidement vers vos fermes SharePoint 2013 ou dans le cloud Office 365

Mise à disposition d’un outil de migration modulaire, ajustable à vos besoins et agissant au cœur de votre processus de migration.


Migrez vers SharePoint ou vers Office 365.

Reconduisez vos droits d’accès.

Migrez rapidement depuis les modèles standards.

Migrez vos répertoires vers des métadonnées gérées.

Simplifiez votre migration en vous appuyant sur notre expérience.

Migrer le contenu de vos anciens serveur SharePoint (2007/2010/2013) vers vos fermes SharePoint 2013 ou dans le cloud Office 365


Migrez vers SharePoint ou vers Office 365.

Reconduisez vos droits d’accès.

Migrez rapidement depuis les modèles standards.

Simplifiez votre migration en vous appuyant sur notre expérience.


SharePoint 2016 IT Preview

Hi Folks,

J’espère que vous avez passé de très bonnes vacances et qu’elles ont été reposantes 🙂 car en cette reprise plein de nouvelles choses sur le collaboratif à commencer par SharePoint 2016 et sa preview 🙂

Voici quelques autres liens à garder sous le coude et à lire :

Pour celles / ceux qui ne le saurait pas encore, en termes de planning voici ce qui avait été annoncé

25-08-2015 20-17-42

En termes de rendu final une fois SharePoint installé voici ce que ça donne :

  • On retrouve l’App Launcher d’Office 365 – L’idée est justement peut être de vous faciliter par la suite l’adoption de 365 🙂

24-08-2015 22-53-46

Là on ce dit : « Ohh !! Chouette mes utilisateurs ne vont pas être complètement paumés déjà que … (vous compléterez en fonction de vos envies ici) »

Côté nouveautés je ferai un point dans un article suivant pour l’aspect utilisateurs, compliance, etc. … voir sujet par sujet pour que cela reste digeste.

Au niveau de l’installation honnêtement rien de spécial à signaler, et pour une installation en Preview ça c’est même SU-PER bien déroulée cf.: la gymnastique de la version 2013 pour récupérer les prérequis particulièrement ce qui était lié au Distributed Cache 😉

La grande news est l’écran suivant lors de l’installation qui vous permet d’ajouter des serveurs rôles par rôles (Minimun Role) c’est un gain de temps très intéressant afin d’éviter les éternels sujets « Quels services je dois démarrer ? »

Vous avez tous les détails par ici : http://sharepoint.codes/2015/08/25/sharepoint-2016-tour-du-propritaire-prsentation-des-diffrents-rles-du-serveur/

24-08-2015 22-14-59

En fonction du rôle sélectionné vous aurez donc certains services déjà activés.

Par d’inquiétude si vous souhaitez changer le rôle de votre serveur, vous avez un menu permettant de le faire « Convert server role in this farm » ou bien en PowerShell une fois récupérer le role du serveur avec Get-SPServer.

Plus proprement:

$role = Get-SPServer

$role.role= »Application »

$role.update()

Les roles possibles sont : WebFrontEnd | Application | DistributedCache | Search | SinglerServerFarm

Côté centrale d’administration, rien de fulgurant visuellement parlant quelques ajouts de fonctionnalité qui étaient attendues comme le redémarrage des services plutôt qu’en PowerShell

24-08-2015 22-51-58

Le fameux « Fix » permettant d’auto réparer le service en question – a tester; mais déjà SharePoint vous informe sur l’état du service « In Compliance »

Avait été aussi annoncé le retrait de FIM en tant que produit tier. Du coup la synchronisation avec SharePoint ne pose plus aucun problème… vous allez me dire :

  • Et si j’ai des synchronisations existantes…
Le retrait de FIM indique bien évidemment que la synchronisation ne ce fait plus de manière bi-directionnel et du coup on ne fait que de l’import nativement, si vous souhaitez quand même utiliser la synchronisation bi-directionnel (j’ai les photos de l’AD des utilisateurs dans SharePoint et ils ont le droit de la changer) il vous faudra alors installer FIM Server (https://technet.microsoft.com/en-us/library/ff512686(v=ws.10).aspx)
Bref FIM n’est pas encore mort…
Ok c’est bien tout ça … mais en quoi c’est Cloud
Effectivement cette version en Preview ne le met pas très en avant, l’hybride est bien évidemment possible, mais les fonctionnalités telles que le Search Hybrid n’est pas disponible dans cette preview.
Vous verrez assez vite dans les modèles de site collection, il y a un Compliance Center, je n’ai pas encore pu jouer avec, mais les détails viendront par la suite aussi je vous remets ce fameux slides des nouveautés attendues qui vont être à tester 🙂
25-08-2015 20-59-45
Côté PowerShell je vous joins un fichier Excel avec des slicers permettant d’explorer les différentes commandes qui arrivent avec cette version 2016
Pour les lister toutes :
  • Get-Command –PSSnapin « Microsoft.SharePoint.PowerShell »
Stay Tuned & Have fun  !

SharePoint 2016

17 avril 2015 1 commentaire

Hi folks,

Pour ceux qui ne l’aurait pas encore vu, voici quelques infos qui vous donnerons des nouvelles de SharePoint 2016.

Très rapidement, pour ceux qui ce demande ce qui va se passer :

– Les versions OnPremise de SharePoint continue d’exister

– Des nouveautés très certainement faire leur apparition, en tout cas, c’est ce qu’on peut imaginer notamment avec le rachat de DropBox.

– Les très grosses évolutions telles que Office Vidéo, Delve, ne seront jamais portées sur des plateformes OnPremise de part leur consommation, et les puissances de calcul qui leur sont nécessaires; ces éléments resterons sur Office 365.

– De plus en plus d’Hybride,

– Plus performant, plus flexible

 

Pour en savoir un peu plus voici l’article :

https://blogs.office.com/2015/04/16/sharepoint-server-2016-update/

Today’s post was written by Seth Patton, senior director of product management for the SharePoint team.

In February, we shared our vision on the evolution of SharePoint, outlining our plans for continued cloud innovation with SharePoint in Office 365, and providing a glimpse of the work underway to deliver our next on-premises server release, SharePoint Server 2016.  With Ignite just a few weeks away, we’re getting ready to share more details on the innovation we’re bringing to SharePoint 2016. In the meantime, I wanted to provide an update on release timing and share some of the key enhancements and new capabilities we’re focused on.

Today, we are confirming that SharePoint Server 2016 will become generally available in Q2 2016, with a public beta planned for Q4 2015.  We also want to confirm our commitment to delivering on-premises releases of SharePoint for the foreseeable future. We envision a future where we will continue to have customers who choose a combination of on-premises, cloud and hybrid deployments for many years to come.  We’re excited to start sharing information on our SharePoint investments at Microsoft Ignite, so below I’ve highlighted some of the most relevant sessions to attend if you’re interested in learning more about the road ahead.

As we think about the next version of SharePoint Server, we’re paying close attention to trends in content management, team collaboration, user experiences across devices, and how the cloud can be blended into existing on-premises scenarios in new and compelling ways. In particular we are focused on delivering value to customers as part of their on-premises deployments, while at the same time making it easier to take advantage of cloud innovation thru hybrid deployments of SharePoint Server with Office 365. With that backdrop, SharePoint Server 2016 will deliver enhancements and new capabilities in three major areas:

  • Improved user experiences
  • Cloud-inspired infrastructure
  • Compliance and reporting

SharePoint Server 2016 Update 1

Improved user experiences

Making decisions faster and keeping in contact are critical capabilities for increasing effectiveness in any organization. Users’ ability to access information while on the go is now a workplace necessity. SharePoint Server 2016 will provide improved mobile access to content, people and applications along with touch-based experiences across devices and screen sizes. It will make file storage and document collaboration more people-centric. And it will enable improved user experiences and capabilities derived from innovations in Office 365, available either as part of your on-premises deployment or through a hybrid implementation of SharePoint Server 2016 and Office 365. For example, users will be able to quickly discover contextually relevant information and data that is stored across both on-premises and cloud environments powered by Office Graph and Delve. And, we’re focused on helping you streamline communications with richer integration with Exchange and Yammer, as well as broadening access and management of new types of media thru integration with Office 365 Video as examples.

Learn more about improved user experiences and hybrid investments at Microsoft Ignite:

Implementing Next Generation SharePoint Hybrid Search with the Cloud Search Service Application

MVP Panel: SharePoint On-Premises, Online and Everything in Between

Cloud inspired-infrastructure

SharePoint 2016 is the first on-premises server release representative of our experience running SharePoint at scale in Office 365, bringing our own internal investments to your datacenter that improve performance, reliability and scale as well as enabling true hybrid scenarios that can enrich your existing on-premises investments.

In addition, with an improved, simplified user experience and integration with products such as the next release of Windows Server, the next generation of SQL Server, and Exchange Server 2016, SharePoint Server 2016 will simplify end-user training and support for IT.

Finally, we’re focused on enabling a broad ecosystem of solutions and partners through a standardized set of APIs and experiences that span on-premises and the cloud.

Learn more about how we’re reshaping SharePoint at Microsoft Ignite:

The Evolution of SharePoint:  Overview and Roadmap

What’s New for IT Professionals in SharePoint Server 2016

Compliance and reporting

Data Loss Prevention (DLP) is non-negotiable, and overexposure to information can have legal and compliance implications. SharePoint Server 2016 will provide a broad array of features and capabilities designed to make certain that sensitive information remains protected with investments in DLP, new scenarios to enable data encryption, and compliance tools that span on-premises servers and Office 365 while providing a balance between enabling user self-service and ensuring content usage adheres to corporate policy.

Dive into compliance and reporting with these selected Ignite sessions:

Microsoft SharePoint Data Security and Compliance

End-to-End Data Loss Prevention

Technology Adoption Program (TAP)

If you’re interested in providing feedback on early versions of SharePoint 2016, we invite you to nominate your company for the Technology Adoption Program (TAP). Joining the on-premises TAP provides companies with a number of advantages, such as providing input and feedback for future releases of SharePoint, Project Server, and/or Exchange Server; developing a close relationship with the product teams; and receiving Pre-Release information about SharePoint, Project Server and Exchange.

We look forward to seeing you at Ignite (May 4-8 in Chicago) where we’ll be sharing more details about SharePoint Server 2016, including a sneak-peek at an early version of the product. We’re excited about SharePoint Server 2016 and we’re sure you will be too!

—Seth Patton

Catégories :Hybride, Office365, SharePoint

SharePoint Hybride Infrastructure

Hey folks !

On entends parler d’Hybride, mais de quoi s’agit-il exactement ?

Est-ce facile d’y aller ? Comment y aller ? Quels sont les bénéfices ? Quels sont les risques ?

Je vous propose ces premiers slides afin de faire un petit point sur le sujet. Et DeepDive par la suite avec le guide en step by step pour mettre en place son architecture 🙂

Hope this helps,

And Stay Tuned,

Michael

Catégories :Hybride, SharePoint

SharePoint 2013 Search Configuration & Tuning

24 janvier 2015 1 commentaire

Hey folks !

En ce moment j’ai beaucoup de demande sur le service de recherche de SharePoint 2013, ce qu’il fait exactement, ce qu’il consomme, où est l’index, quelle est sa taille, comment dois-je dimensionner ma machine, est-ce que je dois répartir les rôles, est-ce que je les répartie sur une instance SQL à part, etc. … Et enfin une fois que l’ensemble des parties d’architecture sont définies, comment je mets le tout en place. Dans le cas de figure nous verrons ce qui est le plus présent dans la majorité des cas c’est-à-dire une architecture en haute disponibilité Frontale, et Applicative.

 

Pour récapituler le moteur de recherche de SharePoint 2013, j’aime à dire que « SharePoint 2010 & Fast qui ont eu un bébé » ; effectivement le moteur de 2013 reprend le meilleur des deux mondes afin d’offrir aux utilisateurs une expérience de recherche riche. Et permettre aussi au power user de moduler l’ensemble des recherches, en fonction d’un ensemble de règles qui feront l’objet d’un prochain article, celui-ci étant plutôt dédié à la mise en place du moteur.

Un peu d’histoire, en 2010 il était encore possible de manipuler l’ajout de crawler, changer le query, etc. … via le GUI de la centrale d’administration de SharePoint. Mais ça c’était avant … oui aujourd’hui c’est tout en PowerShell (il faudrait éventuellement créer un petit projet pour gérer l’ensemble via une petite interface piloté en PShell derrière, question de temps … mais je suis dessus et je vous transmettrai le lienJ) en attendant c’est du Full PShell

 

Les composants du moteur de recherche

Coté SharePoint

Nom du composant de recherche

Description

Composant d’analyse Analyse les sources de contenu pour collecter les propriétés analysées et les métadonnées à partir d’éléments analysés et envoie ces informations au composant de traitement de contenu
Composant de traitement de contenu Transforme les éléments analysés et les envoie au composant d’index. Ce composant mappe également les propriétés analysées sur les propriétés gérées
Composant de traitement de l’analyse Exécute l’analyse de la recherche et l’analyse de l’utilisation
Composant d’index Reçoit les éléments traités du composant de traitement de contenu et les écrits dans l’index de recherche. Ce composant gère également les requêtes entrantes, récupère les informations de l’index de recherche et renvoie le jeu de résultats au composant de traitement de la requête.
Composant de traitement des requêtes Analyse les requêtes entrantes. Cela permet d’optimiser la précision, le rappel et la pertinence. Les requêtes sont envoyées au composant d’index, qui renvoie un jeu de résultats de recherche pour la requête.
Composant d’administration de la recherche Exécute les processus système pour la recherche, puis ajoute et initialise de nouvelles instances des composants de recherche

 

Cote SQL

Si vous en avez la possibilité, n’hésitez pas à mettre les fichiers *.mdf de vos bases de recherche sur des disques gold (SSD ou sur du 15 000tr/min) c’est le jour et la nuit en terme de temps d’indexation et d’analyse.

Ces bases de données peuvent également être stockées dans une autre instance que celle de votre SharePoint avec des capacités beaucoup plus importante aussi.

Nom de la base de données de recherche

Description

Base de données d’analyse Stocke les informations de suivi et d’historique concernant les éléments analysés tels que les documents et les URL. Elle stocke également des informations telles que l’heure de la dernière analyse, le dernier ID d’analyse et le type de mise à jour (ajout, mise à jour, suppression) effectué lors de la dernière analyse.
Base de données de liens Stocke les informations non traitées qui sont extraites par le composant de traitement de contenu et les informations sur les clics de recherche. Le composant de traitement d’analyse examine ces informations.
Base de données de création de rapports d’analyse Stocke les résultats de l’analyse de l’utilisation.
Base de données d’administration de la recherche Stocke les données de configuration de recherche.

 

 

Comment les répartir les rôles sur les serveurs SharePoint

Il est important dans la topologie d’une ferme de répartir les rôles entre les serveurs afin de garantir une réactivité du système, certain composant vont être plus consommateurs que d’autres.

Par exemple la mémoire consommée sera plus importante pour le composant qui s’occupe de traiter le contenu des éléments indexé que le composant d’analyse de recherche.

La plupart du temps lorsque vous pouvez vous le permettre mettez en place des serveurs dédiés à l’indexation et à l’analyse. Les index peuvent être poussés sur les serveurs frontaux si vous voulez offrir des temps de recherche minimum aux utilisateurs. Il est important de répliquer l’index lorsque ce dernier est volumineux et afin de ne pas être obliger de tout ré indexer si vous avez des volumétries très importante.

 

Concrètement les ressources minimum par composant sont les suivants :

Composant

Stockage

Mémoire

Processeur

Bande passante réseau

Index 500 Go pour l’index. 16 Go 64 bits, 4 cœurs minimum, mais 8 cœurs recommandés. 2 Gbits/s
Traitement de l’analyse 300 Go pour le traitement local d’analyses 8 Go 64 bits, 4 cœurs minimum, mais 8 cœurs recommandés 2 Gbits/s
 

Traitement decontenuTraitement des requêtesAdministration de la recherche

8 Go 64 bits, 4 cœurs minimum, mais 8 cœurs recommandés. 2 Gbits/s

Base de données de recherche

Le serveur nécessite 80 Go d’espace disque quel que soit le nombre de bases de données de recherche qu’il héberge.
8 Go pour les déploiements à petite échelle16 Go pour les déploiements à moyenne échelle 64 bits, 4 cœurs pour les déploiements à petite échelle.64 bits, 8 cœurs pour les déploiements à moyenne échelle. 2 Gbits/s

 

Performance pour le stockage

Des composants de recherche

Nom du composant

Détails du composant

Besoins en IOPS

Utilisation de volume/partition de stockage distinct

Composant d’index Utilise le stockage lors de la fusion de l’index et lors de la gestion et de la réponse aux requêtes. 300 IOPS pour 64 Ko de lectures aléatoires100 IOPS pour 256 Ko d’écritures aléatoires200 Mo/s pour les lectures séquentielles

200 Mo/s pour les écritures séquentielles

Oui

Composant analytique Analyse les données localement, en traitement en bloc. Non Oui
Composant d’analyse Stocke le contenu téléchargé localement, avant de l’envoyer à un composant de traitement de contenu. Le stockage est limité par la bande passante réseau. Non Oui

Des bases de données

Nom de la base de données

Besoins en IOPS

Charge classique sur le sous-système d’E/S

Base de données d’analyse IOPS moyennes à élevées 10 IOPS pour un taux d’analyse d’1 document par seconde (DPS)
Base de données de liens IOPS moyennes 10 IOPS pour 1 million d’éléments dans l’index de recherche
Base de données d’administration de la recherche IOPS faibles Non applicable
Base de données de création de rapports d’analyse IOPS moyennes Non applicable

 

La redondance

J’en reviens à la redondance des éléments, tout d’abord les éléments redondants vous permettant une réelle haute disponibilité :

  • Le composant d’index
  • Le composant d’analyse
  • De traitement de contenu
  • De traitement des requêtes
  • Du traitement de l’analyse
  • Et l’administration de la recherche
  • Puis les bases de données de recherche.

Pour les bases de données

Je vous invite à utiliser ce que permet de faire SQL avec la fonctionnalité d’AlwaysOn qui permet de faire du clustering. J’essaierai de vous proposer un autre article sur le sujet à propos de sa mise en place.

 

Pour le composant d’index

Votre index est redondant s’il a au moins deux copies d’index par partition d’index. En cas de défaillance d’un serveur hébergeant une copie d’index, cela peut réduire les performances mais la recherche peut tout de même traiter des requêtes et des éléments d’index. Cependant, si l’environnement doit délivrer des performances constantes à tout moment, la recherche a besoin de composants d’index plus redondants.

Par exemple : vous avez conçu votre topologie de recherche avec deux copies par partition afin de réduire le temps d’attente pour les requêtes et votre environnement nécessite un court temps d’attente pour les requêtes en permanence. Augmentez le nombre de copies d’index par partition.

Toutes les partitions doivent avoir le même nombre de copies. Un composant d’index représente une copie d’index. Par conséquent, si vous voulez deux copies de l’index, vous aurez besoin de deux fois plus de composants d’index que de partitions d’index. Par exemple, un index redondant avec 40 millions d’éléments exige quatre partitions. Huit composants d’index représentent les quatre partitions en cas d’utilisation de deux copies pour chaque partition.

Si vous ajoutez des composants d’index aux partitions existantes en tant que copies sur une installation en cours, la recherche amorce automatiquement les nouvelles copies avec les données de la partition d’index. Plusieurs heures peuvent être nécessaires pour que les nouvelles copies soient opérationnelles.

Pour les composants d’analyse, de traitement de contenu, de traitement des requêtes, de traitement d’analyse et d’administration de la recherché

Prenons le composant d’analyse comme exemple. Si vous devez arrêter l’un des serveurs hébergeant un composant d’analyse pour maintenance, cela peut réduire l’actualisation des résultats mais la recherche peut tout de même analyser tout le contenu.

Cependant, si l’environnement nécessite la même actualisation des résultats en permanence, la recherche a besoin de composants d’analyse plus redondants. Par exemple : vous avez conçu votre topologie de recherche avec trois composants d’analyse et vous voulez la même actualisation de résultats même en cas de défaillance de deux serveurs de composants d’analyse. Ajoutez deux autres composants d’analyse.

Le composant d’administration de la recherche est une exception à ce principe. Un composant d’administration de la recherche a une capacité suffisante pour n’importe quelle topologie de recherche, peu importe sa taille. Ainsi, deux composants d’administration de la recherche sont suffisants pour assurer la redondance.

Les composants de traitement de contenu équilibrent la charge entre eux, donc les composants de traitement de contenu redondants augmentent la capacité de traitement des éléments.

 

Exemple d’archictecture de recherche

http://zoom.it/PKfA

Contexte Small Farm (~10M d’éléments)

Une ferme dédiée à la recherche

Ce qui est assez répandu

 

 

Contexte Medium Farm (~40M d’éléments) – Les serveurs WFE ne sont pas présentés sur le schéma-

 

Script PowerShell

Le script que je vous propose permet la mise en place d’une ferme de recherche avec deux serveurs :

Avant un passage du script, assurez-vous de comprendre ce qu’il fait !!! Je vois trop souvent trop de personne qui ne comprenne pas ce qu’ils font, mais le font… utiliser des machines de test !

$hostB = Serveur WFE qui possède un index ainsi que le rôle de query

$hostA = Serveur APP qui possède le reste des rôles

 

Add-PSSnapinMicrosoft.SharePoint.PowerShell –EA 0#Please Check if there is an Active Search Topology

#Get-SPEnterpriseSearchServiceApplication | Get-SPEnterpriseSearchTopology |? {$_.State -eq « Inactive »}

 

#If there is some Inactive Search Topology, clean it with the following cmdlet

#Get-SPEnterpriseSearchServiceApplication | Get-SPEnterpriseSearchTopology |? {$_.State -eq « Inactive »} |% { Remove-SPEnterpriseSearchTopology -Identity $_ -Confirm:$false};

 

# Create search application pool

$saAppPoolName = « Search SA »

$account = « corp\sp_farm »

 

Write-Host « Creating Application Pool » -foregroundcolor green

New-SPServiceApplicationPool -Name $saAppPoolName -Account $account -Confirm:$false -Verbose

 

# Search Specifics, we are single server farm

$searchServerName = (Get-ChildItem env:computername).value

$serviceAppName = « Search Service Application »

$searchDBName = « SHP_SearchService_DB »

 

# Grab the Appplication Pool for Service Application Endpoint

$saAppPool = Get-SPServiceApplicationPool $saAppPoolName

 

# Start Search Service Instances

Write-Host « Starting Search Service Instances… » -foregroundcolor green

Start-SPEnterpriseSearchServiceInstance $searchServerName

do {$online = Get-SPEnterpriseSearchServiceInstance -Identity $searchServerName; Write-Host « Waiting for service:  » $online.Status}

until ($online.Status -eq « Online »)

Start-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance $searchServerName

do {$online = Get-SPEnterpriseSearchQueryAndSiteSettingsServiceInstance -Identity $searchServerName; Write-Host « Waiting for service:  » $online.Status}

until ($online.Status -eq « Online »)

 

# Create the Search Service Application and Proxy

Write-Host « Creating Search Service Application and Proxy… » -foregroundcolor green

$searchServiceApp = New-SPEnterpriseSearchServiceApplication -Name $serviceAppName -ApplicationPool $saAppPoolName -DatabaseName $searchDBName

$searchProxy = New-SPEnterpriseSearchServiceApplicationProxy -Name « $serviceAppName Proxy » -SearchApplication $searchServiceApp

 

###################################################################################################

###VM-SHP-HOST A

#===Admin component 1

#===Crawl component 1

#===Content processing component 1

#===Analytics processing component 1

###VM-SHP-HOST B

#===Query processing component 1

#===Index component 1 (that belongs to index partition 0)

 

#Application Server

$hostA = Get-SPEnterpriseSearchServiceInstance -Identity « Serveur APP »

#Front Server

$hostB = Get-SPEnterpriseSearchServiceInstance -Identity « Serveur WFE »

 

Write-Host « Starting Search Service Instances… » -foregroundcolor green

Start-SPEnterpriseSearchServiceInstance -Identity $hostA -verbose

do {$online = Get-SPEnterpriseSearchServiceInstance -Identity $hostA; Write-Host « Waiting for service:  » $online.Status}

until ($online.Status -eq « Online »)

 

Write-Host « Starting Search Service Instances… » -foregroundcolor green

Start-SPEnterpriseSearchServiceInstance -Identity $hostB

do {$online = Get-SPEnterpriseSearchServiceInstance -Identity $hostB; Write-Host « Waiting for service:  » $online.Status}

until ($online.Status -eq « Online »)

 

Write-Host « Getting Search Service Instance… » -foregroundcolor green

#Wait until all the search service instances are running. At the Windows PowerShell command prompt, type the following commands until the commands return the state « Online » for each of the search service instances

Get-SPEnterpriseSearchServiceInstance -Identity $hostA -verbose

Get-SPEnterpriseSearchServiceInstance -Identity $hostB -verbose

 

Write-Host « Creating Search Topology… » -foregroundcolor green

#Create a new search topology and a reference to the new search topology.

$ssa = Get-SPEnterpriseSearchServiceApplication -verbose

$newTopology = New-SPEnterpriseSearchTopology -SearchApplication $ssa -verbose

 

Write-Host « Configuring Role Topology Servers… » -foregroundcolor green

#Add all the search components to the new search topology

New-SPEnterpriseSearchAdminComponent -SearchTopology $newTopology -SearchServiceInstance $hostA -verbose

New-SPEnterpriseSearchCrawlComponent -SearchTopology $newTopology -SearchServiceInstance $hostA -verbose

New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA -verbose

New-SPEnterpriseSearchAnalyticsProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostA -verbose

 

New-SPEnterpriseSearchQueryProcessingComponent -SearchTopology $newTopology -SearchServiceInstance $hostB -verbose

New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $hostB -IndexPartition 0 –verbose

 

#C’est ici que vous ajouter les rôles nécessaire en fonction de ce que vous souhaitez mettre en place

 

Write-Host « Activating topology… » -foregroundcolor green

#Activate the new search topology

Set-SPEnterpriseSearchTopology -Identity $newTopology -verbose

 

Write-Host « Getting Active Topology… » -foregroundcolor green

#Verify that the new search topology is active

Get-SPEnterpriseSearchTopology -SearchApplication $ssa -verbose

 

Write-Host « Checking Search Topology… » -foregroundcolor green

#Verify that all components of the new search topology are running correctly.

Get-SPEnterpriseSearchStatus -SearchApplication $ssa -Text -verbose

 

#Write-Host « Cleanning Topology… » -foregroundcolor green

#Get-SPEnterpriseSearchServiceApplication | Get-SPEnterpriseSearchTopology |? {$_.State -eq « Inactive »} |% { Remove-SPEnterpriseSearchTopology -Identity $_ -Confirm:$false};

 

Une fois que le tout est mis en place, penser à changer l’emplacement du repertoire d’index de SharePoint, par défaut il est sur le disque système, il convient de le changer de disque. Pour cela je vous invite à consulter le script de Ivan (https://gallery.technet.microsoft.com/office/Move-SharePoint-2013-242869e2)

Vous pouvez bien évidemment ajouter l’option IndexLocation dans le script fourni afin de déclarer l’emplacement de l’index. Cela ressemblerai à :

$indexlocation = e:\SSAIndex

New-SPEnterpriseSearchIndexComponent -SearchTopology $newTopology -SearchServiceInstance $hostB -IndexPartition 0 –IndexLocation $indexlocation –verbose

N’oubliez pas de créer le répertoire avant, et assurez-vous qu’il soit vide.

 

Le tuning de notre service de recherche

Une fois que les améliorations niveau SQL ont été effectuées

  • TempDB (en fonction du nombre de processeurs)
  • Mémoire dédié
  • Max Parrallelism défini
  • Disque SSD mis en place (bah pourquoi pas…)
  • Mémoire minimum définie
  • Taille de l’autogrowth définie (pour éviter la fragmentation)

Le tout relié à un SAN en FibreNoire, que peut-on améliorer …

Et bien le modèle de ranking utilisé en fonction de template que vous pouvez définir vous-même (promis c’est pas si compliqué que ça) J

Les scopes de recherche, il est absolument nécessaire de bien séparer les scopes de recherche ainsi que les urls qui sont indéxées, l’idée en fait est de faire des groupages, et surtout une planification des différents scopes.

Par exemple les archives peuvent être indexées une fois par semaine, alors que le portail collaboratif doit être indexé toute les 10 voir 5 minutes.

 

Le ranking

Déjà le ranking c’est quoi ?

Le ranking est une évaluation de classement de vos données de manière hiérarchisée basé sur les termes qui identifie votre document (les métadonnées) … (depuis le temps qu’on répète de les mettre … hein … un jour au supermarché on vous enlèvera les étiquettes, super pratique pour trouver la boite de crème de marron hein…) et qui contribue au calcul de pertinence de classement de SharePoint.

Cette fonction s’appelle BM25 (fonction hiérarchise) les articles en fonction de l’apparence de termes de recherche dans l’index. L’entrée BM25 peut être une des propriétés gérées dans l’index de texte intégral.

La fonction rangée BM25 calcule le score de classement de pertinence à l’aide de la formule suivante.


Où :

  • D est un document, représenté sous la forme d’une liste de champs textuels tels que le titre ou du corps.
  • Q est la requête utilisateur, représentée sous la forme d’une liste de termes de recherche, t.
  • S définit la liste des champs qui participent à la pertinence ; Cette liste est définie par le modèle de classement.
  • wf est une valeur numérique qui définit le poids relatif de champ f S; Cette valeur est définie par le modèle de classement.
  • Bf est une valeur numérique qui définit la normalisation de longueur de document pour chaque ordinateur champ f S.
  • TFf (t,D) est le nombre d’occurrences de requête terme t dans le champ f du document D.
  • DLf (D) est le nombre total de mots dans le champ f du document D.
  • N est le montant total des documents dans l’index.
  • nt un montant est de documents qui ont le terme t dans au moins une de leurs propriétés.
  • AVDLf est la moyenne DLf(D) sur tous les documents indexés.
  • k1 est un paramètre scalaire ; Cette valeur est définie par le modèle de classement.

Vous devez mapper les propriétés gérées utilisées pour la fonction de classement BM25 à l’index de texte intégral par défaut dans la Choisir recherche paramètres avancé de l’interface utilisateur.

Au sein d’une requête utilisateur, termes de requête qui font partie des opérateurs suivants sont exclus des calculs de classement de pertinence : NOT(…) dans FQL, NOT(…) dans KQL et FILTER(…) dans FQL.

En outre, les termes de requête qui se trouvent sous étendue, par exemple, title:apple AND body:orange, sont exclus des calculs de classement de pertinence.

Exemple de définition de fonctionnalité de classement BM25

XML

ContentRank » k1= »1″>

<Layer1Weights>

<Weight>0.26236235707678</Weight>

  </Layer1Weights>

<Properties>

name= »body » w= »0.019391078235467″ b= »0.44402228898786156″ propertyName= »body » />

    name= »Title » w= »0.36096989709360422″ b= »0.38179554361297785″ propertyName= »Title » />

    name= »Author » w= »0.15808522836934547″ b= »0.13896219383271818″ propertyName= »Author » />

    name= »Filename » w= »0.15115036355698144″ b= »0.96245017871125826″ propertyName= »Filename » />

    name= »QLogClickedText » w= »0.3092664171701901″ b= »0.056446823262849853″ propertyName= »QLogClickedText » />

    name= »AnchorText » w= »0.021768362296187508″ b= »0.74173561196103566″ propertyName= »AnchorText » />

    name= »SocialTag » w= »0.10217215754116529″ b= »0.55968554315932328″ propertyName= »SocialTag » />

  </Properties>

</BM25Main>

 

Dans cet exemple, le ranking, le classement est effectué si les métadonnées sont renseignés (un document qui a un titre aura un poid de 0,36 en plus de celui qui n’en a pas)

 

Le classement peut aussi être fait en fonction de la proximité de l’utilisateur avec un document, un collègue, etc. …

 

Sur la fréquence d’actualisation d’un document aussi

Actualisation

La valeur par défaut SharePoint 2013 le modèle de classement n’augmenter le rang des résultats de recherche en fonction de leur actualité. Vous pouvez obtenir cela en ajoutant une nouvelle fonctionnalité de classement statique qui combine des informations à partir de la propriété LastModifiedTime gérés avec la propriété de requête DateTimeUtcNow , à l’aide de la fonction de transformation de fraîcheur. La fonction de transformation de fraîcheur est la seule transformation que vous pouvez utiliser pour cette fonctionnalité de classement de fraîcheur, parce qu’elle convertit l’âge de l’élément à partir d’une représentation interne en jours.

La transformation de fraîcheur est basée sur la formule suivante :

Où :

  • c et yfuturessont définies dans le modèle de classement.
  • x est l’âge d’un élément en jours.
  • La valeur de yfuturesdéfinit le gain de fraîcheur des éléments qui ont LastModifiedTime supérieure à la date et l’heure.

Exemple de définition de fonctionnalité rang fraîcheur

XML

name='freshboost' propertyName='LastModifiedTime' default='-1' convertPropertyToDatetime='1' rawValueTransform='compare' property='DateTimeUtcNow'>
    Freshness" constant="0.0333" futureValue="2" />
    <Layer1Weights>
        <Weight>1.0</Weight>
    </Layer1Weights>
</Static>

 

https://msdn.microsoft.com/en-us/library/office/dn169052%28v=office.15%29.aspx

http://blogs.msdn.com/b/ianpal/archive/2008/06/25/tuning-sharepoint-search.aspx

Globalement compter comme cela :

  1. Déterminez la somme des bases de données de contenu SharePoint qui sera analysée. C’est la valeur ContentDBSum
    qui sera utilisée comme corrélation dans les calculs suivants.

     

  2. Déterminez la taille de l’index total (qui est situé sur les composants de requête et est utilisé pour les requêtes de texte intégral) :

    Multipliez ContentDBSum
    par 0,035. Vous obtenez la valeur TotalIndexSize
    (avant de partitionner et réserver de l’espace pour les fusions et le repartitionnement)

     

    Ensuite, déterminez le nombre de partitions d’index sur lequel sera basé votre scénario. En règle générale, une partition d’index devrait compter 5 à 10 millions d’éléments. Une fois le nombre de partitions d’index déterminé, vous pouvez calculer la taille de stockage du composant de requête.

     

    Divisez TotalIndexSize
    par le nombre de partitions d’index. Vous obtenez la valeur QueryComponentIndexSize
    qui permet de calculer les tailles suivantes :

  • Pour la RAM, multipliez QueryComponentIndexSize
    par 0,33. Vous obtenez la RAM minimum requise pour ce composant de requête, s’il est actif.
    • S’il s’agit d’un composant de basculement, il ne nécessite pas de RAM tant qu’il est inactif.
    • Pour un serveur donné, si vous avez plusieurs composants de requête actifs sur le même serveur, vous devez additionner la RAM de chaque composant de requête actif pour obtenir les besoins en RAM du serveur.
  • Pour le stockage disque, utilisez QueryComponentIndexSize
    comme suit pour estimer les besoins en disque, selon que vous envisagez de repartitionner ou non l’index (c’est-à-dire, si vous prévoyez une croissance de l’index supérieure à 10 millions par partition) :
    • Multipliez QueryComponentIndexSize
      par 3 pour calculer le stockage disque pour un seul composant de requête en laissant la place pour la fusion d’index.
    • Multipliez QueryComponentIndexSize
      par 4 pour calculer le stockage disque pour un seul composant de requête en laissant la place pour le repartitionnement d’index.

Pour un serveur donné, si vous avez plusieurs composants de requête sur le même serveur, vous devez prévoir le stockage pour chacun selon les besoins d’E/S par seconde répertoriés dans la section Détails d’échelle de la section Système de requête de recherche, plus haut dans cet article.

  1. Déterminez la taille des bases de données de propriétés de la manière suivante :
  • Multipliez ContentDBSum par 0,015. Vous obtenez la valeur TotalPropertyDBSize
    avant partitionnement.
  • Multipliez ContentDBSum par 0,0031. Vous obtenez la valeur TotalPropertyDBLogSize avant partitionnement. Cela suppose que vous utilisez le mode de récupération simple pour les bases de données SQL Server.
  • Multipliez ContentDBSum par 0,00034. Vous obtenez la valeur TempDBSize de la base de données de propriétés. Comme il est recommandé que 33 % des tables clés de la base de données de propriétés soient en RAM, l’utilisation de la base de données temporaire est légère.

Ensuite, déterminez le nombre de bases de données de propriétés que vous aurez, en fonction de votre scénario. En règle générale, une base de données de propriétés devrait compter jusqu’à 50 millions d’éléments, en supposant qu’il n’y ait pas de problèmes de performances des requêtes et que vous n’ayez qu’un nombre limité de propriétés gérées (configuration standard).

  • Divisez TotalPropertyDBSize par le nombre de bases de données de propriétés. Vous obtenez la valeur PropertyDatabaseSize.
  • Divisez TotalPropertyDBLogSize par le nombre de bases de données de propriétés. Vous obtenez la valeur PropertyDatabaseLogSize.
  • Pour la RAM, multipliez PropertyDatabaseSize par 0,33. Vous obtenez la quantité minimum de RAM recommandée pour cette base de données de propriétés.

Pour un serveur de bases de données particulier, si vous avez plusieurs bases de données de propriétés sur le même serveur, vous devez prévoir le stockage et la RAM pour chacune selon les besoins d’E/S par seconde et de RAM répertoriés dans la section Détails d’échelle de la section Système de requête de recherche, plus haut dans cet article.

  1. Calculez les tailles des bases de données d’analyse :
  • Multipliez ContentDBSum par 0,046. Vous obtenez la valeur TotalCrawlDBSize avant partitionnement.
  • Multipliez ContentDBSum par 0,011. Vous obtenez la valeur TotalCrawlDBLogSize avant partitionnement. Cela suppose que vous utilisez le mode de récupération simple pour les bases de données SQL Server.
  • Multipliez ContentDBSum par 0,0011. Vous obtenez la valeur TempDBSize de la base de données d’analyses. Comme le système d’analyse de recherche affecte les performances de la base de données temporaire, il est déconseillé de placer d’autres bases de données sur les serveurs qui hébergent la base de données d’analyse ou des bases de données qui seraient affectées par cela.

Ensuite, déterminez le nombre de bases de données d’analyse que vous aurez, en fonction de votre scénario. En règle générale, une base de données d’analyse devrait compter jusqu’à 25 millions d’éléments, en supposant qu’il n’y ait pas de problèmes de performances de l’analyse.

  • Divisez TotalCrawlDBSize par le nombre de bases de données d’analyse. Vous obtenez la valeur CrawlDatabaseSize.
  • Divisez TotalCrawlDBLogSize par le nombre de bases de données d’analyse. Vous obtenez la valeur CrawlDatabaseLogSize.

Pour un serveur donné, si vous avez plusieurs bases de données d’analyse sur le même serveur, vous devez prévoir le stockage pour chacune selon les besoins d’E/S par seconde répertoriés dans la section Détails d’échelle de la section Système d’analyse de recherche plus haut dans cet article. Pour la RAM, nous recommandons au moins 16 Go sur les serveurs de bases de données dédiés aux bases de données d’analyse.

  1. Déterminez la taille de la base de données d’administration de la recherche
  • Multipliez le nombre d’éléments de l’index (en millions) par 0,3. Vous obtenez la valeur SearchAdminDBSize.
  • Pour la RAM, multipliez SearchAdminDBSize
    par 0,33. Vous obtenez la quantité minimum de RAM recommandée pour cette base de données d’administration de la recherche.

Pour un serveur de bases de données particulier, si vous avez plusieurs bases de données sur le même serveur, vous devez prévoir le stockage et la RAM pour chacune selon les besoins d’E/S par seconde et de RAM répertoriés dans la section Détails d’échelle de la section Système de requête de recherche, plus haut dans cet article.

  1. Pour déterminer l’espace disque requis pour sauvegarder une application de service de recherche, effectuez le calcul suivant :

  • TotalCrawlDBSize + TotalPropertyDBSize + TotalIndexSize + SearchAdminDBSize = taille de sauvegarde de base.

Cette taille de sauvegarde de base est un point de départ. Elle peut être affectée par les facteurs suivants :

  • La taille d’index supplémentaire qui est incluse dans TotalIndexSize pour toute analyse effectuée depuis la dernière fusion principale.
  • La croissance au cours du temps due à des éléments, des requêtes et des descripteurs de sécurité supplémentaires.

Plus de détails par ici :
https://technet.microsoft.com/fr-fr/library/gg750251%28v=office.14%29.aspx

 

Estimer les performances de recherche sous SharePoint 2010

Estimate performance and capacity requirements for enterprise intranet collaboration environments

 

Aujourd’hui Microsoft mets en place Delve http://products.office.com/en-us/business/explore-office-delve qui est principalement basé sur le même concept.Au vu des volumétries qu’il est nécessaire d’indéxer et de la puissance de calcul nécessaire à mettre en place Delve ne sera pour le moment jamais porté sur des technologies OnPremise.

 

 

Hope this helps & Stay tuned !