domingo, 12 de octubre de 2014

Una breve introducción sobre la arquitectura de SharePoint Server

SharePoint desde su versión 2010 consta de 3 capas; Presentación (Front-End), Aplicación (Application Server) y Base de Datos (Back End). Los 3 roles son definidos de la siguiente manera:

SharePoint Server 2010 farm:Add a server

Base de Datos (Back End): Este es exclusivo para SQL Server y pueden constar de varios servidores de bases de datos aislados (donde almacenamos en cada servidor diferentes bases de datos de SharePoint, por ejemplo;configuración, servicios o contenido) o bien arreglos redundantes como Clustering o Mirroring para alta disponibilidad de este Rol.  Aquí no es necesario instalar los bits de SharePoint, solo SQL Server como aplicación central dentro del servidor.

Aplicación (Application Server): En este servidor se recomienda que este instalado el Central Administration.  Puede disponer de varios servidores aislados los cuales pueden ejecutar diferentes servicios. También puede existir redundancia de servicios (aunque no de todos) en caso sean críticos como la búsqueda, perfiles de usuario, entre otros.  Aquí se requiere tener instalado los bits de SharePoint, es decir requerimos una licencia de SharePoint Server.

Presentación (Front-End): Este servidor primordialmente este diseñado para hospedar las aplicaciones Web que los usuarios consumen al hacer la solicitud en el navegador.  Aquí la redundancia para balancear cargas o para tener alta disponibilidad es un escenario común en granjas de más de 4 servidores.  Aquí no se puede utilizar un servidor para hospedar una aplicación Web y en otro servidor otra, no esta así diseñado SharePoint.  Aquí se requiere tener instalado los bits de SharePoint, es decir requerimos una licencia de SharePoint Server.

Replica de los sitios Web del IIS:  Algo curioso es que cuando creamos la aplicación Web en el servidor Front-End desde el Central Administration o vía PowerShell, el sitio Web en el IIS es replicado en el servidor de aplicación donde esta hospedado el Central Administration, esto lo hace SharePoint para tener una replica del sitio Web creado en el IIS y pueda ser restablecido en otro servidor de Front-End de SharePoint.  Cuando instalamos alguna solución de granja o Farm Solution o componente que utilizará nuestra aplicaciones instaladas en SharePoint es necesario instalarlas en cada servidor de Front-End y Application Server dependiendo de la arquitectura de la solución.

El orden de Instalación:

Base de Datos (Back End): Ya que la configuración, servicios y contenido es almacenado en base de datos, el primer servidor que debemos instalar es el base de datos o Back-End.  Para ello necesitamos la media de SQL Server 2008 R2 con el SP1 como mínimo o superior para la edición Standard de SharePoint Server y para la edición Enterprise de SharePoint debe de ser SQL Server Business Intelligence 2012 o Enterprise. 

Recomendaciones importantes:  Si es una instalación existente de SQL Server deberá crearse una instancia Nueva para ocupar SharePoint y asignar recursos de memoria y procesador a esta para garantizar un nivel de rendimiento en SharePoint.   Recomiendo que si va a ser una instalación nueva se elija SQL Server 2012 Standard si es para las edición Standard de SharePoint Server.

Aplicación (Application Server): El Segundo servidor que debemos de instalar es el de aplicación para una granja de por lo menos 3 servidores.  Si solo son dos pues no aplica los roles de App-Server y Front-End están en uno mismo.   Este servidor es el que va dar a luz la granja de SharePoint en este crearemos la aplicación Web para el Central Administration. 

Luego de instalar los bits de SharePoint, nos preguntará el Asistente de Productos y Tecnologías de SharePoint si deseamos crear una granja nueva o conectarnos a una existente, con lo cual indicaremos que deseamos crear una nueva granja.  Nos solicitará el nombre de la base de datos con lo cual sugiero utilizar un alias de SQL por futuros cambios o restauraciones en caso de falla de servidor de base de datos y la cuenta que será la administradora de la granja de SharePoint denominada común mente como midominio\spfarm.  Luego solicitará el puerto donde lo crearemos sugiero un número fácil de recordar como 5 veces 5 es decir http://hostname:55555

image

Esto creará las primeras dos base de datos SharePoint_Config (donde se guarda la configuración de la granja) y Wss_Content_Admin[id único] (la cual es la base de datos de contenido de la aplicación Web que hospeda el Central Administration).  También nos solicitará la frase de contraseña de la granja esta es importante ya que para adicionar cualquier servidor es necesario esta contraseña.  Recomiendo sea la misma contraseña de la cuenta spfarm para no olvidar cual colocamos. 

