En esta sesión teórica veremos como, desde el punto de vista de arquitectura, cómo es posible utilizar máquinas virtuales y servicios como las web apps, Azure Search, Máquinas Virtuales, Media Services y Application Insights para diseñar nuestro propio servicio similar a Office 365 en el que proporcionemos SharePoint, Exchange, Office Vídeo, etc.
7. #MadPoint
SharePoint as a Service
• Al tratarse de un servicio, SharePoint
Online tiene carencias frente a SharePoint
Server:
• Control de la granja y aplicaciones
• Desarrollo de soluciones servidor
• Control IT, errores, problemas…
• Falta de algunos servicios (Word Automation,
Machine Translation, PerformancePoint…)
• ¿Y si usamos las herramientas de Azure
para diseñar un entorno SharePoint con
toda la potencia de la versión on-
premise?
• ¿Pero con la sencillez y facilidades de la
versión online?
8. #MadPoint
Diseño de nuestro propio Office 365
• Usaremos Azure IaaS para diseñar
la granja.
• Automatizaremos tareas gracias a
PowerShell, web Jobs y Logic Apps.
• Usaremos Azure web apps para
diseñar un panel de
administración.
• Idearemos APIs de administración.
• En la presentación nos
centraremos en SharePoint.
¡¡¡Pues ahora voy
a hacer mi propio
Office 365!!!
10. #MadPoint
Nuestros objetivos e ideas para conseguirlos
• Conseguir un entorno en la nube similar a SharePoint Online.
• Podemos utilizar máquinas virtuales para crear servidores de
AD y DNS, SQL Server y una granja de SharePoint.
• Evitar que los administradores tengan que acceder a los servidores
para cualquier acción (crear colecciones de sitios, configurar servicios,
administrar metadatos, lanzar rastreos de búsqueda…).
• Podemos diseñar una web de administración en un Azure Web App.
• Podemos diseñar una API PowerShell de administración.
• Podemos diseñar una API REST de administración.
11. #MadPoint
Nuestros objetivos e ideas para conseguirlos
• Automatizar todo lo posible
• Apoyémonos en la comunidad.
• Hay muchas galerías de scripts PowerShell que nos ayudan a automatizar.
• No “ensuciar” los servidores de SharePoint
• Si diseñamos portales de administración, APIs, jos etc, nos apoyaremos en
Azure para mantener los servidores de SharePoint intactos.
• Nos podemos aprovechar en parte del modelo de apps.
• Proporcionar funcionalidades avanzadas.
• Existen grandes productos para SharePoint on-premise como Nintex, Beezy,
AvePoint… que pueden ayudarnos a ofrecer una experiencia mejorada de
nuestra plataforma.
14. #MadPoint
Servicios de Azure
• Máquinas virtuales y redes virtuales.
• Para crear la granja de SharePoint.
• Azure Storage
• Almacenaremos copias de servidores para levantar nuevos frontales web.
• Almacenamiento de archivos pesados (ej. vídeos).
• Azure Web Apps
• Para diseñar un panel de administración y ubicar SharePoint apps.
• Web Jobs o Logic Apps
• Para realizar procesos periódicos en el entorno.
• Azure Media Services + CDN
• Para montar nuestro portal de vídeo.
• Application Insights
• Para monitorizar y medir uso y rendimiento.
15. #MadPoint
Las tres API cliente de SharePoint
Client-side object model (CSOM)
Para aplicaciones web o móviles que usen C#.
Para scripting PowerShell remoto.
JavaScript object model (JSOM)
Para aplicaciones web no Microsoft y apps JavaScript de Windows.
Útil para desarrollar apps de SharePoint para otras plataformas
(Android, iOS…)
REST
API independiente de la plataforma basada en estándares como
OAuth y OData.
16. #MadPoint
Las tres API cliente de SharePoint
• Reference for SharePoint 2013 APIs (Server, CSOM, JavaScript)
• http://msdn.microsoft.com/en-us/library/jj193038.aspx
• How to: Complete basic operations using SharePoint 2013 client library
code
• http://msdn.microsoft.com/en-us/library/fp179912.aspx
• How to: Complete basic operations using JavaScript library code in SP 2013
• http://msdn.microsoft.com/en-us/library/jj163201.aspx
• How to: Complete basic operations using SharePoint 2013 REST endpoints
• http://msdn.microsoft.com/en-us/library/jj164022.aspx
17. #MadPoint
PowerShell
• Herramienta ideal para crear operaciones de administración.
• Puede usar las API cliente para conectar remotamente a SharePoint.
• Puede ser muy útil para la creación automática de la granja.
• Usaremos proyectos de la comunidad como AutoSPInstaller.
• Lo usaremos también para automatizar despliegues.
19. #MadPoint
Opciones de diseño de la granja SP
• Plantilla de granja de SharePoint en Azure.
• Pocos datos de configuración.
• Creación rápida. En menos de 1 hora.
• Control de los nombres de servidor, nivel de precio, redes, storage.
• No se tiene todo el control sobre la configuración, usuarios y servicios.
• Creación manual de los servidores.
• Se tiene todo el control sobre el entorno y su configuración.
• Para IT PRO con conocimientos avanzados de SharePoint.
• Se pueden usar herramientas de instalación de terceros o de comunidad.
• AutoSPInstaller
25. #MadPoint
AutoSPInstaller
• Scripts PowerShell automatizados que permiten instalar y configurar la granja de
SharePoint al completo.
• Se guarda en una carpeta los binarios de SharePoint, Language Packs, Service Packs
y Cumulative Updates y se configura un XML con todos los datos de la granja. Los
scripts configurarán todos los servidores.
• 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
26. #MadPoint
Ampliar la granja
• Dejar guardado en el storage un VHD con todo instalado (binarios,
actualizaciones, language packs…).
• Si se quiere añadir un frontal web o un servidor de aplicación:
• Duplicar disco del storage.
• Crear una máquina en la red virtual a partir de ese disco.
• Ejecutar el asistente de SharePoint para unir a la granja y configurar roles a
mano
• O ejecutar los script de AutoSPInstaller con los roles prefijados.
• Podemos integrarlo en el panel de administración que vamos a
diseñar.
• Desde el panel podemos crear una máquina con la API de Azure.
• Y podemos forzar que se ejecute AutoSPInstaller o el asistente de
SharePoint.
28. #MadPoint
Portal de administración
• Nuestro objetivo principal:
• SharePoint “as a service”.
• Evitar que los administradores tengan que entrar a los servidores.
• Proporcionar un panel de administración con las herramientas necesarias
para realizar las operaciones más comunes.
• No permitir acceso a configuración avanzada de la granja. No nos sirve con
dar acceso externo a la Administración Central de SharePoint.
• Debe seguir los
principios del Centro
de Administración
de SharePoint
Online
29. #MadPoint
Portal de administración
• Nuestro objetivo principal:
• SharePoint “as a service”.
• Evitar que los administradores tengan que entrar a los servidores.
• Proporcionar un panel de administración con las herramientas necesarias
para realizar las operaciones más comunes.
• No permitir acceso a configuración avanzada de la granja. No nos sirve con
dar acceso externo a la Administración Central de SharePoint.
• Debe seguir los
principios del Centro
de Administración
de SharePoint
Online
30. #MadPoint
Diseño técnico
• La aplicación web contiene:
• Aplicación ASP.NET con el panel de administración
• Azure Web Jobs para realizar operaciones periódicas desatendidas sin
necesidad de hacer SharePoint Timer Jobs dentro de la granja
33. #MadPoint
API PowerShell para administración
• SharePoint Server ofrece una
completísima API de PowerShell
para administración.
• Pero nuestro objetivo es no hacer
operaciones en servidor.
• Apoyándonos en la API CSOM y,
aprovechando que en PowerShell
se pueden usar objetos .NET,
vamos a construir nuestras
funciones de administración.
• Serán muy re-aprovechables en
SharePoint Online.
34. #MadPoint
Dos usos principales
• Administración
• Creación de sitios, seguridad, configuración…
• Despliegue de contenido
• Creación de columnas, tipos de contenido, listas, flujos de trabajo, páginas…
35. #MadPoint
Login y conexión
function Load-SPClientDlls()
{
Add-Type -Path ".Microsoft.SharePoint.Client.dll"
Add-Type -Path ".Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path ".Microsoft.SharePoint.Client.WorkflowServices.dll"
Add-Type -Path ".Microsoft.SharePoint.Client.Publishing.dll"
}
function Connect-SPClientContext([string]$user, [string]$site) {
Load-SPClientDlls
$password = Read-Host -Prompt "Enter password: " -AsSecureString
# Initialize a new ClientContext object passing $siteUrl
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($site)
# We need to add the credentials
$credentials = New-Object System.Net.NetworkCredential($user, $password) CheckError(-3)
$ctx.Credentials = $credentials
# At this point, we can use our ClientContext object to create, delete, and retrieve a list of sites.
return $ctx
}
41. #MadPoint
¿Qué son los Next-Gen Portals?
• Portales de nueva generación que Microsoft ha añadido
recientemente a Office 365.
• Utilizan funcionalidades de SharePoint como publishing, seguridad,
search…
• Los principales ejemplos son Delve, Office Video e InfoPedia (aún no
disponible).
• Veremos técnicas para integrarlos en nuestro entorno usando
SharePoint.
Office Video InfoPedia
42. #MadPoint
Diseñando nuestro propio Office Video
• Aprovecharemos las siguientes tecnologías:
• Azure Media Services
• Listas de SharePoint
• SharePoint apps
• SharePoint Search Display Templates
• Azure App Insights (para log de errores)
44. #MadPoint
Diseño técnico • La app se instala en el sitio de
SharePoint. Utiliza un website
de Azure.
• El usuario carga el vídeo a través
de la app.
• El website carga el vídeo en
Media Services.
• Un job queda pendiente del
estado de la codificación.
Cuando termina, avisa a la web
app y le da los resultados.
• El website almacena
información del vídeo,
codificación y metadatos en una
lista de vídeos en SharePoint.
• El portal tiene funcionalidades
para ver y reproducir los vídeos
que están en Media Services
usando display templates de
SharePoint.
Upload
video
app
Lista
vídeos
49. #MadPoint
Siguiente nivel
• ¿Y si quisiera hacer una api para
proporcionar los vídeos a un sistema
de reproducción externo?
• Por ejemplo, un teléfono, una Xbox…
50. #MadPoint
Diseño técnico • Puedo crear una API con
ASP.NET Web API dentro
del web site de la app.
• Al estar dentro del web
site de la app, ya puedo
trabajar con SharePoint
sin problemas de
seguridad y obtener la
url de streaming y
metadatos de la lista de
vídeos.
• La API obtendría datos
directamente de
SharePoint
Upload
video
app
Lista
vídeos
API
51. #MadPoint
Siguiente nivel
• ¿Y si preveo mucha carga y no estoy
seguro cómo responderá mi granja de
SharePoint?
• Podemos hacer que la Web API
ataque a un sistema externo que
sincronice con SharePoint.
52. #MadPoint
Diseño técnico
• A través de un web
job, podemos
sincronizar los datos
del sitio de
SharePoint con
Azure Search.
• La API obtendrá los
datos de Azure
Search, pudiéndose
aprovechar de las
reglas de ordenado,
filtrado, etc.
Upload
video
app
Lista
vídeos
API
54. #MadPoint
Medición de uso y rendimiento
• Utilizaremos Azure Application
Insights
• Proporciona un código JavaScript que
podemos insertar en nuestros
portales de SharePoint.
• Nos permitirá ver información de uso
y rendimiento de nuestro SharePoint
“as a service”.
61. #MadPoint
Y más adelante…
• La presentación pretendía dar visión sobre cómo, jugando con
muchas herramientas de Azure, puede conseguirse diseñar un
SharePoint como servicio.
• Siguiendo esta línea, puede ampliarse la funcionalidad o incluso
proporcionar más servicios para conseguir un Office 365 completo:
• Exchange Server
• Lync Server Skype for Business Server
• APIs REST para la plataforma
• Delve
• Integración con Yammer
• …
Here are the configuration details:
Azure Subscription: Specified during the initial configuration.
Azure Domain Names (also known as cloud services): Separate Domain Names are automatically created for each virtual machine.
Storage account: Specified during the initial configuration.
Virtual network
Type: Cloud-only
Address space: 192.168.16.0/26
Virtual machines
HostNamePrefix-DC (AD DS domain controller)
HostNamePrefix-SQL (SQL Server 2014 server)
HostNamePrefix-SP (SharePoint 2013 server)
Domain controller
Virtual machine image: Windows Server 2012 R2.
Host name prefix: Specified during the initial configuration.
Size: A1 (default)
Domain name: contoso.com (default)
Domain administrator account name: Specified during the initial configuration.
Domain administrator account password: Specified during the initial configuration.
SQL Server
Virtual machine image: SQL Server 2014 RTM Enterprise on Windows Server 2012 R2.
Host name prefix: Specified during the initial configuration.
Size: A5 (default)
Database access account name: Specified during the initial configuration.
Database access account password: Specified during the initial configuration.
SQL Server service account name: Specified during the initial configuration.
SQL Server service account password: Specified during the initial configuration.
SharePoint server
Virtual machine image: SharePoint Server 2013 Trial.
Host name prefix: Specified during the initial configuration.
Size: A2 (default)
SharePoint farm account name: Specified during the initial configuration.
SharePoint farm account password: Specified during the initial configuration.
SharePoint farm passphrase: Specified during the initial configuration.
Azure Subscription: Specified during the initial configuration.
Azure Domain Names (also known as cloud services): Separate Domain Names are created according to the figure above.
Storage account: Specified during the initial configuration.
Virtual network
Type: Cloud-only
Address space: 192.168.16.0/26
Virtual machines
HostNamePrefix-DC1 (AD DS domain controller)
HostNamePrefix-DC2 (AD DS domain controller)
HostNamePrefix-SQL1 (SQL Server 2014 server)
HostNamePrefix-SQL2 (SQL Server 2014 server)
HostNamePrefix-SQL0 (Windows Server 2012 R2 server)
HostNamePrefix-WEB1 (SharePoint 2013 server)
HostNamePrefix-WEB2 (SharePoint 2013 server)
HostNamePrefix-APP1 (SharePoint 2013 server)
HostNamePrefix-APP2 (SharePoint 2013 server)
Domain controllers
Virtual machine image: Windows Server 2012 R2.
Host name prefix: Specified during the initial configuration.
Size: A1 (default)
Domain name: contoso.com (default)
Domain administrator account name: Specified during the initial configuration.
Domain administrator account password: Specified during the initial configuration.
SQL Servers
Virtual machine image: SQL Server 2014 RTM Enterprise on Windows Server 2012 R2.
Host name prefix: Specified during the initial configuration.
Size: A5 (default)
Database access account name: Specified during the initial configuration.
Database access account password: Specified during the initial configuration.
SQL Server service account name: Specified during the initial configuration.
SQL Server service account password: Specified during the initial configuration.
SharePoint servers
Virtual machine image: SharePoint Server 2013 Trial.
Host name prefix: Specified during the initial configuration.
Size: A2 (default)
SharePoint farm account name: Specified during the initial configuration.
SharePoint farm account password: Specified during the initial configuration.
SharePoint farm passphrase: Specified during the initial configuration.