Buenas prácticas en infraestructura en
SharePoint 2013
Miguel Tabera Pacheco
MVP | SharePoint Server
Spenta |
www.sinsharepointnohayparaiso.com
@migueltabera
Buenas prácticas en infraestructura
en SharePoint 2013
¿Por qué es
importante
planificar una
buena
SharePoint a veces desespera…
•
Los desarrolladores y administradores de IT
debemos luchar día a día con diversos y extraños
problemas.
•
¿Qué hacemos en un ataque de nervios y
desesperación?
•
¡Maldito SharePoint!
•
¡Culpa de SharePoint!
•
¡SharePoint es una basura!
•
Es el Hacendado de los gestores documentales
•
SharePoint me mata
•
Lo normal es culpar a SharePoint, pero…
•
¿Tenemos siempre la razón? ¿Hay que culpar a
SharePoint de todos nuestros problemas? ¿No
tendremos nosotros algo de culpa?
…pero muchas veces no es el culpable
•
Gran parte de los errores de SharePoint se deben a una mala
instalación/configuración o a un mal desarrollo.
•
Trataremos errores muy comunes a la hora de instalar y configurar
SharePoint.
Cometemos errores al instalar SharePoint
•
En aproximadamente 30 minutos podemos instalar y configurar
un entorno SharePoint
•
SharePoint nos proporciona una serie de asistentes rápidos para realizar
estas tareas
•
Con poco conocimiento podemos configurar nuestra granja para fines
de desarrollo
•
¡Pero atención! Cuando instalemos una granja en producción
debemos ser extremadamente cuidadosos
•
No nos bastará con unos sencillos asistentes
•
Hay que tener en cuenta muchas cosas (cuentas, servidores, caché,
aplicaciones, url, asistentes…)
Los 10 errores
más comunes
en la
instalación de
SharePoint
Error #1: Instalar todo con una cuenta
•
El sistema se vuelve vulnerable
•
Quien sepa la contraseña podrá hacerlo todo
•
La Administración Central de SharePoint nos informará
continuamente de problemas
•
Podemos perder soporte
•
Cuentas necesarias para instalar/configurar:
•
http://www.sinsharepointnohayparaiso.com/Blog/Entrada/56/Cuentas-administrativas-para-instalar-configurar-SharePoint-2010
Error #2: Usar el asistente de configuración
de la granja
•
Este asistente crea todas las aplicaciones de servicio y de contenido
•
Tras usarlo, todo funciona aparentemente, pero hay problemas:
•
Los nombres de las bases de datos tienen GUIDs y es incómodo manejarlas e
identificarlas
•
Se crea una aplicación web para empezar a usar y un MySite dentro, en vez de
separarlos en dos aplicaciones distintas
•
Determinadas apps de servicio no tienen los permisos/seguridad configurados
correctamente
•
Usuarios poco experimentados suelen marcar todas las app de servicio,
cuando puede no ser necesario crearlas
•
En entornos con varios servidores, no es posible separar correctamente las
app de servicio
Error #3: Requisitos de hardware incorrectos
•
Se debe cumplir el mínimo de TechNet:
•
http://technet.microsoft.com/es-es/library/cc262485.aspx
•
Si SharePoint tiene poca RAM:
•
Apaga funcionalidades
•
Cachea menos en los application pool
•
Reinicia con más frecuencia los application pool
•
SharePoint no necesita mucho espacio de disco duro, pero Windows sí
•
Recomendación: aislar la instalación de SharePoint, index de búsqueda y LOGs
en discos secundario
Error #4 Mal funcionamiento o configuración
de SQL Server
•
Si SQL Server va lento, entonces SharePoint va lento
•
Asegurarse que se cumplen los requisitos de hardware
•
Si se virtualiza SQL Server, asegurarse que se configura para un óptimo
rendimiento
•
Recomendación: instalar con un SQL Server Alias. Así no tendremos
problemas con futuros cambios
•
Tras crear la aplicación, SharePoint ya no comunica a IIS cambios que se hagan
en ella
Error #5 Usar una URL incorrecta al crear una
aplicación web
Error #6: Ejecutar aplicaciones web y aplicaciones de
servicio en distintos pool de aplicaciones
•
Las aplicaciones se ejecutan dentro de un app pool, que es un proceso
(W3WP.exe) que se ejecuta en el servidor
•
Es recomendable agrupar varias aplicaciones en un app pool (principalmente
las de servicio)
•
Cuando SharePoint crea las bases de datos, toma algunas decisiones no
recomendadas:
• Autogrow de bases de datos a 1 MB. Esto provoca bajo rendimiento (con casi cada carga de info la base de datos crece) y que haya diminutos trozos de 1 MB que forman parte del archivo de la base de datos a lo largo de todo el disco
• Recovery Model configurado en “full”. Si no se maneja bien, los archivos .ldf llenarán el disco duro
Error #7: Dejar la configuración por defecto de base
de datos que hace SharePoint
Error #8: No habilitar el cacheo de BLOB
• El cacheo de BLOB se utiliza para guardar temporalmente en disco objetos binarios (como imágenes y videos) que se utilizan frecuentemente para mejorar el rendimiento de la granja.
• Los archivos que se desean guardar en este cache son eliminados de la Base de Datos y guardados en el sistema de archivos local de cada servidor frontal
• Por defecto deshabilitado
• Para configurar:
• http://www.gavd.net/servers/sharepointv4/spsv4_item.aspx?top=inf&itm=1468
• La recomendación es que no usar la cuenta de conexión a base de datos (o Cuenta del Sistema) para todo.
• No debe ser administrador local tras la instalación.
• No deberíamos trabajar con él para administración.
• Lo recomendable es hacer otro usuario y, mediante permisos en bbdd y el comando
Add-SPShellAdmin darle los permisos necesarios:
• http://technet.microsoft.com/en-us/library/ff607596.aspx
• En caso de no poder usar a otro usuario, las operaciones de PowerShell pueden ejecutarse con spsetup.
Error #10 No hacer que los servidores de
SharePoint apunten a sí mismos
•
Si hacemos que un servidor apunte a sí mismo:
• A la hora de hacer un rastreo en las búsquedas, no molestamos a los DNS, ni a otros frontales, ni provocamos tráfico en la red, con lo que mejoramos el rendimiento
• Si nos reportan que SharePoint no funciona y desde dentro del servidor funciona, podemos intuir que son problemas fuera
¿Cómo
estructurar
una granja de
SharePoint?
Cómo estructurar la granja
No
existe una implementación única
Microsoft propone un
proceso cíclico
de planeación de capacidad y de
escalabilidad para ayudarnos a
estructurar nuestras granjas
La granja debe
evolucionar y escalarse
con el paso del tiempo
modelar
probar, optimizar
diseñar
supervisar y mantener
¿Cómo diseñar una granja?
Servidor frontal
web base de datosServidor de
El mínimo de servidores en producción son un servidor frontal y un servidor de base de datos
¿Cómo diseñar una granja?
Servidor frontal web
Servidor de base de datos
Si el frontal web tiene mucha carga de datos, acceso, concurrencia… es posible agregar otro es un proceso tan sencillo como instalar SharePoint en un nuevo servidor y ejecutar un
asistente para unirlo a la granja
Granja SharePoint
Servidor frontal web
¿Cómo diseñar una granja?
Servidor frontal web
Servidor de base de datos
Se puede añadir a una granja la cantidad de frontales que se desee
Granja SharePoint
Servidor frontal web
Servidor frontal web
¿Cómo diseñar una granja?
Servidor frontal web
Servidor de base de datos
Estos frontales pueden configurarse en NLB (network load balancing) para estar balanceados y repartirse la carga de una misma aplicación SharePoint
Granja SharePoint
Servidor frontal web
NLB
¿Cómo diseñar una granja?
Servidor frontal
web base de datosServidor de
NLB proporciona alta disponibilidad en los frontales, para conseguirla en base de datos configuraremos un clúster SQL Server
Granja SharePoint Servidor frontal web NLB Servidor de base de datos SQL Server cluster
¿Cómo diseñar una granja?
Servidor frontal web
Servidor de base de datos
Si se detectan servicios (excel services, web analytics, búsquedas…) que requieren una gran carga de procesamiento, es posible separarlos en servidores de aplicaciones
Granja SharePoint
Servicio de indexación
Añadir un servidor de aplicaciones a la
granja es tan sencillo como añadir un nuevo frontal web y
configurar el servicio en la Administración Central
¿Cómo diseñar una granja?
Para acceder desde internet es necesario basarnos en una topología de granja sharepoint que lo permita La más común es la topología de firewall perimetral
Servidor frontal web Servidor de base de datos Servidor frontal web Microsoft ForeFront UAG INTERNET Granja SharePoint Red perimetral (DMZ) Internet
Pero existen muchas otras. Puede consultar el resto de topologías de granja en http://technet.microsoft.com/es-es/library/cc263513.aspx
¿Cómo calcular el tamaño de la granja?
•
Granja de servidor único
•
Para fines de
evaluación
.
•
Todo (frontales web, servidores de
aplicaciones, bases de datos) se
instala en un único servidor
¿Cómo calcular el tamaño de la granja?
•
Granja de servidores pequeña
(o granja de dos niveles)
•
Para implementaciones
limitadas
,
con un mínimo de aplicaciones de
servicio en uso (o muchas con
poca carga) y un volumen
relativamente
pequeño de datos
(10 o más GB).
¿Cómo calcular el tamaño de la granja?
•
Granja de servidores mediana
(o granja de tres niveles)
•
Topología de
tres niveles
, la
arquitectura
más común
.
•
Decenas de miles de usuarios.
•
De 10 a 50 solicitudes por
segundo.
¿Cómo calcular el tamaño de la granja?
•
Granja de servidores
grande
•
Varias granjas de
servidores.
•
Granjas dedicadas para
distintos servicios.
•
Cientos de miles de
usuarios.
•
Cientos de solicitudes
por segundo.
•
10 o más TB de datos.
¿Cómo calcular la capacidad de la granja?
•
Calcular capacidad de la granja
•
Guías de TechNet
• http://technet.microsoft.com/en-us/library/ff608068.aspx
•
Resources for Sizing and Capacity Planning for SharePoint 2013
• http://blogs.msdn.com/b/sanjaynarang/archive/2013/04/06/sizing-and-capacity-planning-for-sharepoint-2013-resources.aspx
•
Comparación con otras implantaciones
• Proyectos pasados
• Case studies de TechNet
•
Calculadoras automáticas
• HP SharePoint Sizer
Buenas
prácticas en la
instalación
Cuentas de usuario
•
spsetup
: Cuenta de instalación, configurador de SharePoint y PowerShell
•
spfarm
: cuenta de acceso a base de datos, administrador de la granja, pool de
administración central, servicio de timers, se impersona como “Cuenta del Sistema”
(SHAREPOINT\system)
•
sppool1
,
sppool2
,
spool3
…: cuentas para los application pool de las distintas aplicaciones
SharePoint
•
spservices
: cuenta para los application pool de las aplicaciones de servicio
•
spmysite
: administrador de Mi Sitio (My Site) y cuenta del pool de Mi Sitio.
•
spsearch
: cuenta para el servicio de búsqueda
•
spcrawl
: cuenta para el rastreo de contenido en las búsquedas
•
spprofile
: cuenta para sincronizar perfiles de usuario
•
spexcel
,
spvisio
,
spperfpoint
: cuentas para el servicio sin-atención de los servicios de
Excel, Visio y PerformancePoint.
•
spcacheadm
,
spcacherd
: cuentas para la caché de objetos de SharePoint
•
http://www.sinsharepointnohayparaiso.com/Blog/Entrada/56/Cuentas-administrativas-para-instalar-configurar-SharePoint-2010
Otras recomendaciones
•
Servidores de base de datos:
•
A ser posible, conectar a base de datos mediante un Alias SQL.
•
Si se quiere Alta Disponibilidad, montar los SQL Server en clúster.
•
Separar bases de datos en distintos discos duros. Recomendación:
• Disco 1: Sistema Operativo
• Disco 2: Binarios, instalación
• Disco 3: bases de datos de contenido y servicios (mdf)
• Disco 4: log transaccionales de bases de datos de contenido y servicios (ldf)
• Disco 5: bases de datos de búsqueda y rastreo (mdf)
• Disco 6: log transaccionales de bases de datos de búsqueda y rastreo (ldf)
• Disco 7: tempdb
•
El Autogrow de bases de datos está por defecto a 1 MB, mejor incrementarlo.
•
Intentar no cambiar permisos en las bases de datos de SharePoint a mano, a
no ser que sea absolutamente necesario.
Otras recomendaciones
•
Servidores de SharePoint:
•
Crear aplicaciones de servicio a mano para controlar los nombres de las bases de
datos, pools de aplicaciones, configuraciones y cuentas.
•
A ser posible, conectar a base de datos mediante un Alias SQL.
•
Configurar límites de ficheros de log, separar en otros discos duros.
•
Instalar iFilters esenciales, p.ej. PDF.
• http://www.sinsharepointnohayparaiso.com/Blog/Entrada/40/SharePoint-2010-Configurar-iFilter-de-Adobe-PDF-9-0-(64-bit)
•
Al acabar la instalación, spfarm debe dejar de ser administrador local.
•
Los frontales balanceados.
•
Si se desea, configurar una granja de Office Web Apps y conectarla a la granja de
SharePoint.
•
Configurar correctamente los servicios que se ejecutan en cada servidor, es un error
común hacer servidores de aplicaciones con el servicio de frontal web. Evitar esto.
•
En sitios para internet, asegurarse el tener habilitada la feature
ViewFormPagesLockDown para proteger las páginas de _layouts (por defecto está
activa)
• http://geeks.ms/blogs/lruiz/archive/2012/02/27/sharepoint-cierra-el-ojete-a-tu-sharepoint-activa-viewpageslockdown.aspx
AutoSPInstaller
•
Scripts PowerShell automatizados que permiten instalar y configurar la granja de
SharePoint al completo.
•
Algunas características importantes:
• Desactiva servicios de Windows que no sean necesarios
• Instala SharePoint, prerrequisitos, actualizaciones esenciales del servidor, Language Packs, CU, Service Packs, Office Web Apps, ForeFront, PDF iFilter…
• Permite una instalación desatendida de toda la granja, incluso reiniciando las máquinas.
• Permite configurar Alias SQL, poner nombres a todas las bases de datos.
• Configura cuentas, permisos, logins, contraseñas, passphrases, servicio de almacenamiento seguro…
• Crea todas las aplicaciones de servicio ya configuradas.
• Crea aplicaciones de SharePoint, Mi Sitio, Search Center…
• Configura los IIS del servidor y ficheros de host
• Configura los diferentes roles de búsqueda (admin, crawl, index…)
•
Proyecto de Codeplex:
https://autospinstaller.codeplex.com
• AutoSPSourceBuilder descarga binarios de SharePoint, Service Packs, CU y Language Packs organizados tal y como AutoSPInstaller necesita: http://autospsourcebuilder.codeplex.com