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 infraestructura?
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. También veremos cómo se debe planear una buena arquitectura.
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 ) Es necesario conocer muy a fondo la plataforma
Los 10 errores más comunes en la instalación de SharePoint Inspirado en Top 10 SharePoint 2010 Configuration Mistakes and How to Fix Them por Todd O. Klindt
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/cuentasadministrativas-para-instalar-configurar-sharepoint-2010 Mínimo: sqlservice, spsetup, spfarm, sppool
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 Error #5 Usar una URL incorrecta al crear una aplicación web Tras crear la aplicación, SharePoint ya no comunica a IIS cambios que se hagan en ella
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) Error #7: Dejar la configuración por defecto de base de datos que hace SharePoint 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 #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 Error #9: Usar spfarm para todo 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 modelar probar, optimizar diseñar implementar Microsoft propone un proceso cíclico de planeación de capacidad y de escalabilidad para ayudarnos a estructurar nuestras granjas supervisar y mantener La granja debe evolucionar y escalarse con el paso del tiempo
Cómo diseñar una granja? El mínimo de servidores en producción son un servidor frontal y un servidor de base de datos Servidor frontal web Servidor de base de datos Granja SharePoint
Cómo diseñar una granja? 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 Servidor frontal web Servidor de base de datos Servidor frontal web Granja SharePoint
Cómo diseñar una granja? Se puede añadir a una granja la cantidad de frontales que se desee Servidor frontal web Servidor frontal web Servidor de base de datos Servidor frontal web Granja SharePoint
Cómo diseñar una granja? Estos frontales pueden configurarse en NLB (network load balancing) para estar balanceados y repartirse la carga de una misma aplicación SharePoint NLB Servidor frontal web Servidor de base de datos Servidor frontal web También nos proporciona alta disponibilidad Granja SharePoint
Cómo diseñar una granja? NLB proporciona alta disponibilidad en los frontales, para conseguirla en base de datos configuraremos un clúster SQL Server NLB Servidor frontal web Servidor de base de datos SQL Server cluster Servidor frontal web Servidor de base de datos Granja SharePoint
Cómo diseñar una granja? Si se detectan servicios (excel services, web analytics, búsquedas ) que requieren una gran carga de procesamiento, es posible separarlos en servidores de aplicaciones 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 Servidor frontal web Servicio de indexación Servidor de base de datos Granja SharePoint
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 INTERNET Microsoft ForeFront UAG Servidor frontal web Servidor de base de datos Internet Red perimetral (DMZ) Granja SharePoint 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. 1 ó 2 TB de datos.
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-capacityplanning-for-sharepoint-2013-resources.aspx Comparación con otras implantaciones Proyectos pasados Case studies de TechNet Calculadoras automáticas HP SharePoint Sizer Microsoft SharePoint Capacity Planning Tool (sólo para SharePoint 2007)
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-administrativaspara-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-configurarifilter-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-sharepointactiva-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
Q&A
GRACIAS POR SU ATENCIÓN Miguel Tabera Pacheco MVP SharePoint Server Spenta www.sinsharepointnohayparaiso.com @migueltabera