Si nuestra granja contará con más de 3 servidores y la redundancia o la distribución de la carga va a ser en este rol, tendremos que instalar los bits de SharePoint en cada uno de los servidores adicionales (y si es una licencia de servidor adicional, lo que no tiene que volver a pagar es las CAL de usuario no importa cuantos servidores tenga una USER CAL es por usuario y no por servidor. 

Presentación (Front-End):

image

Para adicionar un servidor necesitamos instalar los bits de SharePoint y cuando se ejecute el asistente de Productos y Tecnologías de SharePoint, colocar que no es una nueva granja sino que nos vamos a conectar a una existente debemos de colocar el nombre del servidor de base de datos o el alias de SQL (para ello es necesario instalar sql serve express y crear el alias en el servidor que se desea conectar al de base de datos), seleccionamos la base de datos de configuración que muy seguramente es SharePoint_Config, la cuenta administradora de la granja (asumimos que sea midominio\spfarm) y la contraseña. 

Además nos solicitará la frase de contraseña de la granja de SharePoint.

image

Cómo se asignan los roles de Servidor:

En el siguiente enlace http://technet.microsoft.com/es-gt/library/cc261752(v=office.15).aspx hay una nota al final que podemos pasar desapercibidos en el cual indica que “El nuevo servidor no tiene ninguna funcionalidad real en la granja de servidores hasta que se configuran los servicios necesarios para obtener compatibilidad con el rol que ha planeado para el nuevo servidor. Para más información, vea Configuración de servicios y aplicaciones de servicio en SharePoint 2013.”  Esto claramente nos indica que hasta después de adicionar el servidor a la granja y crear el servicio o la aplicación web en el servidor por medio de línea de comando le asignamos el rol según la funcionalidad que le configuremos.

Para crear la aplicación Web explicitamente en el Front End podemos utilizar el siguiente script para ejecutar en PowerShell:

$farmAcct = "midominio\spapp"
$AliasName = "SPSQL"
$webAppName = "SharePoint – Portal "
$appPool = "SharePoint - Portal"
$Contentdatabase = "WSS_Content_Portal"
$url = http://frontendserver
$SiteTemplate = "STS#0" # Basic TeamSite
$port = "80"

New-SPWebApplication -Name $webAppName -ApplicationPool $appPool -ApplicationPoolAccount (Get-SPManagedAccount $farmAcct) -DatabaseServer $AliasName -DatabaseName $Contentdatabase -Url $url -Port $port

Donde la variable $url contiene el valor de la dirección del servidor front-end de SharePoint asignado.

Lo interesante de la granja de SharePonit es que todos los servidores de SharePoint mantienen una copia de las aplicaciones Web  creadas.
          

Una guía para saber donde crear los servicios de aplicación esta en el siguiente enlace:

http://technet.microsoft.com/es-ES/library/jj219591(v=office.15).aspx

Una pequeña muestra del contenido a continuación:

Aplicación de servicio Recomendación de servidor
Servicios de Access Servidor front-end.
Servicios de Access 2010 Servidor front-end.
Servicio de administración de aplicaciones Servidor front-end.
Conectividad a datos empresariales Servidor front-end.
Servicios de Excel Servidor front-end o especializado.
Servicio de traducción automática Servidor de procesamiento por lotes.
Servicio de metadatos administrados Servidor front-end.
Servicio de configuración de suscripción de Microsoft SharePoint Foundation Servidor front-end.
PerformancePoint Servidor de procesamiento por lotes o especializado.
Conversión de PowerPoint Servidor de procesamiento por lotes.
Búsqueda Servidor de procesamiento por lotes o servidores especializados para la búsqueda.
Búsqueda Servidores que ejecutan componentes de búsqueda.
Búsqueda Servidores que ejecutan el procesamiento de consultas.
Búsqueda Servidores que ejecutan componentes de búsqueda.
Servicio de almacenamiento seguro Servidor front-end.
Recolección de datos de uso y estado  
Perfil de usuario Servidor front-end.
Perfil de usuario Servidor de procesamiento por lotes.
Servicio de gráficos de Visio Servidor front-end.
Word Automation Services Servidor de procesamiento por lotes.
Administración del trabajo Servidor de procesamiento por lotes.

Bueno amigos eso es todo por este articulo que dimos un vistazo a la arquitectura lógica de SharePoint 2013.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita

sábado, 11 de octubre de 2014

Total de sub-sitios en SharePoint 2013 en una sola línea de comando con PowerShell

A veces necesitamos un comando rápido que nos de algo tan sencillo como el total de sub-sitios en SharePoint data una dirección URL en una sola línea de comando.  Abajo les muestro la línea de comando:

((Get-SPWeb “http://hostname/site1/site2”).Site).AllWebs.count

Eso es todo amigos.   Si desea algo más elaborado y que no requiera el SharePoint Management Shell sino la consola standard de PowerShell puede ser algo como le muestro abajo:

Add-PSSnapin “Microsoft.SharePoint.PowerShell” –ErrorAction SilentlyContinue

$url = Read-Host “Ingrese la URL del sitio padre: ”

((Get-SPWeb $url).Site).AllWebs.count

Eso es todo amigos fácil y rápido.

SharePoint4Fun!,

Juan Manuel Herrera Ocheita